5a7bb33e3f
The for-in slow mode implementation in Crankshaft unconditionally deoptimizes when %ForInFilter returns undefined instead of just skipping the item. Even worse, there's nothing we can learn from that deopt, so we will eventually optimize again and hit exactly the same problem again once we get back to optimized code. R=mvstanton@chromium.org BUG=v8:3650 LOG=n Review URL: https://codereview.chromium.org/1647093002 Cr-Commit-Position: refs/heads/master@{#33609}
18 lines
363 B
JavaScript
18 lines
363 B
JavaScript
// Copyright 2016 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Flags: --allow-natives-syntax
|
|
|
|
function foo(a) {
|
|
for (var d in a) {
|
|
delete a[1];
|
|
}
|
|
}
|
|
|
|
foo([1,2,3]);
|
|
foo([2,3,4]);
|
|
%OptimizeFunctionOnNextCall(foo);
|
|
foo([1,2,3]);
|
|
assertOptimized(foo);
|