Skip to content
Snippets Groups Projects
Commit 33395b52 authored by André Bargull's avatar André Bargull
Browse files

Add basic surface tests for NativeErrors

parent 1bac79fb
No related branches found
No related tags found
No related merge requests found
Showing
with 221 additions and 0 deletions
// 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"');
// 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);
// 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]");
// 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");
// 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");
// 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);
// 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");
// 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");
// 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");
// 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");
// 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]");
// 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);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment