/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
deps/v8/test/mjsunit/compiler/instanceof4.js
80 строк
2 KB
Myles Borins
deps: update V8 to 7.8.279.9
07 окт 2019, 10:19
Не верифицирован
07 окт 2019, 10:19
f7f6c92
Код
Авторство
О чём код?
// Copyright 2019 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 testFunctionPrototypeHasInstance() { class A {}; var a = new A; function foo() { return A[Symbol.hasInstance](a); }; %PrepareFunctionForOptimization(foo); assertTrue(foo()); assertTrue(foo()); %OptimizeFunctionOnNextCall(foo); assertTrue(foo()); })(); (function testFunctionPrototypeHasInstanceWithInference() { class A {}; var a = new A; a.bla = 42; function foo() { a.bla; return A[Symbol.hasInstance](a); }; %PrepareFunctionForOptimization(foo); assertTrue(foo()); assertTrue(foo()); %OptimizeFunctionOnNextCall(foo); assertTrue(foo()); })(); (function testFunctionPrototypeHasInstanceWithBoundFunction() { class A {}; var a = new A; var f = A.bind({}); function foo() { return f[Symbol.hasInstance](a); }; %PrepareFunctionForOptimization(foo); assertTrue(foo()); assertTrue(foo()); %OptimizeFunctionOnNextCall(foo); assertTrue(foo()); // JSCallReducer::ReduceFunctionPrototypeHasInstance -> // JSNative...::ReduceJSOrdinaryHasInstance -> // JSNative...::ReduceJSInstanceOf (on bound_target_function) // ~~~~~> // JSCallReducer::ReduceFunctionPrototypeHasInstance // JSNative...::ReduceJSOrdinaryHasInstance -> // JSNative...::ReduceJSHasInPrototypeChain })(); (function testSimpleInstanceOf() { class A {}; var a = new A; function foo() { return a instanceof A; }; %PrepareFunctionForOptimization(foo); assertTrue(foo()); assertTrue(foo()); %OptimizeFunctionOnNextCall(foo); assertTrue(foo()); })();