mirror of
https://github.com/tc39/test262.git
synced 2025-07-23 05:55:36 +02:00
Merge pull request #1221 from rwaldron/thejoshwolfe-type-coercion
type coercion harness utilities + features flags + linting
This commit is contained in:
commit
b8ca6099cf
@ -51,6 +51,7 @@ regexp-unicode-property-escapes
|
|||||||
|
|
||||||
# Shared Memory and atomics
|
# Shared Memory and atomics
|
||||||
# https://github.com/tc39/ecmascript_sharedmem
|
# https://github.com/tc39/ecmascript_sharedmem
|
||||||
|
Atomics
|
||||||
SharedArrayBuffer
|
SharedArrayBuffer
|
||||||
|
|
||||||
# Standard language features
|
# Standard language features
|
||||||
@ -80,6 +81,7 @@ DataView.prototype.setUint8
|
|||||||
default-arg
|
default-arg
|
||||||
default-parameters
|
default-parameters
|
||||||
destructuring-binding
|
destructuring-binding
|
||||||
|
for-of
|
||||||
Float64Array
|
Float64Array
|
||||||
generators
|
generators
|
||||||
Int8Array
|
Int8Array
|
||||||
|
@ -88,8 +88,8 @@ assert.throws = function (expectedErrorConstructor, func, message) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
assert.throws.early = function(err, code) {
|
assert.throws.early = function(err, code) {
|
||||||
let wrappedCode = `function wrapperFn() { ${code} }`;
|
let wrappedCode = 'function wrapperFn() { ' + code + ' }';
|
||||||
let ieval = eval;
|
let ieval = eval;
|
||||||
|
|
||||||
assert.throws(err, function() { Function(wrappedCode); }, `Function: ${code}`);
|
assert.throws(err, function() { Function(wrappedCode); }, 'Function: ' + code);
|
||||||
};
|
};
|
||||||
|
@ -20,5 +20,5 @@ function compareArray(a, b) {
|
|||||||
|
|
||||||
assert.compareArray = function(actual, expected, message) {
|
assert.compareArray = function(actual, expected, message) {
|
||||||
assert(compareArray(actual, expected),
|
assert(compareArray(actual, expected),
|
||||||
`Expected [${actual.join(", ")}] and [${expected.join(", ")}] to have the same contents. ${message}`);
|
'Expected [' + actual.join(', ') + '] and [' + expected.join(', ') + '] to have the same contents. ' + message);
|
||||||
};
|
};
|
||||||
|
3
harness/features.yml
Normal file
3
harness/features.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
typeCoercion.js: [Symbol.toPrimitive, BigInt]
|
||||||
|
testAtomics.js: [ArrayBuffer, Atomics, DataView, SharedArrayBuffer, arrow-function, let, for-of]
|
||||||
|
testTypedArray.js: [TypedArray]
|
@ -20,7 +20,7 @@ function verifyProperty(obj, name, desc, options) {
|
|||||||
assert.sameValue(
|
assert.sameValue(
|
||||||
originalDesc,
|
originalDesc,
|
||||||
undefined,
|
undefined,
|
||||||
`obj['${nameStr}'] descriptor should be undefined`
|
"obj['" + nameStr + "'] descriptor should be undefined"
|
||||||
);
|
);
|
||||||
|
|
||||||
// desc and originalDesc are both undefined, problem solved;
|
// desc and originalDesc are both undefined, problem solved;
|
||||||
@ -29,47 +29,47 @@ function verifyProperty(obj, name, desc, options) {
|
|||||||
|
|
||||||
assert(
|
assert(
|
||||||
Object.prototype.hasOwnProperty.call(obj, name),
|
Object.prototype.hasOwnProperty.call(obj, name),
|
||||||
`obj should have an own property ${nameStr}`
|
"obj should have an own property " + nameStr
|
||||||
);
|
);
|
||||||
|
|
||||||
assert.notSameValue(
|
assert.notSameValue(
|
||||||
desc,
|
desc,
|
||||||
null,
|
null,
|
||||||
`The desc argument should be an object or undefined, null`
|
"The desc argument should be an object or undefined, null"
|
||||||
);
|
);
|
||||||
|
|
||||||
assert.sameValue(
|
assert.sameValue(
|
||||||
typeof desc,
|
typeof desc,
|
||||||
"object",
|
"object",
|
||||||
`The desc argument should be an object or undefined, ${String(desc)}`
|
"The desc argument should be an object or undefined, " + String(desc)
|
||||||
);
|
);
|
||||||
|
|
||||||
var failures = [];
|
var failures = [];
|
||||||
|
|
||||||
if (Object.prototype.hasOwnProperty.call(desc, 'value')) {
|
if (Object.prototype.hasOwnProperty.call(desc, 'value')) {
|
||||||
if (desc.value !== originalDesc.value) {
|
if (desc.value !== originalDesc.value) {
|
||||||
failures.push(`descriptor value should be ${desc.value}`);
|
failures.push("descriptor value should be " + desc.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Object.prototype.hasOwnProperty.call(desc, 'enumerable')) {
|
if (Object.prototype.hasOwnProperty.call(desc, 'enumerable')) {
|
||||||
if (desc.enumerable !== originalDesc.enumerable ||
|
if (desc.enumerable !== originalDesc.enumerable ||
|
||||||
desc.enumerable !== isEnumerable(obj, name)) {
|
desc.enumerable !== isEnumerable(obj, name)) {
|
||||||
failures.push(`descriptor should ${desc.enumerable ? '' : 'not '}be enumerable`);
|
failures.push('descriptor should ' + (desc.enumerable ? '' : 'not ') + 'be enumerable');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Object.prototype.hasOwnProperty.call(desc, 'writable')) {
|
if (Object.prototype.hasOwnProperty.call(desc, 'writable')) {
|
||||||
if (desc.writable !== originalDesc.writable ||
|
if (desc.writable !== originalDesc.writable ||
|
||||||
desc.writable !== isWritable(obj, name)) {
|
desc.writable !== isWritable(obj, name)) {
|
||||||
failures.push(`descriptor should ${desc.writable ? '' : 'not '}be writable`);
|
failures.push('descriptor should ' + (desc.writable ? '' : 'not ') + 'be writable');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Object.prototype.hasOwnProperty.call(desc, 'configurable')) {
|
if (Object.prototype.hasOwnProperty.call(desc, 'configurable')) {
|
||||||
if (desc.configurable !== originalDesc.configurable ||
|
if (desc.configurable !== originalDesc.configurable ||
|
||||||
desc.configurable !== isConfigurable(obj, name)) {
|
desc.configurable !== isConfigurable(obj, name)) {
|
||||||
failures.push(`descriptor should ${desc.configurable ? '' : 'not '}be configurable`);
|
failures.push('descriptor should ' + (desc.configurable ? '' : 'not ') + 'be configurable');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
285
harness/typeCoercion.js
Normal file
285
harness/typeCoercion.js
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
// Copyright (C) 2017 Josh Wolfe. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
description: |
|
||||||
|
Functions to help generate test cases for testing type coercion abstract
|
||||||
|
operations like ToNumber.
|
||||||
|
---*/
|
||||||
|
|
||||||
|
function testCoercibleToIntegerZero(test) {
|
||||||
|
testCoercibleToNumberZero(test);
|
||||||
|
|
||||||
|
testCoercibleToIntegerFromInteger(0, test);
|
||||||
|
|
||||||
|
// NaN -> +0
|
||||||
|
testCoercibleToNumberNan(test);
|
||||||
|
|
||||||
|
// When toString() returns a string that parses to NaN:
|
||||||
|
test({});
|
||||||
|
test([]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testCoercibleToIntegerOne(test) {
|
||||||
|
testCoercibleToNumberOne(test);
|
||||||
|
|
||||||
|
testCoercibleToIntegerFromInteger(1, test);
|
||||||
|
|
||||||
|
// When toString() returns "1"
|
||||||
|
test([1]);
|
||||||
|
test(["1"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testCoercibleToNumberZero(test) {
|
||||||
|
function testPrimitiveValue(value) {
|
||||||
|
test(value);
|
||||||
|
// ToPrimitive
|
||||||
|
testPrimitiveWrappers(value, "number", test);
|
||||||
|
}
|
||||||
|
|
||||||
|
testPrimitiveValue(null);
|
||||||
|
testPrimitiveValue(false);
|
||||||
|
testPrimitiveValue(0);
|
||||||
|
testPrimitiveValue("0");
|
||||||
|
}
|
||||||
|
|
||||||
|
function testCoercibleToNumberNan(test) {
|
||||||
|
function testPrimitiveValue(value) {
|
||||||
|
test(value);
|
||||||
|
// ToPrimitive
|
||||||
|
testPrimitiveWrappers(value, "number", test);
|
||||||
|
}
|
||||||
|
|
||||||
|
testPrimitiveValue(undefined);
|
||||||
|
testPrimitiveValue(NaN);
|
||||||
|
testPrimitiveValue("");
|
||||||
|
testPrimitiveValue("foo");
|
||||||
|
testPrimitiveValue("true");
|
||||||
|
}
|
||||||
|
|
||||||
|
function testCoercibleToNumberOne(test) {
|
||||||
|
function testPrimitiveValue(value) {
|
||||||
|
test(value);
|
||||||
|
// ToPrimitive
|
||||||
|
testPrimitiveWrappers(value, "number", test);
|
||||||
|
}
|
||||||
|
|
||||||
|
testPrimitiveValue(true);
|
||||||
|
testPrimitiveValue(1);
|
||||||
|
testPrimitiveValue("1");
|
||||||
|
}
|
||||||
|
|
||||||
|
function testCoercibleToIntegerFromInteger(nominalInteger, test) {
|
||||||
|
assert(Number.isInteger(nominalInteger));
|
||||||
|
|
||||||
|
function testPrimitiveValue(value) {
|
||||||
|
test(value);
|
||||||
|
// ToPrimitive
|
||||||
|
testPrimitiveWrappers(value, "number", test);
|
||||||
|
|
||||||
|
// Non-primitive values that coerce to the nominal integer:
|
||||||
|
// toString() returns a string that parsers to a primitive value.
|
||||||
|
test([value]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testPrimitiveNumber(number) {
|
||||||
|
testPrimitiveValue(number);
|
||||||
|
// ToNumber: String -> Number
|
||||||
|
testPrimitiveValue(number.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
testPrimitiveNumber(nominalInteger);
|
||||||
|
|
||||||
|
// ToInteger: floor(abs(number))
|
||||||
|
if (nominalInteger >= 0) {
|
||||||
|
testPrimitiveNumber(nominalInteger + 0.9);
|
||||||
|
}
|
||||||
|
if (nominalInteger <= 0) {
|
||||||
|
testPrimitiveNumber(nominalInteger - 0.9);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function testPrimitiveWrappers(primitiveValue, hint, test) {
|
||||||
|
if (primitiveValue != null) {
|
||||||
|
// null and undefined result in {} rather than a proper wrapper,
|
||||||
|
// so skip this case for those values.
|
||||||
|
test(Object(primitiveValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
testCoercibleToPrimitiveWithMethod(hint, function() {
|
||||||
|
return primitiveValue;
|
||||||
|
}, test);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testCoercibleToPrimitiveWithMethod(hint, method, test) {
|
||||||
|
var methodNames;
|
||||||
|
if (hint === "number") {
|
||||||
|
methodNames = ["valueOf", "toString"];
|
||||||
|
} else if (hint === "string") {
|
||||||
|
methodNames = ["toString", "valueOf"];
|
||||||
|
} else {
|
||||||
|
throw new Test262Error();
|
||||||
|
}
|
||||||
|
// precedence order
|
||||||
|
test({
|
||||||
|
[Symbol.toPrimitive]: method,
|
||||||
|
[methodNames[0]]: function() { throw new Test262Error(); },
|
||||||
|
[methodNames[1]]: function() { throw new Test262Error(); },
|
||||||
|
});
|
||||||
|
test({
|
||||||
|
[methodNames[0]]: method,
|
||||||
|
[methodNames[1]]: function() { throw new Test262Error(); },
|
||||||
|
});
|
||||||
|
if (hint === "number") {
|
||||||
|
// The default valueOf returns an object, which is unsuitable.
|
||||||
|
// The default toString returns a String, which is suitable.
|
||||||
|
// Therefore this test only works for valueOf falling back to toString.
|
||||||
|
test({
|
||||||
|
// this is toString:
|
||||||
|
[methodNames[1]]: method,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMethod: if func is undefined or null, return undefined.
|
||||||
|
test({
|
||||||
|
[Symbol.toPrimitive]: undefined,
|
||||||
|
[methodNames[0]]: method,
|
||||||
|
[methodNames[1]]: method,
|
||||||
|
});
|
||||||
|
test({
|
||||||
|
[Symbol.toPrimitive]: null,
|
||||||
|
[methodNames[0]]: method,
|
||||||
|
[methodNames[1]]: method,
|
||||||
|
});
|
||||||
|
|
||||||
|
// if methodNames[0] is not callable, fallback to methodNames[1]
|
||||||
|
test({
|
||||||
|
[methodNames[0]]: null,
|
||||||
|
[methodNames[1]]: method,
|
||||||
|
});
|
||||||
|
test({
|
||||||
|
[methodNames[0]]: 1,
|
||||||
|
[methodNames[1]]: method,
|
||||||
|
});
|
||||||
|
test({
|
||||||
|
[methodNames[0]]: {},
|
||||||
|
[methodNames[1]]: method,
|
||||||
|
});
|
||||||
|
|
||||||
|
// if methodNames[0] returns an object, fallback to methodNames[1]
|
||||||
|
test({
|
||||||
|
[methodNames[0]]: function() { return {}; },
|
||||||
|
[methodNames[1]]: method,
|
||||||
|
});
|
||||||
|
test({
|
||||||
|
[methodNames[0]]: function() { return Object(1); },
|
||||||
|
[methodNames[1]]: method,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function testNotCoercibleToInteger(test) {
|
||||||
|
// ToInteger only throws from ToNumber.
|
||||||
|
return testNotCoercibleToNumber(test);
|
||||||
|
}
|
||||||
|
function testNotCoercibleToNumber(test) {
|
||||||
|
function testPrimitiveValue(value) {
|
||||||
|
test(TypeError, value);
|
||||||
|
// ToPrimitive
|
||||||
|
testPrimitiveWrappers(value, "number", function(value) {
|
||||||
|
test(TypeError, value);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToNumber: Symbol -> TypeError
|
||||||
|
testPrimitiveValue(Symbol("1"));
|
||||||
|
|
||||||
|
if (typeof BigInt !== "undefined") {
|
||||||
|
// ToNumber: BigInt -> TypeError
|
||||||
|
testPrimitiveValue(BigInt(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToPrimitive
|
||||||
|
testNotCoercibleToPrimitive("number", test);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testNotCoercibleToPrimitive(hint, test) {
|
||||||
|
function MyError() {}
|
||||||
|
|
||||||
|
// ToPrimitive: input[@@toPrimitive] is not callable (and non-null)
|
||||||
|
test(TypeError, {[Symbol.toPrimitive]: 1});
|
||||||
|
test(TypeError, {[Symbol.toPrimitive]: {}});
|
||||||
|
|
||||||
|
// ToPrimitive: input[@@toPrimitive] returns object
|
||||||
|
test(TypeError, {[Symbol.toPrimitive]: function() { return Object(1); }});
|
||||||
|
test(TypeError, {[Symbol.toPrimitive]: function() { return {}; }});
|
||||||
|
|
||||||
|
// ToPrimitive: input[@@toPrimitive] throws
|
||||||
|
test(MyError, {[Symbol.toPrimitive]: function() { throw new MyError(); }});
|
||||||
|
|
||||||
|
// OrdinaryToPrimitive: method throws
|
||||||
|
testCoercibleToPrimitiveWithMethod(hint, function() {
|
||||||
|
throw new MyError();
|
||||||
|
}, function(value) {
|
||||||
|
test(MyError, value);
|
||||||
|
});
|
||||||
|
|
||||||
|
// OrdinaryToPrimitive: both methods are unsuitable
|
||||||
|
function testUnsuitableMethod(method) {
|
||||||
|
test(TypeError, {valueOf:method, toString:method});
|
||||||
|
}
|
||||||
|
// not callable:
|
||||||
|
testUnsuitableMethod(null);
|
||||||
|
testUnsuitableMethod(1);
|
||||||
|
testUnsuitableMethod({});
|
||||||
|
// returns object:
|
||||||
|
testUnsuitableMethod(function() { return Object(1); });
|
||||||
|
testUnsuitableMethod(function() { return {}; });
|
||||||
|
}
|
||||||
|
|
||||||
|
function testCoercibleToString(test) {
|
||||||
|
function testPrimitiveValue(value, expectedString) {
|
||||||
|
test(value, expectedString);
|
||||||
|
// ToPrimitive
|
||||||
|
testPrimitiveWrappers(value, "string", function(value) {
|
||||||
|
test(value, expectedString);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
testPrimitiveValue(undefined, "undefined");
|
||||||
|
testPrimitiveValue(null, "null");
|
||||||
|
testPrimitiveValue(true, "true");
|
||||||
|
testPrimitiveValue(false, "false");
|
||||||
|
testPrimitiveValue(0, "0");
|
||||||
|
testPrimitiveValue(-0, "0");
|
||||||
|
testPrimitiveValue(Infinity, "Infinity");
|
||||||
|
testPrimitiveValue(-Infinity, "-Infinity");
|
||||||
|
testPrimitiveValue(123.456, "123.456");
|
||||||
|
testPrimitiveValue(-123.456, "-123.456");
|
||||||
|
testPrimitiveValue("", "");
|
||||||
|
testPrimitiveValue("foo", "foo");
|
||||||
|
|
||||||
|
if (typeof BigInt !== "undefined") {
|
||||||
|
// BigInt -> TypeError
|
||||||
|
testPrimitiveValue(BigInt(0), "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
// toString of a few objects
|
||||||
|
test([], "");
|
||||||
|
test(["foo", "bar"], "foo,bar");
|
||||||
|
test({}, "[object Object]");
|
||||||
|
}
|
||||||
|
|
||||||
|
function testNotCoercibleToString(test) {
|
||||||
|
function testPrimitiveValue(value) {
|
||||||
|
test(TypeError, value);
|
||||||
|
// ToPrimitive
|
||||||
|
testPrimitiveWrappers(value, "string", function(value) {
|
||||||
|
test(TypeError, value);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Symbol -> TypeError
|
||||||
|
testPrimitiveValue(Symbol("1"));
|
||||||
|
|
||||||
|
// ToPrimitive
|
||||||
|
testNotCoercibleToPrimitive("string", test);
|
||||||
|
}
|
@ -10,6 +10,7 @@ info: >
|
|||||||
8. If _a_ has a [[TypedArrayName]] internal slot, then
|
8. If _a_ has a [[TypedArrayName]] internal slot, then
|
||||||
a. If IsDetachedBuffer(_a_.[[ViewedArrayBuffer]]) is *true*, throw a *TypeError* exception.
|
a. If IsDetachedBuffer(_a_.[[ViewedArrayBuffer]]) is *true*, throw a *TypeError* exception.
|
||||||
includes: [testTypedArray.js, detachArrayBuffer.js]
|
includes: [testTypedArray.js, detachArrayBuffer.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithTypedArrayConstructors(TA => {
|
testWithTypedArrayConstructors(TA => {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.add
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.add on arrays that allow atomic operations
|
Test range checking of Atomics.add on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
esid: sec-atomics.add
|
esid: sec-atomics.add
|
||||||
description: Test Atomics.add on arrays that allow atomic operations.
|
description: Test Atomics.add on arrays that allow atomic operations.
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.add
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.add on view values other than TypedArrays
|
Test Atomics.add on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.add
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.add on non-shared integer TypedArrays
|
Test Atomics.add on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.add
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.add on shared non-integer TypedArrays
|
Test Atomics.add on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.and
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.and on arrays that allow atomic operations
|
Test range checking of Atomics.and on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
esid: sec-atomics.and
|
esid: sec-atomics.and
|
||||||
description: Test Atomics.and on arrays that allow atomic operations
|
description: Test Atomics.and on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.and
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.and on view values other than TypedArrays
|
Test Atomics.and on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.and
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.and on non-shared integer TypedArrays
|
Test Atomics.and on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.and
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.and on shared non-integer TypedArrays
|
Test Atomics.and on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.compareexchange
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.compareExchange on arrays that allow atomic operations
|
Test range checking of Atomics.compareExchange on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
esid: sec-atomics.compareexchange
|
esid: sec-atomics.compareexchange
|
||||||
description: Test Atomics.compareExchange on arrays that allow atomic operations.
|
description: Test Atomics.compareExchange on arrays that allow atomic operations.
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.compareexchange
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.compareExchange on view values other than TypedArrays
|
Test Atomics.compareExchange on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.compareexchange
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.compareExchange on non-shared integer TypedArrays
|
Test Atomics.compareExchange on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.compareexchange
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.compareExchange on shared non-integer TypedArrays
|
Test Atomics.compareExchange on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.exchange
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.exchange on arrays that allow atomic operations
|
Test range checking of Atomics.exchange on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
esid: sec-atomics.exchange
|
esid: sec-atomics.exchange
|
||||||
description: Test Atomics.exchange on arrays that allow atomic operations.
|
description: Test Atomics.exchange on arrays that allow atomic operations.
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.exchange
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.exchange on view values other than TypedArrays
|
Test Atomics.exchange on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.exchange
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.exchange on non-shared integer TypedArrays
|
Test Atomics.exchange on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.exchange
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.exchange on shared non-integer TypedArrays
|
Test Atomics.exchange on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.load
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.load on arrays that allow atomic operations
|
Test range checking of Atomics.load on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
esid: sec-atomics.load
|
esid: sec-atomics.load
|
||||||
description: Test Atomics.load on arrays that allow atomic operations.
|
description: Test Atomics.load on arrays that allow atomic operations.
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.load
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.load on view values other than TypedArrays
|
Test Atomics.load on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.load
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.load on non-shared integer TypedArrays
|
Test Atomics.load on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.load
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.load on shared non-integer TypedArrays
|
Test Atomics.load on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.or
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.or on arrays that allow atomic operations
|
Test range checking of Atomics.or on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
esid: sec-atomics.or
|
esid: sec-atomics.or
|
||||||
description: Test Atomics.or on arrays that allow atomic operations
|
description: Test Atomics.or on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.or
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.or on view values other than TypedArrays
|
Test Atomics.or on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.or
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.or on non-shared integer TypedArrays
|
Test Atomics.or on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.or
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.or on shared non-integer TypedArrays
|
Test Atomics.or on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.store
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.store on arrays that allow atomic operations
|
Test range checking of Atomics.store on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
esid: sec-atomics.store
|
esid: sec-atomics.store
|
||||||
description: Test Atomics.store on arrays that allow atomic operations.
|
description: Test Atomics.store on arrays that allow atomic operations.
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.store
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.store on view values other than TypedArrays
|
Test Atomics.store on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.store
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.store on non-shared integer TypedArrays
|
Test Atomics.store on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.store
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.store on shared non-integer TypedArrays
|
Test Atomics.store on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.sub
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.sub on arrays that allow atomic operations
|
Test range checking of Atomics.sub on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
esid: sec-atomics.sub
|
esid: sec-atomics.sub
|
||||||
description: Test Atomics.sub on arrays that allow atomic operations
|
description: Test Atomics.sub on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.sub
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.sub on view values other than TypedArrays
|
Test Atomics.sub on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.sub
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.sub on non-shared integer TypedArrays
|
Test Atomics.sub on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.sub
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.sub on shared non-integer TypedArrays
|
Test Atomics.sub on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.wait
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.wait on arrays that allow atomic operations
|
Test range checking of Atomics.wait on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.wait
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.wait on view values other than TypedArrays
|
Test Atomics.wait on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.wait
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.wait on non-shared integer TypedArrays
|
Test Atomics.wait on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.wait
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.wait on shared non-integer TypedArrays
|
Test Atomics.wait on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.wake
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.wake on arrays that allow atomic operations
|
Test range checking of Atomics.wake on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -7,6 +7,7 @@ description: >
|
|||||||
Test Atomics.wait on arrays that allow atomic operations,
|
Test Atomics.wait on arrays that allow atomic operations,
|
||||||
in an Agent that is allowed to wait. There is only the one Agent.
|
in an Agent that is allowed to wait. There is only the one Agent.
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.wake
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.wake on view values other than TypedArrays
|
Test Atomics.wake on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.wake
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.wake on non-shared integer TypedArrays
|
Test Atomics.wake on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.wake
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.wake on shared non-integer TypedArrays
|
Test Atomics.wake on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.xor
|
|||||||
description: >
|
description: >
|
||||||
Test range checking of Atomics.xor on arrays that allow atomic operations
|
Test range checking of Atomics.xor on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(4);
|
var sab = new SharedArrayBuffer(4);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
esid: sec-atomics.xor
|
esid: sec-atomics.xor
|
||||||
description: Test Atomics.xor on arrays that allow atomic operations
|
description: Test Atomics.xor on arrays that allow atomic operations
|
||||||
includes: [testAtomics.js, testTypedArray.js]
|
includes: [testAtomics.js, testTypedArray.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, TypedArray, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.xor
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.xor on view values other than TypedArrays
|
Test Atomics.xor on view values other than TypedArrays
|
||||||
includes: [testAtomics.js]
|
includes: [testAtomics.js]
|
||||||
|
features: [SharedArrayBuffer, ArrayBuffer, DataView, Atomics, arrow-function, let, for-of]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithAtomicsNonViewValues(function(view) {
|
testWithAtomicsNonViewValues(function(view) {
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.xor
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.xor on non-shared integer TypedArrays
|
Test Atomics.xor on non-shared integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var ab = new ArrayBuffer(16);
|
var ab = new ArrayBuffer(16);
|
||||||
|
@ -6,6 +6,7 @@ esid: sec-atomics.xor
|
|||||||
description: >
|
description: >
|
||||||
Test Atomics.xor on shared non-integer TypedArrays
|
Test Atomics.xor on shared non-integer TypedArrays
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var sab = new SharedArrayBuffer(1024);
|
var sab = new SharedArrayBuffer(1024);
|
||||||
|
29
test/built-ins/String/prototype/indexOf/position-tointeger.js
vendored
Normal file
29
test/built-ins/String/prototype/indexOf/position-tointeger.js
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// Copyright (C) 2017 Josh Wolfe. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: sec-string.prototype.indexof
|
||||||
|
description: String.prototype.indexOf type coercion for position parameter
|
||||||
|
info: >
|
||||||
|
String.prototype.indexOf ( searchString [ , position ] )
|
||||||
|
|
||||||
|
4. Let pos be ? ToInteger(position).
|
||||||
|
|
||||||
|
includes: [typeCoercion.js]
|
||||||
|
features: [BigInt, Symbol.toPrimitive]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
testCoercibleToIntegerZero(function(zero) {
|
||||||
|
assert.sameValue("aaaa".indexOf("aa", zero), 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
testCoercibleToIntegerOne(function(one) {
|
||||||
|
assert.sameValue("aaaa".indexOf("aa", one), 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
testCoercibleToIntegerFromInteger(2, function(two) {
|
||||||
|
assert.sameValue("aaaa".indexOf("aa", two), 2);
|
||||||
|
});
|
||||||
|
|
||||||
|
testNotCoercibleToInteger(function(error, value) {
|
||||||
|
assert.throws(error, function() { "".indexOf("", value); });
|
||||||
|
});
|
26
test/built-ins/String/prototype/indexOf/searchstring-tostring.js
vendored
Normal file
26
test/built-ins/String/prototype/indexOf/searchstring-tostring.js
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
// Copyright (C) 2017 Josh Wolfe. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
/*---
|
||||||
|
esid: sec-string.prototype.indexof
|
||||||
|
description: String.prototype.indexOf type coercion for searchString parameter
|
||||||
|
info: >
|
||||||
|
String.prototype.indexOf ( searchString [ , position ] )
|
||||||
|
|
||||||
|
3. Let searchStr be ? ToString(searchString).
|
||||||
|
|
||||||
|
includes: [typeCoercion.js]
|
||||||
|
features: [Symbol.toPrimitive, BigInt]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
testCoercibleToString(function(value, expectedString) {
|
||||||
|
if (expectedString.length === 0) {
|
||||||
|
assert.sameValue(("x_x_x").indexOf(value), 0);
|
||||||
|
} else {
|
||||||
|
assert.sameValue(expectedString.indexOf("\x00"), -1, "sanity check");
|
||||||
|
assert.sameValue(("\x00\x00" + expectedString + "\x00\x00").indexOf(value), 2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
testNotCoercibleToString(function(error, value) {
|
||||||
|
assert.throws(error, function() { "".indexOf(value); });
|
||||||
|
});
|
@ -9,8 +9,8 @@ info: >
|
|||||||
|
|
||||||
%TypedArray%[@@species] is an accessor property whose set accessor function
|
%TypedArray%[@@species] is an accessor property whose set accessor function
|
||||||
is undefined.
|
is undefined.
|
||||||
features: [Symbol.species]
|
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [Symbol.species, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(TypedArray, Symbol.species);
|
var desc = Object.getOwnPropertyDescriptor(TypedArray, Symbol.species);
|
||||||
|
@ -8,8 +8,8 @@ info: >
|
|||||||
22.2.2.4 get %TypedArray% [ @@species ]
|
22.2.2.4 get %TypedArray% [ @@species ]
|
||||||
|
|
||||||
1. Return the this value.
|
1. Return the this value.
|
||||||
features: [Symbol.species]
|
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [Symbol.species, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var value = {};
|
var value = {};
|
||||||
|
@ -10,6 +10,7 @@ info: >
|
|||||||
7. Let len be ? ToLength(? Get(arrayLike, "length")).
|
7. Let len be ? ToLength(? Get(arrayLike, "length")).
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var arrayLike = {};
|
var arrayLike = {};
|
||||||
|
@ -10,6 +10,7 @@ info: >
|
|||||||
7. Let len be ? ToLength(? Get(arrayLike, "length")).
|
7. Let len be ? ToLength(? Get(arrayLike, "length")).
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var arrayLike = { length: {} };
|
var arrayLike = { length: {} };
|
||||||
|
@ -11,6 +11,7 @@ info: >
|
|||||||
2. If IsConstructor(C) is false, throw a TypeError exception.
|
2. If IsConstructor(C) is false, throw a TypeError exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var from = TypedArray.from;
|
var from = TypedArray.from;
|
||||||
|
@ -16,6 +16,7 @@ info: >
|
|||||||
1. Let newTypedArray be ? Construct(constructor, argumentList).
|
1. Let newTypedArray be ? Construct(constructor, argumentList).
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
|
@ -14,8 +14,8 @@ info: >
|
|||||||
|
|
||||||
1. Let usingIterator be ? GetMethod(items, @@iterator).
|
1. Let usingIterator be ? GetMethod(items, @@iterator).
|
||||||
...
|
...
|
||||||
features: [Symbol.iterator]
|
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [Symbol.iterator, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iter = {};
|
var iter = {};
|
||||||
|
@ -16,8 +16,8 @@ info: >
|
|||||||
2. If usingIterator is not undefined, then
|
2. If usingIterator is not undefined, then
|
||||||
a. Let iterator be ? GetIterator(items, usingIterator).
|
a. Let iterator be ? GetIterator(items, usingIterator).
|
||||||
...
|
...
|
||||||
features: [Symbol.iterator]
|
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [Symbol.iterator, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iter = {};
|
var iter = {};
|
||||||
|
@ -11,8 +11,8 @@ info: >
|
|||||||
d. Repeat, while next is not false
|
d. Repeat, while next is not false
|
||||||
i. Let next be ? IteratorStep(iterator).
|
i. Let next be ? IteratorStep(iterator).
|
||||||
...
|
...
|
||||||
features: [Symbol.iterator]
|
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [Symbol.iterator, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iter = {};
|
var iter = {};
|
||||||
|
@ -13,8 +13,8 @@ info: >
|
|||||||
ii. If next is not false, then
|
ii. If next is not false, then
|
||||||
1. Let nextValue be ? IteratorValue(next).
|
1. Let nextValue be ? IteratorValue(next).
|
||||||
...
|
...
|
||||||
features: [Symbol.iterator]
|
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [Symbol.iterator, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var iter = {};
|
var iter = {};
|
||||||
|
@ -11,7 +11,7 @@ info: >
|
|||||||
a. If IsCallable(mapfn) is false, throw a TypeError exception.
|
a. If IsCallable(mapfn) is false, throw a TypeError exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
features: [Symbol, Symbol.iterator]
|
features: [Symbol, Symbol.iterator, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var getIterator = 0;
|
var getIterator = 0;
|
||||||
|
@ -11,6 +11,7 @@ info: >
|
|||||||
2. If IsConstructor(C) is false, throw a TypeError exception.
|
2. If IsConstructor(C) is false, throw a TypeError exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var from = TypedArray.from;
|
var from = TypedArray.from;
|
||||||
|
@ -12,6 +12,7 @@ info: >
|
|||||||
Note: ES2016 replaces all the references for the %TypedArray% constructor to a
|
Note: ES2016 replaces all the references for the %TypedArray% constructor to a
|
||||||
single chapter covering all arguments cases.
|
single chapter covering all arguments cases.
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
|
@ -12,6 +12,7 @@ info: >
|
|||||||
4. If IsConstructor(C) is false, throw a TypeError exception.
|
4. If IsConstructor(C) is false, throw a TypeError exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var of = TypedArray.of;
|
var of = TypedArray.of;
|
||||||
|
@ -16,6 +16,7 @@ info: >
|
|||||||
1. Let newTypedArray be ? Construct(constructor, argumentList).
|
1. Let newTypedArray be ? Construct(constructor, argumentList).
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
|
@ -12,6 +12,7 @@ info: >
|
|||||||
4. If IsConstructor(C) is false, throw a TypeError exception.
|
4. If IsConstructor(C) is false, throw a TypeError exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var m = { m() {} }.m;
|
var m = { m() {} }.m;
|
||||||
|
@ -11,7 +11,7 @@ info: >
|
|||||||
5. Assert: name is a String value.
|
5. Assert: name is a String value.
|
||||||
6. Return name.
|
6. Return name.
|
||||||
includes: [testTypedArray.js, detachArrayBuffer.js]
|
includes: [testTypedArray.js, detachArrayBuffer.js]
|
||||||
features: [Symbol.toStringTag]
|
features: [Symbol.toStringTag, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithTypedArrayConstructors(function(TA) {
|
testWithTypedArrayConstructors(function(TA) {
|
||||||
|
@ -11,8 +11,8 @@ info: >
|
|||||||
...
|
...
|
||||||
3. If O does not have a [[TypedArrayName]] internal slot, return undefined.
|
3. If O does not have a [[TypedArrayName]] internal slot, return undefined.
|
||||||
...
|
...
|
||||||
features: [Symbol.toStringTag]
|
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [Symbol.toStringTag, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -9,8 +9,8 @@ info: >
|
|||||||
1. Let O be the this value.
|
1. Let O be the this value.
|
||||||
2. If Type(O) is not Object, return undefined.
|
2. If Type(O) is not Object, return undefined.
|
||||||
...
|
...
|
||||||
features: [Symbol.toStringTag]
|
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [Symbol.toStringTag, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -12,7 +12,7 @@ info: >
|
|||||||
5. Assert: name is a String value.
|
5. Assert: name is a String value.
|
||||||
6. Return name.
|
6. Return name.
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
features: [Symbol.toStringTag]
|
features: [Symbol.toStringTag, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithTypedArrayConstructors(function(TA) {
|
testWithTypedArrayConstructors(function(TA) {
|
||||||
|
@ -12,7 +12,7 @@ info: >
|
|||||||
3. If O does not have a [[TypedArrayName]] internal slot, return undefined.
|
3. If O does not have a [[TypedArrayName]] internal slot, return undefined.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
features: [Symbol.toStringTag, DataView]
|
features: [Symbol.toStringTag, DataView, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -10,7 +10,7 @@ info: >
|
|||||||
2. If Type(O) is not Object, return undefined.
|
2. If Type(O) is not Object, return undefined.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
features: [Symbol, Symbol.toStringTag]
|
features: [Symbol, Symbol.toStringTag, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -10,6 +10,7 @@ info: >
|
|||||||
4. Let buffer be the value of O's [[ViewedArrayBuffer]] internal slot.
|
4. Let buffer be the value of O's [[ViewedArrayBuffer]] internal slot.
|
||||||
5. Return buffer.
|
5. Return buffer.
|
||||||
includes: [testTypedArray.js, detachArrayBuffer.js]
|
includes: [testTypedArray.js, detachArrayBuffer.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithTypedArrayConstructors(function(TA) {
|
testWithTypedArrayConstructors(function(TA) {
|
||||||
|
@ -13,6 +13,7 @@ info: >
|
|||||||
exception.
|
exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -12,6 +12,7 @@ info: >
|
|||||||
exception.
|
exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -11,6 +11,7 @@ info: >
|
|||||||
4. Let buffer be the value of O's [[ViewedArrayBuffer]] internal slot.
|
4. Let buffer be the value of O's [[ViewedArrayBuffer]] internal slot.
|
||||||
5. Return buffer.
|
5. Return buffer.
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithTypedArrayConstructors(function(TA) {
|
testWithTypedArrayConstructors(function(TA) {
|
||||||
|
@ -15,7 +15,7 @@ info: >
|
|||||||
exception.
|
exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
features: [DataView]
|
features: [DataView, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -10,7 +10,7 @@ info: >
|
|||||||
2. If Type(O) is not Object, throw a TypeError exception.
|
2. If Type(O) is not Object, throw a TypeError exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
features: [Symbol]
|
features: [Symbol, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -11,6 +11,7 @@ info: >
|
|||||||
5. If IsDetachedBuffer(buffer) is true, return 0.
|
5. If IsDetachedBuffer(buffer) is true, return 0.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js, detachArrayBuffer.js]
|
includes: [testTypedArray.js, detachArrayBuffer.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithTypedArrayConstructors(function(TA) {
|
testWithTypedArrayConstructors(function(TA) {
|
||||||
|
@ -13,6 +13,7 @@ info: >
|
|||||||
exception.
|
exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -12,6 +12,7 @@ info: >
|
|||||||
exception.
|
exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -11,6 +11,7 @@ info: >
|
|||||||
6. Let size be the value of O's [[ByteLength]] internal slot.
|
6. Let size be the value of O's [[ByteLength]] internal slot.
|
||||||
7. Return size.
|
7. Return size.
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithTypedArrayConstructors(function(TA) {
|
testWithTypedArrayConstructors(function(TA) {
|
||||||
|
@ -15,7 +15,7 @@ info: >
|
|||||||
exception.
|
exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
features: [DataView]
|
features: [DataView, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -10,7 +10,7 @@ info: >
|
|||||||
2. If Type(O) is not Object, throw a TypeError exception.
|
2. If Type(O) is not Object, throw a TypeError exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
features: [Symbol]
|
features: [Symbol, TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -11,6 +11,7 @@ info: >
|
|||||||
5. If IsDetachedBuffer(buffer) is true, return 0.
|
5. If IsDetachedBuffer(buffer) is true, return 0.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js, detachArrayBuffer.js]
|
includes: [testTypedArray.js, detachArrayBuffer.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
testWithTypedArrayConstructors(function(TA) {
|
testWithTypedArrayConstructors(function(TA) {
|
||||||
|
@ -13,6 +13,7 @@ info: >
|
|||||||
exception.
|
exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
@ -12,6 +12,7 @@ info: >
|
|||||||
exception.
|
exception.
|
||||||
...
|
...
|
||||||
includes: [testTypedArray.js]
|
includes: [testTypedArray.js]
|
||||||
|
features: [TypedArray]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var TypedArrayPrototype = TypedArray.prototype;
|
var TypedArrayPrototype = TypedArray.prototype;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user