From f5d8b1c1fb043e104ed36da92a01af35e4d74fbd Mon Sep 17 00:00:00 2001
From: Rick Waldron <waldron.rick@gmail.com>
Date: Thu, 20 Apr 2017 15:14:08 -0400
Subject: [PATCH] ArrayBuffer: constructor, name, length, descriptor (#991)

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
---
 test/built-ins/ArrayBuffer/length.js    | 31 +++++++++++++++++++++++++
 test/built-ins/ArrayBuffer/name.js      | 28 ++++++++++++++++++++++
 test/built-ins/ArrayBuffer/prop-desc.js | 23 ++++++++++++++++++
 3 files changed, 82 insertions(+)
 create mode 100644 test/built-ins/ArrayBuffer/length.js
 create mode 100644 test/built-ins/ArrayBuffer/name.js
 create mode 100644 test/built-ins/ArrayBuffer/prop-desc.js

diff --git a/test/built-ins/ArrayBuffer/length.js b/test/built-ins/ArrayBuffer/length.js
new file mode 100644
index 0000000000..12b7e904ca
--- /dev/null
+++ b/test/built-ins/ArrayBuffer/length.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2017 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-arraybuffer-constructor
+description: >
+  ArrayBuffer.length is 1.
+info: >
+  ArrayBuffer ( length )
+
+  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]
+---*/
+
+assert.sameValue(ArrayBuffer.length, 1);
+
+verifyProperty(ArrayBuffer, "length", {
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/test/built-ins/ArrayBuffer/name.js b/test/built-ins/ArrayBuffer/name.js
new file mode 100644
index 0000000000..f833b03220
--- /dev/null
+++ b/test/built-ins/ArrayBuffer/name.js
@@ -0,0 +1,28 @@
+// Copyright (C) 2017 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-arraybuffer-constructor
+description: >
+  ArrayBuffer.name is "ArrayBuffer".
+info: >
+  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]
+---*/
+
+assert.sameValue(ArrayBuffer.name, "ArrayBuffer");
+
+verifyProperty(ArrayBuffer, "name", {
+  writable: false,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/test/built-ins/ArrayBuffer/prop-desc.js b/test/built-ins/ArrayBuffer/prop-desc.js
new file mode 100644
index 0000000000..84edc21a09
--- /dev/null
+++ b/test/built-ins/ArrayBuffer/prop-desc.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2017 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-arraybuffer-constructor
+description: >
+  Property descriptor of ArrayBuffer
+info: >
+  17 ECMAScript Standard Built-in Objects:
+
+  Every other data property described in clauses 18 through 26 and in Annex B.2
+  has the attributes { [[Writable]]: true, [[Enumerable]]: false,
+  [[Configurable]]: true } unless otherwise specified.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(typeof ArrayBuffer, "function", "`typeof ArrayBuffer` is `'function'`");
+
+verifyProperty(this, "ArrayBuffer", {
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
-- 
GitLab