/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
deps/v8/test/mjsunit/compiler/array-buffer-is-view.js
66 строк
2 KB
Michaël Zasso
deps: update V8 to 10.7.193.13
11 окт 2022, 08:24
Не верифицирован
11 окт 2022, 08:24
6bd756d
Код
Авторство
О чём код?
// Copyright 2018 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 // Test that ObjectIsArrayBufferView lowering works correctly // in EffectControlLinearizer in the case that the input is // known to be a HeapObject by TurboFan. For this we use the // simple trick with an object literal whose field `x` will // only ever contain HeapObjects and so the representation // tracking is going to pick it up. (function() { function foo(x) { return ArrayBuffer.isView({x}.x); } %PrepareFunctionForOptimization(foo); assertFalse(foo(Symbol())); assertFalse(foo("some string")); assertFalse(foo(new Object())); assertFalse(foo(new Array())); assertFalse(foo(new ArrayBuffer(1))); assertTrue(foo(new Int32Array(1))); assertTrue(foo(new DataView(new ArrayBuffer(1)))); %OptimizeFunctionOnNextCall(foo); assertFalse(foo(Symbol())); assertFalse(foo("some string")); assertFalse(foo(new Object())); assertFalse(foo(new Array())); assertFalse(foo(new ArrayBuffer(1))); assertTrue(foo(new Int32Array(1))); assertTrue(foo(new DataView(new ArrayBuffer(1)))); assertOptimized(foo); })(); // Test that ObjectIsArrayBufferView lowering works correctly // in EffectControlLinearizer in the case that the input is // some arbitrary tagged value. (function() { function foo(x) { return ArrayBuffer.isView(x); } %PrepareFunctionForOptimization(foo); assertFalse(foo(1)); assertFalse(foo(1.1)); assertFalse(foo(Symbol())); assertFalse(foo("some string")); assertFalse(foo(new Object())); assertFalse(foo(new Array())); assertFalse(foo(new ArrayBuffer(1))); assertTrue(foo(new Int32Array(1))); assertTrue(foo(new DataView(new ArrayBuffer(1)))); %OptimizeFunctionOnNextCall(foo); assertFalse(foo(1)); assertFalse(foo(1.1)); assertFalse(foo(Symbol())); assertFalse(foo("some string")); assertFalse(foo(new Object())); assertFalse(foo(new Array())); assertFalse(foo(new ArrayBuffer(1))); assertTrue(foo(new Int32Array(1))); assertTrue(foo(new DataView(new ArrayBuffer(1)))); assertOptimized(foo); })();