6302753e2f
Currently, typeof o, where o is an undetectable callable object (such as document.all), returns 'function' if optimised. It should, however, return 'undefined'. This CL excludes undetectable objects from the optimization resulting in type 'function' and renames the related code to reflect that. BUG=v8:5972 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2697063002 Cr-Commit-Position: refs/heads/master@{#43298}
18 lines
442 B
JavaScript
18 lines
442 B
JavaScript
// Copyright 2017 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
|
|
|
|
var undetectable = %GetUndetectable();
|
|
|
|
function foo(a) {
|
|
const o = a ? foo : undetectable;
|
|
return typeof o === 'function';
|
|
}
|
|
|
|
assertFalse(foo(false));
|
|
assertFalse(foo(false));
|
|
%OptimizeFunctionOnNextCall(foo);
|
|
assertFalse(foo(false));
|