summaryrefslogtreecommitdiff
path: root/test/built-ins/TypedArray/prototype/Symbol.toStringTag
diff options
context:
space:
mode:
Diffstat (limited to 'test/built-ins/TypedArray/prototype/Symbol.toStringTag')
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/detached-buffer.js21
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/invoked-as-accessor.js20
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/invoked-as-func.js21
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/length.js32
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/name.js29
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/prop-desc.js28
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/return-typedarrayname.js21
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/this-has-no-typedarrayname-internal.js29
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/this-is-not-object.js27
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-accessor.js2
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-func.js2
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/length.js2
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/name.js2
-rw-r--r--test/built-ins/TypedArray/prototype/Symbol.toStringTag/prop-desc.js2
14 files changed, 233 insertions, 5 deletions
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/detached-buffer.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/detached-buffer.js
new file mode 100644
index 000000000..3bfba3440
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/detached-buffer.js
@@ -0,0 +1,21 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-%typedarray%.prototype-@@tostringtag
+description: The getter method does not throw with a detached buffer
+info: |
+ 22.2.3.32 get %TypedArray%.prototype [ @@toStringTag ]
+
+ ...
+ 4. Let name be the value of O's [[TypedArrayName]] internal slot.
+ 5. Assert: name is a String value.
+ 6. Return name.
+includes: [testBigIntTypedArray.js, detachArrayBuffer.js]
+features: [BigInt, Symbol.toStringTag, TypedArray]
+---*/
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+ var sample = new TA(1);
+ $DETACHBUFFER(sample.buffer);
+ assert.sameValue(sample[Symbol.toStringTag], TA.name);
+});
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/invoked-as-accessor.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/invoked-as-accessor.js
new file mode 100644
index 000000000..e2852b8f3
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/invoked-as-accessor.js
@@ -0,0 +1,20 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-%typedarray%.prototype-@@tostringtag
+description: >
+ Return undefined if this value does not have a [[TypedArrayName]] internal slot
+info: |
+ 22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
+
+ 1. Let O be the this value.
+ ...
+ 3. If O does not have a [[TypedArrayName]] internal slot, return undefined.
+ ...
+includes: [testBigIntTypedArray.js]
+features: [BigInt, Symbol.toStringTag, TypedArray]
+---*/
+
+var TypedArrayPrototype = TypedArray.prototype;
+
+assert.sameValue(TypedArrayPrototype[Symbol.toStringTag], undefined);
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/invoked-as-func.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/invoked-as-func.js
new file mode 100644
index 000000000..33aa05dac
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/invoked-as-func.js
@@ -0,0 +1,21 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-%typedarray%.prototype-@@tostringtag
+description: If this value is not Object, return undefined.
+info: |
+ 22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
+
+ 1. Let O be the this value.
+ 2. If Type(O) is not Object, return undefined.
+ ...
+includes: [testBigIntTypedArray.js]
+features: [BigInt, Symbol.toStringTag, TypedArray]
+---*/
+
+var TypedArrayPrototype = TypedArray.prototype;
+var getter = Object.getOwnPropertyDescriptor(
+ TypedArrayPrototype, Symbol.toStringTag
+).get;
+
+assert.sameValue(getter(), undefined);
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/length.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/length.js
new file mode 100644
index 000000000..13e4e9e17
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/length.js
@@ -0,0 +1,32 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-%typedarray%.prototype-@@tostringtag
+description: >
+ get %TypedArray%.prototype [ @@toStringTag ].length is 0.
+info: |
+ get %TypedArray%.prototype [ @@toStringTag ]
+
+ 17 ECMAScript Standard Built-in Objects:
+ Every built-in Function object, including constructors, has a length
+ property whose value is an integer. Unless otherwise specified, this
+ value is equal to the largest number of named arguments shown in the
+ subclause headings for the function description, including optional
+ parameters. However, rest parameters shown using the form “...name”
+ are not included in the default argument count.
+
+ Unless otherwise specified, the length property of a built-in Function
+ object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+ [[Configurable]]: true }.
+includes: [propertyHelper.js, testBigIntTypedArray.js]
+features: [BigInt, Symbol.toStringTag]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag);
+
+assert.sameValue(desc.get.length, 0);
+
+verifyNotEnumerable(desc.get, "length");
+verifyNotWritable(desc.get, "length");
+verifyConfigurable(desc.get, "length");
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/name.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/name.js
new file mode 100644
index 000000000..1004ce463
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/name.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-%typedarray%.prototype-@@tostringtag
+description: >
+ get %TypedArray%.prototype [ @@toStringTag ].name is "get [Symbol.toStringTag]".
+info: |
+ get %TypedArray%.prototype [ @@toStringTag ]
+
+ 17 ECMAScript Standard Built-in Objects:
+ Every built-in Function object, including constructors, that is not
+ identified as an anonymous function has a name property whose value
+ is a String.
+
+ Unless otherwise specified, the name property of a built-in Function
+ object, if it exists, has the attributes { [[Writable]]: false,
+ [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js, testBigIntTypedArray.js]
+features: [BigInt, Symbol.toStringTag]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(TypedArray.prototype, Symbol.toStringTag);
+
+assert.sameValue(desc.get.name, "get [Symbol.toStringTag]");
+
+verifyNotEnumerable(desc.get, "name");
+verifyNotWritable(desc.get, "name");
+verifyConfigurable(desc.get, "name");
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/prop-desc.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/prop-desc.js
new file mode 100644
index 000000000..23f76220b
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/prop-desc.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-%typedarray%.prototype-@@tostringtag
+description: >
+ "@@toStringTag" property of TypedArrayPrototype
+info: |
+ 22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
+
+ %TypedArray%.prototype[@@toStringTag] is an accessor property whose set
+ accessor function is undefined.
+ ...
+
+ This property has the attributes { [[Enumerable]]: false, [[Configurable]]:
+ true }.
+includes: [propertyHelper.js, testBigIntTypedArray.js]
+features: [BigInt, Symbol.toStringTag]
+---*/
+
+var TypedArrayPrototype = TypedArray.prototype;
+var desc = Object.getOwnPropertyDescriptor(
+ TypedArrayPrototype, Symbol.toStringTag
+);
+
+assert.sameValue(desc.set, undefined);
+assert.sameValue(typeof desc.get, 'function');
+verifyNotEnumerable(TypedArrayPrototype, Symbol.toStringTag);
+verifyConfigurable(TypedArrayPrototype, Symbol.toStringTag);
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/return-typedarrayname.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/return-typedarrayname.js
new file mode 100644
index 000000000..80a3116b8
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/return-typedarrayname.js
@@ -0,0 +1,21 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-%typedarray%.prototype-@@tostringtag
+description: >
+ Return value from the [[TypedArrayName]] internal slot
+info: |
+ 22.2.3.32 get %TypedArray%.prototype [ @@toStringTag ]
+
+ ...
+ 4. Let name be the value of O's [[TypedArrayName]] internal slot.
+ 5. Assert: name is a String value.
+ 6. Return name.
+includes: [testBigIntTypedArray.js]
+features: [BigInt, Symbol.toStringTag, TypedArray]
+---*/
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+ var ta = new TA();
+ assert.sameValue(ta[Symbol.toStringTag], TA.name, "property value");
+});
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/this-has-no-typedarrayname-internal.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/this-has-no-typedarrayname-internal.js
new file mode 100644
index 000000000..9414c2d00
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/this-has-no-typedarrayname-internal.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-%typedarray%.prototype-@@tostringtag
+description: >
+ Return undefined when `this` does not have a [[TypedArrayName]] internal slot
+info: |
+ 22.2.3.32 get %TypedArray%.prototype [ @@toStringTag ]
+
+ 1. Let O be the this value.
+ ...
+ 3. If O does not have a [[TypedArrayName]] internal slot, return undefined.
+ ...
+includes: [testBigIntTypedArray.js]
+features: [BigInt, Symbol.toStringTag, DataView, TypedArray]
+---*/
+
+var TypedArrayPrototype = TypedArray.prototype;
+var getter = Object.getOwnPropertyDescriptor(
+ TypedArrayPrototype, Symbol.toStringTag
+).get;
+
+assert.sameValue(getter.call({}), undefined);
+assert.sameValue(getter.call([]), undefined);
+assert.sameValue(getter.call(new ArrayBuffer(8)), undefined);
+
+var ab = new ArrayBuffer(8);
+var dv = new DataView(ab, 0, 1);
+assert.sameValue(getter.call(dv), undefined);
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/this-is-not-object.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/this-is-not-object.js
new file mode 100644
index 000000000..1ae3cf292
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/BigInt/this-is-not-object.js
@@ -0,0 +1,27 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-%typedarray%.prototype-@@tostringtag
+description: Return undefined when `this` is not Object
+info: |
+ 22.2.3.32 get %TypedArray%.prototype [ @@toStringTag ]
+
+ 1. Let O be the this value.
+ 2. If Type(O) is not Object, return undefined.
+ ...
+includes: [testBigIntTypedArray.js]
+features: [BigInt, Symbol, Symbol.toStringTag, TypedArray]
+---*/
+
+var TypedArrayPrototype = TypedArray.prototype;
+var getter = Object.getOwnPropertyDescriptor(
+ TypedArrayPrototype, Symbol.toStringTag
+).get;
+
+assert.sameValue(getter.call(undefined), undefined, "this is undefined");
+assert.sameValue(getter.call(42), undefined, "this is 42");
+assert.sameValue(getter.call("foo"), undefined, "this is a string");
+assert.sameValue(getter.call(true), undefined, "this is true");
+assert.sameValue(getter.call(false), undefined, "this is false");
+assert.sameValue(getter.call(Symbol("s")), undefined, "this is a Symbol");
+assert.sameValue(getter.call(null), undefined, "this is null");
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-accessor.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-accessor.js
index 252c9cfcb..a6fcea836 100644
--- a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-accessor.js
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-accessor.js
@@ -1,7 +1,7 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
-es6id: 22.2.3.31
+esid: sec-get-%typedarray%.prototype-@@tostringtag
description: >
Return undefined if this value does not have a [[TypedArrayName]] internal slot
info: |
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-func.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-func.js
index 60e2f84f9..3c89cc5cd 100644
--- a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-func.js
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/invoked-as-func.js
@@ -1,7 +1,7 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
-es6id: 22.2.3.31
+esid: sec-get-%typedarray%.prototype-@@tostringtag
description: If this value is not Object, return undefined.
info: |
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/length.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/length.js
index faa887b93..37b6d2aaf 100644
--- a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/length.js
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/length.js
@@ -2,7 +2,7 @@
// This code is governed by the BSD license found in the LICENSE file.
/*---
-es6id: 22.2.3.31
+esid: sec-get-%typedarray%.prototype-@@tostringtag
description: >
get %TypedArray%.prototype [ @@toStringTag ].length is 0.
info: |
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/name.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/name.js
index f39dc9eaa..fef03e767 100644
--- a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/name.js
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/name.js
@@ -2,7 +2,7 @@
// This code is governed by the BSD license found in the LICENSE file.
/*---
-es6id: 22.2.3.31
+esid: sec-get-%typedarray%.prototype-@@tostringtag
description: >
get %TypedArray%.prototype [ @@toStringTag ].name is "get [Symbol.toStringTag]".
info: |
diff --git a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/prop-desc.js b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/prop-desc.js
index 75c827fae..62c84434b 100644
--- a/test/built-ins/TypedArray/prototype/Symbol.toStringTag/prop-desc.js
+++ b/test/built-ins/TypedArray/prototype/Symbol.toStringTag/prop-desc.js
@@ -1,7 +1,7 @@
// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
-es6id: 22.2.3.31
+esid: sec-get-%typedarray%.prototype-@@tostringtag
description: >
"@@toStringTag" property of TypedArrayPrototype
info: |