mirror of https://github.com/tc39/test262.git
Boilerplate tests for rawJSON and isRawJSON
from the proposal json-parse-with-source
This commit is contained in:
parent
df910721ba
commit
954d1809f8
|
@ -0,0 +1,48 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-json.israwjson
|
||||||
|
description: >
|
||||||
|
JSON.isRawJSON meets the requirements for built-in objects
|
||||||
|
info: |
|
||||||
|
JSON.isRawJSON ( O )
|
||||||
|
|
||||||
|
18 ECMAScript Standard Built-in Objects
|
||||||
|
...
|
||||||
|
Unless specified otherwise, a built-in object that is callable as a function
|
||||||
|
is a built-in function object with the characteristics described in 10.3.
|
||||||
|
Unless specified otherwise, the [[Extensible]] internal slot of a built-in
|
||||||
|
object initially has the value true. Every built-in function object has a
|
||||||
|
[[Realm]] internal slot whose value is the Realm Record of the realm for
|
||||||
|
which the object was initially created.
|
||||||
|
...
|
||||||
|
Unless otherwise specified every built-in function and every built-in
|
||||||
|
constructor has the Function prototype object, which is the initial value of
|
||||||
|
the expression Function.prototype (20.2.3), as the value of its [[Prototype]]
|
||||||
|
internal slot.
|
||||||
|
...
|
||||||
|
Built-in function objects that are not identified as constructors do not
|
||||||
|
implement the [[Construct]] internal method unless otherwise specified in the
|
||||||
|
description of a particular function.
|
||||||
|
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert(Object.isExtensible(JSON.isRawJSON), "JSON.isRawJSON is extensible");
|
||||||
|
assert.sameValue(
|
||||||
|
typeof JSON.isRawJSON,
|
||||||
|
'function',
|
||||||
|
'The value of `typeof JSON.isRawJSON` is "function"'
|
||||||
|
);
|
||||||
|
assert.sameValue(
|
||||||
|
Object.getPrototypeOf(JSON.isRawJSON),
|
||||||
|
Function.prototype,
|
||||||
|
'Object.getPrototypeOf(JSON.isRawJSON) must return the value of "Function.prototype"'
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
Object.getOwnPropertyDescriptor(JSON.isRawJSON, "prototype"),
|
||||||
|
undefined,
|
||||||
|
"JSON.isRawJSON has no own prototype property"
|
||||||
|
);
|
|
@ -0,0 +1,25 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-json.rawjson
|
||||||
|
description: >
|
||||||
|
JSON.isRawJSON.length value and descriptor.
|
||||||
|
info: |
|
||||||
|
JSON.isRawJSON ( text )
|
||||||
|
|
||||||
|
18 ECMAScript Standard Built-in Objects
|
||||||
|
Every other data property described in clauses 19 through 28 and in Annex B.2
|
||||||
|
has the attributes { [[Writable]]: true, [[Enumerable]]: false,
|
||||||
|
[[Configurable]]: true } unless otherwise specified.
|
||||||
|
|
||||||
|
includes: [propertyHelper.js]
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
verifyProperty(JSON.isRawJSON, 'length', {
|
||||||
|
value: 1,
|
||||||
|
writable: false,
|
||||||
|
enumerable: false,
|
||||||
|
configurable: true
|
||||||
|
});
|
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-json.israwjson
|
||||||
|
description: >
|
||||||
|
JSON.isRawJSON.name value and descriptor.
|
||||||
|
info: |
|
||||||
|
JSON.isRawJSON ( text )
|
||||||
|
|
||||||
|
18 ECMAScript Standard Built-in Objects
|
||||||
|
Every other data property described in clauses 19 through 28 and in Annex B.2
|
||||||
|
has the attributes { [[Writable]]: true, [[Enumerable]]: false,
|
||||||
|
[[Configurable]]: true } unless otherwise specified.
|
||||||
|
|
||||||
|
includes: [propertyHelper.js]
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
JSON.isRawJSON.name, 'isRawJSON',
|
||||||
|
'The value of JSON.isRawJSON.name is "isRawJSON"'
|
||||||
|
);
|
||||||
|
|
||||||
|
verifyProperty(JSON.isRawJSON, 'name', {
|
||||||
|
enumerable: false,
|
||||||
|
writable: false,
|
||||||
|
configurable: true
|
||||||
|
});
|
|
@ -0,0 +1,28 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-ecmascript-standard-built-in-objects
|
||||||
|
description: >
|
||||||
|
JSON.isRawJSON does not implement [[Construct]], is not new-able
|
||||||
|
info: |
|
||||||
|
ECMAScript Function Objects
|
||||||
|
|
||||||
|
Built-in function objects that are not identified as constructors do not
|
||||||
|
implement the [[Construct]] internal method unless otherwise specified in
|
||||||
|
the description of a particular function.
|
||||||
|
|
||||||
|
sec-evaluatenew
|
||||||
|
|
||||||
|
...
|
||||||
|
7. If IsConstructor(constructor) is false, throw a TypeError exception.
|
||||||
|
...
|
||||||
|
includes: [isConstructor.js]
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(isConstructor(JSON.isRawJSON), false, 'isConstructor(JSON.isRawJSON) must return false');
|
||||||
|
|
||||||
|
assert.throws(TypeError, () => {
|
||||||
|
new JSON.isRawJSON();
|
||||||
|
});
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-json.israwjson
|
||||||
|
description: >
|
||||||
|
Property type and descriptor.
|
||||||
|
info: |
|
||||||
|
JSON.isRawJSON ( O )
|
||||||
|
|
||||||
|
18 ECMAScript Standard Built-in Objects
|
||||||
|
...
|
||||||
|
Every other data property described in clauses 19 through 28 and in Annex B.2
|
||||||
|
has the attributes { [[Writable]]: true, [[Enumerable]]: false,
|
||||||
|
[[Configurable]]: true } unless otherwise specified.
|
||||||
|
|
||||||
|
includes: [propertyHelper.js]
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
typeof JSON.isRawJSON,
|
||||||
|
'function',
|
||||||
|
'The value of `typeof JSON.isRawJSON` is "function"'
|
||||||
|
);
|
||||||
|
|
||||||
|
verifyProperty(JSON, 'isRawJSON', {
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
configurable: true
|
||||||
|
});
|
|
@ -0,0 +1,37 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-json.rawjson
|
||||||
|
description: >
|
||||||
|
JSON.rawJSON meets the requirements for built-in objects
|
||||||
|
info: |
|
||||||
|
Unless specified otherwise, a built-in object that is callable as a function
|
||||||
|
is a built-in function object with the characteristics described in 10.3.
|
||||||
|
Unless specified otherwise, the [[Extensible]] internal slot of a built-in
|
||||||
|
object initially has the value *true*.
|
||||||
|
|
||||||
|
Unless otherwise specified every built-in function and every built-in
|
||||||
|
constructor has the Function prototype object, which is the initial value of
|
||||||
|
the expression Function.prototype (20.2.3), as the value of its [[Prototype]]
|
||||||
|
internal slot.
|
||||||
|
|
||||||
|
Built-in functions that are not constructors do not have a "prototype"
|
||||||
|
property unless otherwise specified in the description of a particular
|
||||||
|
function.
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert(Object.isExtensible(JSON.rawJSON), "JSON.rawJSON is extensible");
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
Object.getPrototypeOf(JSON.rawJSON),
|
||||||
|
Function.prototype,
|
||||||
|
"Prototype of JSON.rawJSON is Function.prototype"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
Object.getOwnPropertyDescriptor(JSON.rawJSON, "prototype"),
|
||||||
|
undefined,
|
||||||
|
"JSON.rawJSON has no own prototype property"
|
||||||
|
);
|
|
@ -0,0 +1,25 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-json.rawjson
|
||||||
|
description: >
|
||||||
|
JSON.rawJSON.length value and descriptor.
|
||||||
|
info: |
|
||||||
|
JSON.rawJSON ( text )
|
||||||
|
|
||||||
|
18 ECMAScript Standard Built-in Objects
|
||||||
|
Every other data property described in clauses 19 through 28 and in Annex B.2
|
||||||
|
has the attributes { [[Writable]]: true, [[Enumerable]]: false,
|
||||||
|
[[Configurable]]: true } unless otherwise specified.
|
||||||
|
|
||||||
|
includes: [propertyHelper.js]
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
verifyProperty(JSON.rawJSON, 'length', {
|
||||||
|
value: 1,
|
||||||
|
writable: false,
|
||||||
|
enumerable: false,
|
||||||
|
configurable: true
|
||||||
|
});
|
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-json.rawjson
|
||||||
|
description: >
|
||||||
|
JSON.rawJSON.name value and descriptor.
|
||||||
|
info: |
|
||||||
|
JSON.rawJSON ( text )
|
||||||
|
|
||||||
|
18 ECMAScript Standard Built-in Objects
|
||||||
|
Every other data property described in clauses 19 through 28 and in Annex B.2
|
||||||
|
has the attributes { [[Writable]]: true, [[Enumerable]]: false,
|
||||||
|
[[Configurable]]: true } unless otherwise specified.
|
||||||
|
|
||||||
|
includes: [propertyHelper.js]
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
JSON.rawJSON.name, 'rawJSON',
|
||||||
|
'The value of JSON.rawJSON.name is "rawJSON"'
|
||||||
|
);
|
||||||
|
|
||||||
|
verifyProperty(JSON.rawJSON, 'name', {
|
||||||
|
enumerable: false,
|
||||||
|
writable: false,
|
||||||
|
configurable: true
|
||||||
|
});
|
|
@ -0,0 +1,28 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-ecmascript-standard-built-in-objects
|
||||||
|
description: >
|
||||||
|
JSON.rawJSON does not implement [[Construct]], is not new-able
|
||||||
|
info: |
|
||||||
|
ECMAScript Function Objects
|
||||||
|
|
||||||
|
Built-in function objects that are not identified as constructors do not
|
||||||
|
implement the [[Construct]] internal method unless otherwise specified in
|
||||||
|
the description of a particular function.
|
||||||
|
|
||||||
|
sec-evaluatenew
|
||||||
|
|
||||||
|
...
|
||||||
|
7. If IsConstructor(constructor) is false, throw a TypeError exception.
|
||||||
|
...
|
||||||
|
includes: [isConstructor.js]
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(isConstructor(JSON.rawJSON), false, 'isConstructor(JSON.rawJSON) must return false');
|
||||||
|
|
||||||
|
assert.throws(TypeError, () => {
|
||||||
|
new JSON.rawJSON();
|
||||||
|
});
|
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright (C) 2024 Igalia S.L. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-json.rawjson
|
||||||
|
description: >
|
||||||
|
Property type and descriptor.
|
||||||
|
info: |
|
||||||
|
JSON.rawJSON ( text )
|
||||||
|
|
||||||
|
18 ECMAScript Standard Built-in Objects
|
||||||
|
Every other data property described in clauses 19 through 28 and in Annex B.2
|
||||||
|
has the attributes { [[Writable]]: true, [[Enumerable]]: false,
|
||||||
|
[[Configurable]]: true } unless otherwise specified.
|
||||||
|
|
||||||
|
includes: [propertyHelper.js]
|
||||||
|
features: [json-parse-with-source]
|
||||||
|
---*/
|
||||||
|
assert.sameValue(typeof JSON.rawJSON, 'function');
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
typeof JSON.rawJSON,
|
||||||
|
'function',
|
||||||
|
'The value of `typeof JSON.rawJSON` is "function"'
|
||||||
|
);
|
||||||
|
|
||||||
|
verifyProperty(JSON, 'rawJSON', {
|
||||||
|
enumerable: false,
|
||||||
|
writable: true,
|
||||||
|
configurable: true
|
||||||
|
});
|
Loading…
Reference in New Issue