PR-URL: https://github.com/nodejs/node/pull/49639 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
35 lines
976 B
JavaScript
35 lines
976 B
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.
|
|
|
|
const o10 = {
|
|
[Symbol.iterator]() {
|
|
let done = 0;
|
|
return {
|
|
next() {
|
|
done++;
|
|
return {
|
|
"done": done,
|
|
};
|
|
},
|
|
};
|
|
},
|
|
};
|
|
let long_string;
|
|
try {
|
|
long_string = String.prototype.padStart(536870888);
|
|
} catch (e) {
|
|
if (!(e instanceof RangeError)) throw e;
|
|
// 32-bit systems have a lower string limit.
|
|
long_string = String.prototype.padStart(268435440);
|
|
}
|
|
|
|
Symbol.constructor = Symbol;
|
|
const t21 = Symbol(long_string);
|
|
const expected_error = 'Function\\.prototype\\.apply was called on ' +
|
|
'Symbol\\( +\\.\\.\\.<omitted>\\.\\.\\. +\\), ' +
|
|
'which is a symbol and not a function';
|
|
assertThrows(
|
|
() => t21(...o10, Symbol.constructor), TypeError,
|
|
new RegExp(expected_error));
|