From 33395b52f5ae1bd010d14add130094c0e6b76c56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bargull?= <andre.bargull@gmail.com>
Date: Fri, 15 Jan 2016 18:13:36 +0100
Subject: [PATCH] Add basic surface tests for NativeErrors

---
 .../NativeErrors/EvalError/constructor.js     | 10 ++++++
 .../NativeErrors/EvalError/instance-proto.js  | 14 ++++++++
 .../NativeErrors/EvalError/is-error-object.js | 14 ++++++++
 .../NativeErrors/EvalError/length.js          | 32 +++++++++++++++++++
 test/built-ins/NativeErrors/EvalError/name.js | 24 ++++++++++++++
 .../built-ins/NativeErrors/EvalError/proto.js | 12 +++++++
 .../NativeErrors/EvalError/prototype.js       | 19 +++++++++++
 .../EvalError/prototype/constructor.js        | 23 +++++++++++++
 .../EvalError/prototype/message.js            | 23 +++++++++++++
 .../NativeErrors/EvalError/prototype/name.js  | 24 ++++++++++++++
 .../EvalError/prototype/not-error-object.js   | 13 ++++++++
 .../NativeErrors/EvalError/prototype/proto.js | 13 ++++++++
 .../NativeErrors/RangeError/constructor.js    | 10 ++++++
 .../NativeErrors/RangeError/instance-proto.js | 14 ++++++++
 .../RangeError/is-error-object.js             | 14 ++++++++
 .../NativeErrors/RangeError/length.js         | 32 +++++++++++++++++++
 .../built-ins/NativeErrors/RangeError/name.js | 24 ++++++++++++++
 .../NativeErrors/RangeError/proto.js          | 12 +++++++
 .../NativeErrors/RangeError/prototype.js      | 19 +++++++++++
 .../RangeError/prototype/constructor.js       | 23 +++++++++++++
 .../RangeError/prototype/message.js           | 23 +++++++++++++
 .../NativeErrors/RangeError/prototype/name.js | 24 ++++++++++++++
 .../RangeError/prototype/not-error-object.js  | 13 ++++++++
 .../RangeError/prototype/proto.js             | 13 ++++++++
 .../ReferenceError/constructor.js             | 10 ++++++
 .../ReferenceError/instance-proto.js          | 14 ++++++++
 .../ReferenceError/is-error-object.js         | 14 ++++++++
 .../NativeErrors/ReferenceError/length.js     | 32 +++++++++++++++++++
 .../NativeErrors/ReferenceError/name.js       | 24 ++++++++++++++
 .../NativeErrors/ReferenceError/proto.js      | 12 +++++++
 .../NativeErrors/ReferenceError/prototype.js  | 19 +++++++++++
 .../ReferenceError/prototype/constructor.js   | 23 +++++++++++++
 .../ReferenceError/prototype/message.js       | 23 +++++++++++++
 .../ReferenceError/prototype/name.js          | 24 ++++++++++++++
 .../prototype/not-error-object.js             | 13 ++++++++
 .../ReferenceError/prototype/proto.js         | 13 ++++++++
 .../NativeErrors/SyntaxError/constructor.js   | 10 ++++++
 .../SyntaxError/instance-proto.js             | 14 ++++++++
 .../SyntaxError/is-error-object.js            | 14 ++++++++
 .../NativeErrors/SyntaxError/length.js        | 32 +++++++++++++++++++
 .../NativeErrors/SyntaxError/name.js          | 24 ++++++++++++++
 .../NativeErrors/SyntaxError/proto.js         | 12 +++++++
 .../NativeErrors/SyntaxError/prototype.js     | 19 +++++++++++
 .../SyntaxError/prototype/constructor.js      | 23 +++++++++++++
 .../SyntaxError/prototype/message.js          | 23 +++++++++++++
 .../SyntaxError/prototype/name.js             | 24 ++++++++++++++
 .../SyntaxError/prototype/not-error-object.js | 13 ++++++++
 .../SyntaxError/prototype/proto.js            | 13 ++++++++
 .../NativeErrors/TypeError/constructor.js     | 10 ++++++
 .../NativeErrors/TypeError/instance-proto.js  | 14 ++++++++
 .../NativeErrors/TypeError/is-error-object.js | 14 ++++++++
 .../NativeErrors/TypeError/length.js          | 32 +++++++++++++++++++
 test/built-ins/NativeErrors/TypeError/name.js | 24 ++++++++++++++
 .../built-ins/NativeErrors/TypeError/proto.js | 12 +++++++
 .../NativeErrors/TypeError/prototype.js       | 19 +++++++++++
 .../TypeError/prototype/constructor.js        | 23 +++++++++++++
 .../TypeError/prototype/message.js            | 23 +++++++++++++
 .../NativeErrors/TypeError/prototype/name.js  | 24 ++++++++++++++
 .../TypeError/prototype/not-error-object.js   | 13 ++++++++
 .../NativeErrors/TypeError/prototype/proto.js | 13 ++++++++
 .../NativeErrors/URIError/constructor.js      | 10 ++++++
 .../NativeErrors/URIError/instance-proto.js   | 14 ++++++++
 .../NativeErrors/URIError/is-error-object.js  | 14 ++++++++
 .../built-ins/NativeErrors/URIError/length.js | 32 +++++++++++++++++++
 test/built-ins/NativeErrors/URIError/name.js  | 24 ++++++++++++++
 test/built-ins/NativeErrors/URIError/proto.js | 12 +++++++
 .../NativeErrors/URIError/prototype.js        | 19 +++++++++++
 .../URIError/prototype/constructor.js         | 23 +++++++++++++
 .../URIError/prototype/message.js             | 23 +++++++++++++
 .../NativeErrors/URIError/prototype/name.js   | 24 ++++++++++++++
 .../URIError/prototype/not-error-object.js    | 13 ++++++++
 .../NativeErrors/URIError/prototype/proto.js  | 13 ++++++++
 72 files changed, 1326 insertions(+)
 create mode 100755 test/built-ins/NativeErrors/EvalError/constructor.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/instance-proto.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/is-error-object.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/length.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/name.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/proto.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/prototype.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/prototype/constructor.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/prototype/message.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/prototype/name.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/prototype/not-error-object.js
 create mode 100755 test/built-ins/NativeErrors/EvalError/prototype/proto.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/constructor.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/instance-proto.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/is-error-object.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/length.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/name.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/proto.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/prototype.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/prototype/constructor.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/prototype/message.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/prototype/name.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/prototype/not-error-object.js
 create mode 100755 test/built-ins/NativeErrors/RangeError/prototype/proto.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/constructor.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/instance-proto.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/is-error-object.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/length.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/name.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/proto.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/prototype.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/prototype/constructor.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/prototype/message.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/prototype/name.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/prototype/not-error-object.js
 create mode 100755 test/built-ins/NativeErrors/ReferenceError/prototype/proto.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/constructor.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/instance-proto.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/is-error-object.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/length.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/name.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/proto.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/prototype.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/prototype/constructor.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/prototype/message.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/prototype/name.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/prototype/not-error-object.js
 create mode 100755 test/built-ins/NativeErrors/SyntaxError/prototype/proto.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/constructor.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/instance-proto.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/is-error-object.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/length.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/name.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/proto.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/prototype.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/prototype/constructor.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/prototype/message.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/prototype/name.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/prototype/not-error-object.js
 create mode 100755 test/built-ins/NativeErrors/TypeError/prototype/proto.js
 create mode 100755 test/built-ins/NativeErrors/URIError/constructor.js
 create mode 100755 test/built-ins/NativeErrors/URIError/instance-proto.js
 create mode 100755 test/built-ins/NativeErrors/URIError/is-error-object.js
 create mode 100755 test/built-ins/NativeErrors/URIError/length.js
 create mode 100755 test/built-ins/NativeErrors/URIError/name.js
 create mode 100755 test/built-ins/NativeErrors/URIError/proto.js
 create mode 100755 test/built-ins/NativeErrors/URIError/prototype.js
 create mode 100755 test/built-ins/NativeErrors/URIError/prototype/constructor.js
 create mode 100755 test/built-ins/NativeErrors/URIError/prototype/message.js
 create mode 100755 test/built-ins/NativeErrors/URIError/prototype/name.js
 create mode 100755 test/built-ins/NativeErrors/URIError/prototype/not-error-object.js
 create mode 100755 test/built-ins/NativeErrors/URIError/prototype/proto.js

