nodejs/deps/v8/test/mjsunit/regress/regress-1464437.js
Michaël Zasso 09a8440b45
deps: update V8 to 12.2.281.27
PR-URL: https://github.com/nodejs/node/pull/51362
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
2024-03-31 15:36:07 +02:00

82 lines
2.3 KiB
JavaScript

// Copyright 2023 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 get_keys() {
const buffer = new ArrayBuffer(12, { "maxByteLength": 4096 });
const u16array = new Uint16Array(buffer, 0, 5);
buffer.resize()
let keys = "none";
try { keys = u16array.keys(); } catch (e) {}
return keys;
}
(function() {
// Testing array.prototype.keys
%PrepareFunctionForOptimization(get_keys);
let interpreted = get_keys();
assertEquals("none", interpreted);
%OptimizeFunctionOnNextCall(get_keys);
let optimized = get_keys();
assertEquals("none", optimized);
})();
function get_keys_tracking() {
const buffer = new ArrayBuffer(12, { "maxByteLength": 4096 });
const u16array = new Uint16Array(buffer, 6);
buffer.resize(0);
let keys = "none";
try { keys = u16array.keys(); } catch (e) {}
return keys;
}
(function() {
// Testing array.prototype.keys
%PrepareFunctionForOptimization(get_keys_tracking);
let interpreted = get_keys_tracking();
assertEquals("none", interpreted);
%OptimizeFunctionOnNextCall(get_keys_tracking);
let optimized = get_keys_tracking();
assertEquals("none", optimized);
})();
function get_values() {
const buffer = new ArrayBuffer(12, { "maxByteLength": 4096 });
const u16array = new Uint16Array(buffer, 0, 5);
buffer.resize()
let keys = "none";
try { keys = u16array.values(); } catch (e) {}
return keys;
}
(function() {
// Testing array.prototype.values
%PrepareFunctionForOptimization(get_values);
let interpreted = get_values();
assertEquals("none", interpreted);
%OptimizeFunctionOnNextCall(get_values);
let optimized = get_values();
assertEquals("none", optimized);
})();
function get_entries() {
const buffer = new ArrayBuffer(12, { "maxByteLength": 4096 });
const u16array = new Uint16Array(buffer, 0, 5);
buffer.resize()
let keys = "none";
try { keys = u16array.entries(); } catch (e) {}
return keys;
}
(function() {
// Testing array.prototype.entries
%PrepareFunctionForOptimization(get_entries);
let interpreted = get_entries();
assertEquals("none", interpreted);
%OptimizeFunctionOnNextCall(get_entries);
let optimized = get_entries();
assertEquals("none", optimized);
})();