/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
deps/v8/test/mjsunit/compiler/deopt-array-builtins.js
164 строки
3 KB
Michaël Zasso
deps: update V8 to 10.7.193.13
11 окт 2022, 08:24
Не верифицирован
11 окт 2022, 08:24
6bd756d
Код
Авторство
О чём код?
// 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 --turbofan --no-flush-bytecode --no-stress-flush-code /* Test MapCheck behavior */ (function testForEachMapCheck() { function f(v,n,o) { Object.freeze(o); } function g() { [1,2,3].forEach(f); } %PrepareFunctionForOptimization(g); g(); g(); %OptimizeFunctionOnNextCall(g); g(); %PrepareFunctionForOptimization(g); %OptimizeFunctionOnNextCall(g); g(); assertOptimized(g); })(); (function testFindMapCheck() { function f(v,n,o) { Object.freeze(o); return false; } function g() { [1,2,3].find(f); } %PrepareFunctionForOptimization(g); g(); g(); %OptimizeFunctionOnNextCall(g); g(); %PrepareFunctionForOptimization(g); %OptimizeFunctionOnNextCall(g); g(); assertOptimized(g); })(); (function testMapMapCheck() { function f(v,n,o) { Object.freeze(o); return false; } function g() { [1,2,3].map(f); } %PrepareFunctionForOptimization(g); g(); g(); %OptimizeFunctionOnNextCall(g); g(); %PrepareFunctionForOptimization(g); %OptimizeFunctionOnNextCall(g); g(); assertOptimized(g); })(); (function testFilterMapCheck() { function f(v,n,o) { Object.freeze(o); return true; } function g() { [1,2,3].filter(f); } %PrepareFunctionForOptimization(g); g(); g(); %OptimizeFunctionOnNextCall(g); g(); %PrepareFunctionForOptimization(g); %OptimizeFunctionOnNextCall(g); g(); assertOptimized(g); })(); /* Test CheckBounds behavior */ (function testForEachCheckBounds() { function f(v,n,o) { o.length=2; } function g() { [1,2,3].forEach(f); } %PrepareFunctionForOptimization(g); g(); g(); %OptimizeFunctionOnNextCall(g); g(); %PrepareFunctionForOptimization(g); %OptimizeFunctionOnNextCall(g); g(); assertOptimized(g); })(); (function testFindCheckBounds() { function f(v,n,o) { o.length=2; return false; } function g() { [1,2,3].find(f); } %PrepareFunctionForOptimization(g); g(); g(); %OptimizeFunctionOnNextCall(g); g(); %PrepareFunctionForOptimization(g); %OptimizeFunctionOnNextCall(g); g(); assertOptimized(g); })(); (function testMapCheckBounds() { function f(v,n,o) { o.length=2; return false; } function g() { [1,2,3].map(f); } %PrepareFunctionForOptimization(g); g(); g(); %OptimizeFunctionOnNextCall(g); g(); %PrepareFunctionForOptimization(g); %OptimizeFunctionOnNextCall(g); g(); assertOptimized(g); })(); (function testFilterCheckBounds() { function f(v,n,o) { o.length = 2; return true; } function g() { [1,2,3].filter(f); } %PrepareFunctionForOptimization(g); g(); g(); %OptimizeFunctionOnNextCall(g); g(); g(); %PrepareFunctionForOptimization(g); %OptimizeFunctionOnNextCall(g); g(); g(); assertOptimized(g); })();