diff --git a/test/built-ins/NativeErrors/EvalError/constructor.js b/test/built-ins/NativeErrors/EvalError/constructor.js
new file mode 100755
index 0000000000..ed388b47ea
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  EvalError is a constructor function.
+---*/
+
+assert.sameValue(typeof EvalError, 'function', 'typeof EvalError is "function"');
diff --git a/test/built-ins/NativeErrors/EvalError/instance-proto.js b/test/built-ins/NativeErrors/EvalError/instance-proto.js
new file mode 100755
index 0000000000..8fe8ff9871
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of EvalError instances is EvalError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new EvalError), EvalError.prototype);
diff --git a/test/built-ins/NativeErrors/EvalError/is-error-object.js b/test/built-ins/NativeErrors/EvalError/is-error-object.js
new file mode 100755
index 0000000000..9229b24aab
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  EvalError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new EvalError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/EvalError/length.js b/test/built-ins/NativeErrors/EvalError/length.js
new file mode 100755
index 0000000000..581d3eb75a
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/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.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  EvalError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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(EvalError.length, 1);
+
+verifyNotEnumerable(EvalError, "length");
+verifyNotWritable(EvalError, "length");
+verifyConfigurable(EvalError, "length");
diff --git a/test/built-ins/NativeErrors/EvalError/name.js b/test/built-ins/NativeErrors/EvalError/name.js
new file mode 100755
index 0000000000..d810c49f36
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  EvalError.name is "EvalError".
+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(EvalError.name, "EvalError");
+
+verifyNotEnumerable(EvalError, "name");
+verifyNotWritable(EvalError, "name");
+verifyConfigurable(EvalError, "name");
diff --git a/test/built-ins/NativeErrors/EvalError/proto.js b/test/built-ins/NativeErrors/EvalError/proto.js
new file mode 100755
index 0000000000..a9faac145d
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of EvalError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(EvalError), Error);
diff --git a/test/built-ins/NativeErrors/EvalError/prototype.js b/test/built-ins/NativeErrors/EvalError/prototype.js
new file mode 100755
index 0000000000..f863ff47e3
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of EvalError.prototype is the EvalError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(EvalError.prototype, Object.getPrototypeOf(new EvalError));
+
+verifyNotEnumerable(EvalError, "prototype");
+verifyNotWritable(EvalError, "prototype");
+verifyNotConfigurable(EvalError, "prototype");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/constructor.js b/test/built-ins/NativeErrors/EvalError/prototype/constructor.js
new file mode 100755
index 0000000000..581925f297
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of EvalError.prototype.constructor is the EvalError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  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(EvalError.prototype.constructor, EvalError);
+
+verifyNotEnumerable(EvalError.prototype, "constructor");
+verifyWritable(EvalError.prototype, "constructor");
+verifyConfigurable(EvalError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/message.js b/test/built-ins/NativeErrors/EvalError/prototype/message.js
new file mode 100755
index 0000000000..e256bfe914
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of EvalError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  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(EvalError.prototype.message, "");
+
+verifyNotEnumerable(EvalError.prototype, "message");
+verifyWritable(EvalError.prototype, "message");
+verifyConfigurable(EvalError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/name.js b/test/built-ins/NativeErrors/EvalError/prototype/name.js
new file mode 100755
index 0000000000..6b0db3901f
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of EvalError.prototype.name is "EvalError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  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(EvalError.prototype.name, "EvalError");
+
+verifyNotEnumerable(EvalError.prototype, "name");
+verifyWritable(EvalError.prototype, "name");
+verifyConfigurable(EvalError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/not-error-object.js b/test/built-ins/NativeErrors/EvalError/prototype/not-error-object.js
new file mode 100755
index 0000000000..1e58225911
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  EvalError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(EvalError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/EvalError/prototype/proto.js b/test/built-ins/NativeErrors/EvalError/prototype/proto.js
new file mode 100755
index 0000000000..14f9deac93
--- /dev/null
+++ b/test/built-ins/NativeErrors/EvalError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of EvalError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(EvalError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/RangeError/constructor.js b/test/built-ins/NativeErrors/RangeError/constructor.js
new file mode 100755
index 0000000000..c3d5e0a2ec
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  RangeError is a constructor function.
+---*/
+
+assert.sameValue(typeof RangeError, 'function', 'typeof RangeError is "function"');
diff --git a/test/built-ins/NativeErrors/RangeError/instance-proto.js b/test/built-ins/NativeErrors/RangeError/instance-proto.js
new file mode 100755
index 0000000000..88d40bf6d7
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of RangeError instances is RangeError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new RangeError), RangeError.prototype);
diff --git a/test/built-ins/NativeErrors/RangeError/is-error-object.js b/test/built-ins/NativeErrors/RangeError/is-error-object.js
new file mode 100755
index 0000000000..0e4bd55b7a
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  RangeError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new RangeError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/RangeError/length.js b/test/built-ins/NativeErrors/RangeError/length.js
new file mode 100755
index 0000000000..c4be5ca7b0
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/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.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  RangeError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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(RangeError.length, 1);
+
+verifyNotEnumerable(RangeError, "length");
+verifyNotWritable(RangeError, "length");
+verifyConfigurable(RangeError, "length");
diff --git a/test/built-ins/NativeErrors/RangeError/name.js b/test/built-ins/NativeErrors/RangeError/name.js
new file mode 100755
index 0000000000..4368390edf
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  RangeError.name is "RangeError".
+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(RangeError.name, "RangeError");
+
+verifyNotEnumerable(RangeError, "name");
+verifyNotWritable(RangeError, "name");
+verifyConfigurable(RangeError, "name");
diff --git a/test/built-ins/NativeErrors/RangeError/proto.js b/test/built-ins/NativeErrors/RangeError/proto.js
new file mode 100755
index 0000000000..e098b4f327
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of RangeError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(RangeError), Error);
diff --git a/test/built-ins/NativeErrors/RangeError/prototype.js b/test/built-ins/NativeErrors/RangeError/prototype.js
new file mode 100755
index 0000000000..a802b8409c
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of RangeError.prototype is the RangeError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(RangeError.prototype, Object.getPrototypeOf(new RangeError));
+
+verifyNotEnumerable(RangeError, "prototype");
+verifyNotWritable(RangeError, "prototype");
+verifyNotConfigurable(RangeError, "prototype");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/constructor.js b/test/built-ins/NativeErrors/RangeError/prototype/constructor.js
new file mode 100755
index 0000000000..d94e491c0f
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of RangeError.prototype.constructor is the RangeError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  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(RangeError.prototype.constructor, RangeError);
+
+verifyNotEnumerable(RangeError.prototype, "constructor");
+verifyWritable(RangeError.prototype, "constructor");
+verifyConfigurable(RangeError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/message.js b/test/built-ins/NativeErrors/RangeError/prototype/message.js
new file mode 100755
index 0000000000..059477b8e8
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of RangeError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  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(RangeError.prototype.message, "");
+
+verifyNotEnumerable(RangeError.prototype, "message");
+verifyWritable(RangeError.prototype, "message");
+verifyConfigurable(RangeError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/name.js b/test/built-ins/NativeErrors/RangeError/prototype/name.js
new file mode 100755
index 0000000000..ef4f857705
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of RangeError.prototype.name is "RangeError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  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(RangeError.prototype.name, "RangeError");
+
+verifyNotEnumerable(RangeError.prototype, "name");
+verifyWritable(RangeError.prototype, "name");
+verifyConfigurable(RangeError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/not-error-object.js b/test/built-ins/NativeErrors/RangeError/prototype/not-error-object.js
new file mode 100755
index 0000000000..d7d5bf64be
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  RangeError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(RangeError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/RangeError/prototype/proto.js b/test/built-ins/NativeErrors/RangeError/prototype/proto.js
new file mode 100755
index 0000000000..200ed2ecf3
--- /dev/null
+++ b/test/built-ins/NativeErrors/RangeError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of RangeError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(RangeError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/ReferenceError/constructor.js b/test/built-ins/NativeErrors/ReferenceError/constructor.js
new file mode 100755
index 0000000000..085dd391d6
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  ReferenceError is a constructor function.
+---*/
+
+assert.sameValue(typeof ReferenceError, 'function', 'typeof ReferenceError is "function"');
diff --git a/test/built-ins/NativeErrors/ReferenceError/instance-proto.js b/test/built-ins/NativeErrors/ReferenceError/instance-proto.js
new file mode 100755
index 0000000000..fd580d04da
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of ReferenceError instances is ReferenceError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new ReferenceError), ReferenceError.prototype);
diff --git a/test/built-ins/NativeErrors/ReferenceError/is-error-object.js b/test/built-ins/NativeErrors/ReferenceError/is-error-object.js
new file mode 100755
index 0000000000..e11906a79a
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  ReferenceError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new ReferenceError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/ReferenceError/length.js b/test/built-ins/NativeErrors/ReferenceError/length.js
new file mode 100755
index 0000000000..079ccf05ae
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/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.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  ReferenceError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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(ReferenceError.length, 1);
+
+verifyNotEnumerable(ReferenceError, "length");
+verifyNotWritable(ReferenceError, "length");
+verifyConfigurable(ReferenceError, "length");
diff --git a/test/built-ins/NativeErrors/ReferenceError/name.js b/test/built-ins/NativeErrors/ReferenceError/name.js
new file mode 100755
index 0000000000..ef93bfdae6
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  ReferenceError.name is "ReferenceError".
+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(ReferenceError.name, "ReferenceError");
+
+verifyNotEnumerable(ReferenceError, "name");
+verifyNotWritable(ReferenceError, "name");
+verifyConfigurable(ReferenceError, "name");
diff --git a/test/built-ins/NativeErrors/ReferenceError/proto.js b/test/built-ins/NativeErrors/ReferenceError/proto.js
new file mode 100755
index 0000000000..7d34c4174c
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of ReferenceError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(ReferenceError), Error);
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype.js b/test/built-ins/NativeErrors/ReferenceError/prototype.js
new file mode 100755
index 0000000000..160ea5f61f
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of ReferenceError.prototype is the ReferenceError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(ReferenceError.prototype, Object.getPrototypeOf(new ReferenceError));
+
+verifyNotEnumerable(ReferenceError, "prototype");
+verifyNotWritable(ReferenceError, "prototype");
+verifyNotConfigurable(ReferenceError, "prototype");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/constructor.js b/test/built-ins/NativeErrors/ReferenceError/prototype/constructor.js
new file mode 100755
index 0000000000..d3d159d9bc
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of ReferenceError.prototype.constructor is the ReferenceError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  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(ReferenceError.prototype.constructor, ReferenceError);
+
+verifyNotEnumerable(ReferenceError.prototype, "constructor");
+verifyWritable(ReferenceError.prototype, "constructor");
+verifyConfigurable(ReferenceError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/message.js b/test/built-ins/NativeErrors/ReferenceError/prototype/message.js
new file mode 100755
index 0000000000..836bb6fef2
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of ReferenceError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  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(ReferenceError.prototype.message, "");
+
+verifyNotEnumerable(ReferenceError.prototype, "message");
+verifyWritable(ReferenceError.prototype, "message");
+verifyConfigurable(ReferenceError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/name.js b/test/built-ins/NativeErrors/ReferenceError/prototype/name.js
new file mode 100755
index 0000000000..92fba48cfc
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of ReferenceError.prototype.name is "ReferenceError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  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(ReferenceError.prototype.name, "ReferenceError");
+
+verifyNotEnumerable(ReferenceError.prototype, "name");
+verifyWritable(ReferenceError.prototype, "name");
+verifyConfigurable(ReferenceError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/not-error-object.js b/test/built-ins/NativeErrors/ReferenceError/prototype/not-error-object.js
new file mode 100755
index 0000000000..6bb112df8d
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  ReferenceError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(ReferenceError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/ReferenceError/prototype/proto.js b/test/built-ins/NativeErrors/ReferenceError/prototype/proto.js
new file mode 100755
index 0000000000..bffd499ef2
--- /dev/null
+++ b/test/built-ins/NativeErrors/ReferenceError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of ReferenceError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(ReferenceError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/SyntaxError/constructor.js b/test/built-ins/NativeErrors/SyntaxError/constructor.js
new file mode 100755
index 0000000000..ecbae3e236
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  SyntaxError is a constructor function.
+---*/
+
+assert.sameValue(typeof SyntaxError, 'function', 'typeof SyntaxError is "function"');
diff --git a/test/built-ins/NativeErrors/SyntaxError/instance-proto.js b/test/built-ins/NativeErrors/SyntaxError/instance-proto.js
new file mode 100755
index 0000000000..745c1cb5ed
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of SyntaxError instances is SyntaxError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new SyntaxError), SyntaxError.prototype);
diff --git a/test/built-ins/NativeErrors/SyntaxError/is-error-object.js b/test/built-ins/NativeErrors/SyntaxError/is-error-object.js
new file mode 100755
index 0000000000..c4b4d4fa94
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  SyntaxError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new SyntaxError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/SyntaxError/length.js b/test/built-ins/NativeErrors/SyntaxError/length.js
new file mode 100755
index 0000000000..6836ed76be
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/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.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  SyntaxError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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(SyntaxError.length, 1);
+
+verifyNotEnumerable(SyntaxError, "length");
+verifyNotWritable(SyntaxError, "length");
+verifyConfigurable(SyntaxError, "length");
diff --git a/test/built-ins/NativeErrors/SyntaxError/name.js b/test/built-ins/NativeErrors/SyntaxError/name.js
new file mode 100755
index 0000000000..34f04980d8
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  SyntaxError.name is "SyntaxError".
+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(SyntaxError.name, "SyntaxError");
+
+verifyNotEnumerable(SyntaxError, "name");
+verifyNotWritable(SyntaxError, "name");
+verifyConfigurable(SyntaxError, "name");
diff --git a/test/built-ins/NativeErrors/SyntaxError/proto.js b/test/built-ins/NativeErrors/SyntaxError/proto.js
new file mode 100755
index 0000000000..6ca28b2d58
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of SyntaxError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(SyntaxError), Error);
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype.js b/test/built-ins/NativeErrors/SyntaxError/prototype.js
new file mode 100755
index 0000000000..f6ab80d837
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of SyntaxError.prototype is the SyntaxError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(SyntaxError.prototype, Object.getPrototypeOf(new SyntaxError));
+
+verifyNotEnumerable(SyntaxError, "prototype");
+verifyNotWritable(SyntaxError, "prototype");
+verifyNotConfigurable(SyntaxError, "prototype");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/constructor.js b/test/built-ins/NativeErrors/SyntaxError/prototype/constructor.js
new file mode 100755
index 0000000000..138c053f3b
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of SyntaxError.prototype.constructor is the SyntaxError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  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(SyntaxError.prototype.constructor, SyntaxError);
+
+verifyNotEnumerable(SyntaxError.prototype, "constructor");
+verifyWritable(SyntaxError.prototype, "constructor");
+verifyConfigurable(SyntaxError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/message.js b/test/built-ins/NativeErrors/SyntaxError/prototype/message.js
new file mode 100755
index 0000000000..fdebed5cae
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of SyntaxError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  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(SyntaxError.prototype.message, "");
+
+verifyNotEnumerable(SyntaxError.prototype, "message");
+verifyWritable(SyntaxError.prototype, "message");
+verifyConfigurable(SyntaxError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/name.js b/test/built-ins/NativeErrors/SyntaxError/prototype/name.js
new file mode 100755
index 0000000000..91971a50b0
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of SyntaxError.prototype.name is "SyntaxError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  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(SyntaxError.prototype.name, "SyntaxError");
+
+verifyNotEnumerable(SyntaxError.prototype, "name");
+verifyWritable(SyntaxError.prototype, "name");
+verifyConfigurable(SyntaxError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/not-error-object.js b/test/built-ins/NativeErrors/SyntaxError/prototype/not-error-object.js
new file mode 100755
index 0000000000..fd0f67fd71
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  SyntaxError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(SyntaxError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/SyntaxError/prototype/proto.js b/test/built-ins/NativeErrors/SyntaxError/prototype/proto.js
new file mode 100755
index 0000000000..e1654ece7a
--- /dev/null
+++ b/test/built-ins/NativeErrors/SyntaxError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of SyntaxError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(SyntaxError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/TypeError/constructor.js b/test/built-ins/NativeErrors/TypeError/constructor.js
new file mode 100755
index 0000000000..777d410d70
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  TypeError is a constructor function.
+---*/
+
+assert.sameValue(typeof TypeError, 'function', 'typeof TypeError is "function"');
diff --git a/test/built-ins/NativeErrors/TypeError/instance-proto.js b/test/built-ins/NativeErrors/TypeError/instance-proto.js
new file mode 100755
index 0000000000..fa176ad646
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of TypeError instances is TypeError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new TypeError), TypeError.prototype);
diff --git a/test/built-ins/NativeErrors/TypeError/is-error-object.js b/test/built-ins/NativeErrors/TypeError/is-error-object.js
new file mode 100755
index 0000000000..3df960fe32
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  TypeError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new TypeError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/TypeError/length.js b/test/built-ins/NativeErrors/TypeError/length.js
new file mode 100755
index 0000000000..cbd3a83880
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/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.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  TypeError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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(TypeError.length, 1);
+
+verifyNotEnumerable(TypeError, "length");
+verifyNotWritable(TypeError, "length");
+verifyConfigurable(TypeError, "length");
diff --git a/test/built-ins/NativeErrors/TypeError/name.js b/test/built-ins/NativeErrors/TypeError/name.js
new file mode 100755
index 0000000000..be5a5e3d27
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  TypeError.name is "TypeError".
+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(TypeError.name, "TypeError");
+
+verifyNotEnumerable(TypeError, "name");
+verifyNotWritable(TypeError, "name");
+verifyConfigurable(TypeError, "name");
diff --git a/test/built-ins/NativeErrors/TypeError/proto.js b/test/built-ins/NativeErrors/TypeError/proto.js
new file mode 100755
index 0000000000..c9f482f85b
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of TypeError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(TypeError), Error);
diff --git a/test/built-ins/NativeErrors/TypeError/prototype.js b/test/built-ins/NativeErrors/TypeError/prototype.js
new file mode 100755
index 0000000000..1b959527ce
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of TypeError.prototype is the TypeError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(TypeError.prototype, Object.getPrototypeOf(new TypeError));
+
+verifyNotEnumerable(TypeError, "prototype");
+verifyNotWritable(TypeError, "prototype");
+verifyNotConfigurable(TypeError, "prototype");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/constructor.js b/test/built-ins/NativeErrors/TypeError/prototype/constructor.js
new file mode 100755
index 0000000000..4c27ee5fa3
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of TypeError.prototype.constructor is the TypeError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  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(TypeError.prototype.constructor, TypeError);
+
+verifyNotEnumerable(TypeError.prototype, "constructor");
+verifyWritable(TypeError.prototype, "constructor");
+verifyConfigurable(TypeError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/message.js b/test/built-ins/NativeErrors/TypeError/prototype/message.js
new file mode 100755
index 0000000000..6dd1fdfbd7
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of TypeError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  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(TypeError.prototype.message, "");
+
+verifyNotEnumerable(TypeError.prototype, "message");
+verifyWritable(TypeError.prototype, "message");
+verifyConfigurable(TypeError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/name.js b/test/built-ins/NativeErrors/TypeError/prototype/name.js
new file mode 100755
index 0000000000..687c27bc59
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of TypeError.prototype.name is "TypeError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  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(TypeError.prototype.name, "TypeError");
+
+verifyNotEnumerable(TypeError.prototype, "name");
+verifyWritable(TypeError.prototype, "name");
+verifyConfigurable(TypeError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/not-error-object.js b/test/built-ins/NativeErrors/TypeError/prototype/not-error-object.js
new file mode 100755
index 0000000000..d30e5e8e51
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  TypeError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(TypeError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/TypeError/prototype/proto.js b/test/built-ins/NativeErrors/TypeError/prototype/proto.js
new file mode 100755
index 0000000000..af405e1503
--- /dev/null
+++ b/test/built-ins/NativeErrors/TypeError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of TypeError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(TypeError.prototype), Error.prototype);
diff --git a/test/built-ins/NativeErrors/URIError/constructor.js b/test/built-ins/NativeErrors/URIError/constructor.js
new file mode 100755
index 0000000000..7e7aac49e5
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/constructor.js
@@ -0,0 +1,10 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  URIError is a constructor function.
+---*/
+
+assert.sameValue(typeof URIError, 'function', 'typeof URIError is "function"');
diff --git a/test/built-ins/NativeErrors/URIError/instance-proto.js b/test/built-ins/NativeErrors/URIError/instance-proto.js
new file mode 100755
index 0000000000..58c432f5f4
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/instance-proto.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  The prototype of URIError instances is URIError.prototype.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.getPrototypeOf(new URIError), URIError.prototype);
diff --git a/test/built-ins/NativeErrors/URIError/is-error-object.js b/test/built-ins/NativeErrors/URIError/is-error-object.js
new file mode 100755
index 0000000000..dbce44e90e
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/is-error-object.js
@@ -0,0 +1,14 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.4
+description: >
+  URIError instances have an [[ErrorData]] internal slot.
+info: >
+  NativeError instances are ordinary objects that inherit properties
+  from their NativeError prototype object and have an [[ErrorData]]
+  internal slot whose value is undefined
+---*/
+
+assert.sameValue(Object.prototype.toString.call(new URIError), "[object Error]");
diff --git a/test/built-ins/NativeErrors/URIError/length.js b/test/built-ins/NativeErrors/URIError/length.js
new file mode 100755
index 0000000000..4d5f631c66
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/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.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  URIError.length is 1.
+info: >
+  NativeError ( message )
+
+  19.5.6.2 Properties of the NativeError Constructors
+    Besides the length property (whose value is 1) [...].
+
+  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(URIError.length, 1);
+
+verifyNotEnumerable(URIError, "length");
+verifyNotWritable(URIError, "length");
+verifyConfigurable(URIError, "length");
diff --git a/test/built-ins/NativeErrors/URIError/name.js b/test/built-ins/NativeErrors/URIError/name.js
new file mode 100755
index 0000000000..f0048b5398
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.1
+description: >
+  URIError.name is "URIError".
+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(URIError.name, "URIError");
+
+verifyNotEnumerable(URIError, "name");
+verifyNotWritable(URIError, "name");
+verifyConfigurable(URIError, "name");
diff --git a/test/built-ins/NativeErrors/URIError/proto.js b/test/built-ins/NativeErrors/URIError/proto.js
new file mode 100755
index 0000000000..e1fc2cb00f
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/proto.js
@@ -0,0 +1,12 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2
+description: >
+  The prototype of URIError is Error.
+info: >
+  The value of the [[Prototype]] internal slot of a NativeError constructor is the intrinsic object %Error% (19.5.1).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(URIError), Error);
diff --git a/test/built-ins/NativeErrors/URIError/prototype.js b/test/built-ins/NativeErrors/URIError/prototype.js
new file mode 100755
index 0000000000..dead970454
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype.js
@@ -0,0 +1,19 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.2.1
+description: >
+  The initial value of URIError.prototype is the URIError prototype object.
+info: >
+  The initial value of NativeError.prototype is a NativeError prototype object (19.5.6.3).
+  Each NativeError constructor has a distinct prototype object.
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+---*/
+
+assert.sameValue(URIError.prototype, Object.getPrototypeOf(new URIError));
+
+verifyNotEnumerable(URIError, "prototype");
+verifyNotWritable(URIError, "prototype");
+verifyNotConfigurable(URIError, "prototype");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/constructor.js b/test/built-ins/NativeErrors/URIError/prototype/constructor.js
new file mode 100755
index 0000000000..6c2ab7f6e8
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/constructor.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.1
+description: >
+  The initial value of URIError.prototype.constructor is the URIError object.
+info: >
+  The initial value of the constructor property of the prototype for a given NativeError
+  constructor is the corresponding intrinsic object %NativeError% (19.5.6.1).
+
+  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(URIError.prototype.constructor, URIError);
+
+verifyNotEnumerable(URIError.prototype, "constructor");
+verifyWritable(URIError.prototype, "constructor");
+verifyConfigurable(URIError.prototype, "constructor");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/message.js b/test/built-ins/NativeErrors/URIError/prototype/message.js
new file mode 100755
index 0000000000..04fa0c0984
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/message.js
@@ -0,0 +1,23 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.2
+description: >
+  The initial value of URIError.prototype.message is the empty string.
+info: >
+  The initial value of the message property of the prototype for a given NativeError
+  constructor is the empty String.
+
+  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(URIError.prototype.message, "");
+
+verifyNotEnumerable(URIError.prototype, "message");
+verifyWritable(URIError.prototype, "message");
+verifyConfigurable(URIError.prototype, "message");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/name.js b/test/built-ins/NativeErrors/URIError/prototype/name.js
new file mode 100755
index 0000000000..f3dbbd057a
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/name.js
@@ -0,0 +1,24 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3.3
+description: >
+  The initial value of URIError.prototype.name is "URIError".
+info: >
+  The initial value of the name property of the prototype for a given NativeError
+  constructor is a string consisting of the name of the constructor (the name used
+  instead of NativeError).
+
+  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(URIError.prototype.name, "URIError");
+
+verifyNotEnumerable(URIError.prototype, "name");
+verifyWritable(URIError.prototype, "name");
+verifyConfigurable(URIError.prototype, "name");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/not-error-object.js b/test/built-ins/NativeErrors/URIError/prototype/not-error-object.js
new file mode 100755
index 0000000000..c693d1c22b
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/not-error-object.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  URIError.prototype is not an error object instance.
+info: >
+  Each NativeError prototype object is an ordinary object. It is not an
+  Error instance and does not have an [[ErrorData]] internal slot.
+---*/
+
+assert.sameValue(Object.prototype.toString.call(URIError.prototype), "[object Object]");
diff --git a/test/built-ins/NativeErrors/URIError/prototype/proto.js b/test/built-ins/NativeErrors/URIError/prototype/proto.js
new file mode 100755
index 0000000000..857d56b05d
--- /dev/null
+++ b/test/built-ins/NativeErrors/URIError/prototype/proto.js
@@ -0,0 +1,13 @@
+// Copyright (C) 2015 André Bargull. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es6id: 19.5.6.3
+description: >
+  The prototype of URIError.prototype is Error.prototype.
+info: >
+  The value of the [[Prototype]] internal slot of each NativeError prototype
+  object is the intrinsic object %ErrorPrototype% (19.5.3).
+---*/
+
+assert.sameValue(Object.getPrototypeOf(URIError.prototype), Error.prototype);
-- 
GitLab