mirror of
https://github.com/tc39/test262.git
synced 2025-07-20 20:44:43 +02:00
add throw-type-error-before-custom-proto-access.js
This commit is contained in:
parent
443f0d2e7f
commit
cba890eef0
@ -0,0 +1,49 @@
|
||||
// Copyright (C) 2025 the V8 project authors. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
/*---
|
||||
esid: sec-typedarray
|
||||
description: >
|
||||
The newTarget getter must not be evaluated if argument processing throws an error before AllocateTypedArray is reached
|
||||
info: |
|
||||
23.2.5.1 TypedArray ( ...args )
|
||||
...
|
||||
5. If numberOfArgs = 0, then
|
||||
a. Return ? AllocateTypedArray(constructorName, NewTarget, proto, 0).
|
||||
6. Else,
|
||||
a. Let firstArgument be args[0].
|
||||
b. If firstArgument is an Object, then
|
||||
...
|
||||
c. Else,
|
||||
i. Assert: firstArgument is not an Object.
|
||||
ii. Let elementLength be ? ToIndex(firstArgument).
|
||||
iii. Return ? AllocateTypedArray(constructorName, NewTarget, proto, elementLength).
|
||||
|
||||
7.1.22 ToIndex ( value )
|
||||
1. Let integer be ? ToIntegerOrInfinity(value).
|
||||
...
|
||||
|
||||
7.1.5 ToIntegerOrInfinity ( argument )
|
||||
1. Let number be ? ToNumber(argument).
|
||||
...
|
||||
|
||||
7.1.4 ToNumber ( argument )
|
||||
1. If argument is a Number, return argument.
|
||||
2. If argument is either a Symbol or a BigInt, throw a TypeError exception.
|
||||
...
|
||||
|
||||
includes: [testTypedArray.js]
|
||||
features: [Reflect, TypedArray]
|
||||
---*/
|
||||
|
||||
var newTarget = function () {}.bind(null);
|
||||
Object.defineProperty(newTarget, "prototype", {
|
||||
get() {
|
||||
throw new Test262Error();
|
||||
},
|
||||
});
|
||||
|
||||
testWithTypedArrayConstructors(function (TA) {
|
||||
assert.throws(TypeError, function () {
|
||||
Reflect.construct(TA, [Symbol()], newTarget);
|
||||
});
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user