| 15.12.1.1-0-1.js |
---
es5id: 15.12.1.1-0-1
description: The JSON lexical grammar treats whitespace as a token seperator
--- |
389 |
- |
| 15.12.1.1-0-2.js |
---
es5id: 15.12.1.1-0-2
description: >
<VT> is not valid JSON whitespace as specified by the production
JSONWhitespace.
--- |
380 |
- |
| 15.12.1.1-0-3.js |
---
es5id: 15.12.1.1-0-3
description: >
<FF> is not valid JSON whitespace as specified by the production
JSONWhitespace.
--- |
380 |
- |
| 15.12.1.1-0-4.js |
---
es5id: 15.12.1.1-0-4
description: >
<NBSP> is not valid JSON whitespace as specified by the production
JSONWhitespace.
--- |
382 |
- |
| 15.12.1.1-0-5.js |
---
es5id: 15.12.1.1-0-5
description: >
<ZWSPP> is not valid JSON whitespace as specified by the
production JSONWhitespace.
--- |
383 |
- |
| 15.12.1.1-0-6.js |
---
es5id: 15.12.1.1-0-6
description: >
<BOM> is not valid JSON whitespace as specified by the production
JSONWhitespace.
--- |
382 |
- |
| 15.12.1.1-0-8.js |
---
es5id: 15.12.1.1-0-8
description: >
U+2028 and U+2029 are not valid JSON whitespace as specified by
the production JSONWhitespace.
--- |
400 |
- |
| 15.12.1.1-0-9.js |
---
es5id: 15.12.1.1-0-9
description: Whitespace characters can appear before/after any JSONtoken
--- |
477 |
- |
| 15.12.1.1-g1-1.js |
---
es5id: 15.12.1.1-g1-1
description: The JSON lexical grammar treats <TAB> as a whitespace character
--- |
467 |
- |
| 15.12.1.1-g1-2.js |
---
es5id: 15.12.1.1-g1-2
description: The JSON lexical grammar treats <CR> as a whitespace character
--- |
464 |
- |
| 15.12.1.1-g1-3.js |
---
es5id: 15.12.1.1-g1-3
description: The JSON lexical grammar treats <LF> as a whitespace character
--- |
464 |
- |
| 15.12.1.1-g1-4.js |
---
es5id: 15.12.1.1-g1-4
description: The JSON lexical grammar treats <SP> as a whitespace character
--- |
462 |
- |
| 15.12.1.1-g2-1.js |
---
es5id: 15.12.1.1-g2-1
description: JSONStrings can be written using double quotes
--- |
302 |
- |
| 15.12.1.1-g2-2.js |
---
es5id: 15.12.1.1-g2-2
description: A JSONString may not be delimited by single quotes
--- |
302 |
- |
| 15.12.1.1-g2-3.js |
---
es5id: 15.12.1.1-g2-3
description: A JSONString may not be delimited by Uncode escaped quotes
--- |
322 |
- |
| 15.12.1.1-g2-4.js |
---
es5id: 15.12.1.1-g2-4
description: A JSONString must both begin and end with double quotes
--- |
310 |
- |
| 15.12.1.1-g2-5.js |
---
es5id: 15.12.1.1-g2-5
description: >
A JSONStrings can contain no JSONStringCharacters (Empty
JSONStrings)
--- |
326 |
- |
| 15.12.1.1-g4-1.js |
---
es5id: 15.12.1.1-g4-1
description: >
The JSON lexical grammar does not allow a JSONStringCharacter to
be any of the Unicode characters U+0000 thru U+0007
--- |
484 |
- |
| 15.12.1.1-g4-2.js |
---
es5id: 15.12.1.1-g4-2
description: >
The JSON lexical grammar does not allow a JSONStringCharacter to
be any of the Unicode characters U+0008 thru U+000F
--- |
484 |
- |
| 15.12.1.1-g4-3.js |
---
es5id: 15.12.1.1-g4-3
description: >
The JSON lexical grammar does not allow a JSONStringCharacter to
be any of the Unicode characters U+0010 thru U+0017
--- |
484 |
- |
| 15.12.1.1-g4-4.js |
---
es5id: 15.12.1.1-g4-4
description: >
The JSON lexical grammar does not allow a JSONStringCharacter to
be any of the Unicode characters U+0018 thru U+001F
--- |
484 |
- |
| 15.12.1.1-g5-1.js |
---
es5id: 15.12.1.1-g5-1
description: >
The JSON lexical grammar allows Unicode escape sequences in a
JSONString
--- |
344 |
- |
| 15.12.1.1-g5-2.js |
---
es5id: 15.12.1.1-g5-2
description: >
A JSONStringCharacter UnicodeEscape may not have fewer than 4 hex
characters
--- |
347 |
- |
| 15.12.1.1-g5-3.js |
---
es5id: 15.12.1.1-g5-3
description: >
A JSONStringCharacter UnicodeEscape may not include any non=hex
characters
--- |
346 |
- |
| 15.12.1.1-g6-1.js |
---
es5id: 15.12.1.1-g6-1
description: >
The JSON lexical grammer allows '/' as a JSONEscapeCharacter after
'' in a JSONString
--- |
349 |
- |
| 15.12.1.1-g6-2.js |
---
es5id: 15.12.1.1-g6-2
description: >
The JSON lexical grammer allows '' as a JSONEscapeCharacter after
'' in a JSONString
--- |
351 |
- |
| 15.12.1.1-g6-3.js |
---
es5id: 15.12.1.1-g6-3
description: >
The JSON lexical grammer allows 'b' as a JSONEscapeCharacter after
'' in a JSONString
--- |
350 |
- |
| 15.12.1.1-g6-4.js |
---
es5id: 15.12.1.1-g6-4
description: >
The JSON lexical grammer allows 'f' as a JSONEscapeCharacter after
'' in a JSONString
--- |
350 |
- |
| 15.12.1.1-g6-5.js |
---
es5id: 15.12.1.1-g6-5
description: >
The JSON lexical grammer allows 'n' as a JSONEscapeCharacter after
'' in a JSONString
--- |
350 |
- |
| 15.12.1.1-g6-6.js |
---
es5id: 15.12.1.1-g6-6
description: >
The JSON lexical grammer allows 'r' as a JSONEscapeCharacter after
'' in a JSONString
--- |
350 |
- |
| 15.12.1.1-g6-7.js |
---
es5id: 15.12.1.1-g6-7
description: >
The JSON lexical grammer allows 't' as a JSONEscapeCharacter after
'' in a JSONString
--- |
350 |
- |
| 15.12.2-0-1.js |
---
info: |
This test should be run without any built-ins being added/augmented.
The name JSON must be bound to an object.
Section 15 says that every built-in Function object described in this
section � whether as a constructor, an ordinary function, or both � 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 section headings for the function description, including optional
parameters.
This default applies to JSON.parse, and it must exist as a function
taking 2 parameters.
es5id: 15.12.2-0-1
description: JSON.parse must exist as a function
--- |
911 |
- |
| 15.12.2-0-2.js |
---
info: |
This test should be run without any built-ins being added/augmented.
The name JSON must be bound to an object.
Section 15 says that every built-in Function object described in this
section � whether as a constructor, an ordinary function, or both � 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 section headings for the function description, including optional
parameters.
This default applies to JSON.parse, and it must exist as a function
taking 2 parameters.
es5id: 15.12.2-0-2
description: JSON.parse must exist as a function taking 2 parameters
--- |
974 |
- |
| 15.12.2-0-3.js |
---
info: |
This test should be run without any built-ins being added/augmented.
The initial value of [[Configurable]] on JSON is true. This means we
should be able to delete (8.6.2.5) the stringify and parse properties.
es5id: 15.12.2-0-3
description: JSON.parse must be deletable (configurable)
--- |
589 |
- |
| 15.12.2-2-1.js |
---
es5id: 15.12.2-2-1
description: >
JSON.parse - parsing an object where property name is a null
character
--- |
1391 |
- |
| 15.12.2-2-2.js |
---
es5id: 15.12.2-2-2
description: >
JSON.parse - parsing an object where property name starts with a
null character
--- |
1409 |
- |
| 15.12.2-2-3.js |
---
es5id: 15.12.2-2-3
description: >
JSON.parse - parsing an object where property name ends with a
null character
--- |
1406 |
- |
| 15.12.2-2-4.js |
---
es5id: 15.12.2-2-4
description: >
JSON.parse - parsing an object where property name starts and ends
with a null character
--- |
1436 |
- |
| 15.12.2-2-5.js |
---
es5id: 15.12.2-2-5
description: >
JSON.parse - parsing an object where property name middles with a
null character
--- |
1415 |
- |
| 15.12.2-2-6.js |
---
es5id: 15.12.2-2-6
description: >
JSON.parse - parsing an object where property value is a null
character
--- |
1392 |
- |
| 15.12.2-2-7.js |
---
es5id: 15.12.2-2-7
description: >
JSON.parse - parsing an object where property value starts with a
null character
--- |
1410 |
- |
| 15.12.2-2-8.js |
---
es5id: 15.12.2-2-8
description: >
JSON.parse - parsing an object where property value ends with a
null character
--- |
1408 |
- |
| 15.12.2-2-9.js |
---
es5id: 15.12.2-2-9
description: >
JSON.parse - parsing an object where property value starts and
ends with a null character
--- |
1438 |
- |
| 15.12.2-2-10.js |
---
es5id: 15.12.2-2-10
description: >
JSON.parse - parsing an object where property value middles with a
null character
--- |
1417 |
- |
| invalid-whitespace.js |
---
esid: sec-json.parse
es6id: 24.3.1
es5id: 15.12.1.1-0-7
description: >
other category z spaces are not valid JSON whitespace as specified
by the production JSONWhitespace.
--- |
1624 |
- |
| name.js |
---
es6id: 24.3.1
description: >
JSON.parse.name is "parse".
info: |
JSON.parse ( text [ , reviver ] )
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]
--- |
842 |
- |
| revived-proxy-revoked.js |
---
esid: sec-json.parse
es6id: 24.3.1
description: Behavior when revived value is a revoked Proxy exotic object
info: |
[...]
7. If IsCallable(reviver) is true, then
a. Let root be ObjectCreate(%ObjectPrototype%).
b. Let rootName be the empty String.
c. Let status be CreateDataProperty(root, rootName, unfiltered).
d. Assert: status is true.
e. Return ? InternalizeJSONProperty(root, rootName).
24.3.1.1 Runtime Semantics: InternalizeJSONProperty
[...]
2. If Type(val) is Object, then
a. Let isArray be ? IsArray(val).
7.2.2 IsArray
[...]
3. If argument is a Proxy exotic object, then
a. If the value of the [[ProxyHandler]] internal slot of argument is null,
throw a TypeError exception.
b. Let target be the value of the [[ProxyTarget]] internal slot of
argument.
c. Return ? IsArray(target).
features: [Proxy]
--- |
1327 |
- |
| revived-proxy.js |
---
esid: sec-json.parse
es6id: 24.3.1
description: Behavior when revived value is a Proxy exotic object
info: |
[...]
7. If IsCallable(reviver) is true, then
a. Let root be ObjectCreate(%ObjectPrototype%).
b. Let rootName be the empty String.
c. Let status be CreateDataProperty(root, rootName, unfiltered).
d. Assert: status is true.
e. Return ? InternalizeJSONProperty(root, rootName).
24.3.1.1 Runtime Semantics: InternalizeJSONProperty
[...]
2. If Type(val) is Object, then
a. Let isArray be ? IsArray(val).
b. If isArray is true, then
[...]
c. Else,
[...]
7.2.2 IsArray
[...]
3. If argument is a Proxy exotic object, then
a. If the value of the [[ProxyHandler]] internal slot of argument is null,
throw a TypeError exception.
b. Let target be the value of the [[ProxyTarget]] internal slot of
argument.
c. Return ? IsArray(target).
features: [Proxy]
--- |
2100 |
- |
| reviver-array-define-prop-err.js |
---
esid: sec-internalizejsonproperty
es6id: 24.3.1.1
description: Abrupt completion from defining array property while reviving
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
e. Return ? InternalizeJSONProperty(root, rootName).
Runtime Semantics: InternalizeJSONProperty ( holder, name)
1. Let val be ? Get(holder, name).
2. If Type(val) is Object, then
a. Let isArray be ? IsArray(val).
b. If isArray is true, then
i. Set I to 0.
ii. Let len be ? ToLength(? Get(val, "length")).
iii. Repeat while I < len,
1. Let newElement be ? InternalizeJSONProperty(val, !
ToString(I)).
2. If newElement is undefined, then
[...]
3. Else,
a. Perform ? CreateDataProperty(val, ! ToString(I),
newElement).
features: [Proxy]
--- |
1366 |
- |
| reviver-array-delete-err.js |
---
esid: sec-internalizejsonproperty
es6id: 24.3.1.1
description: Abrupt completion from array property deletion while reviving
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
e. Return ? InternalizeJSONProperty(root, rootName).
Runtime Semantics: InternalizeJSONProperty ( holder, name)
1. Let val be ? Get(holder, name).
2. If Type(val) is Object, then
a. Let isArray be ? IsArray(val).
b. If isArray is true, then
i. Set I to 0.
ii. Let len be ? ToLength(? Get(val, "length")).
iii. Repeat while I < len,
1. Let newElement be ? InternalizeJSONProperty(val, !
ToString(I)).
2. If newElement is undefined, then
a. Perform ? val.[[Delete]](! ToString(I)).
features: [Proxy]
--- |
1199 |
- |
| reviver-array-length-coerce-err.js |
---
esid: sec-internalizejsonproperty
es6id: 24.3.1.1
description: >
Abrupt completion from coercing array "length" property to a number value
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
e. Return ? InternalizeJSONProperty(root, rootName).
Runtime Semantics: InternalizeJSONProperty ( holder, name)
1. Let val be ? Get(holder, name).
2. If Type(val) is Object, then
a. Let isArray be ? IsArray(val).
b. If isArray is true, then
i. Set I to 0.
ii. Let len be ? ToLength(? Get(val, "length")).
features: [Proxy]
--- |
1081 |
- |
| reviver-array-length-get-err.js |
---
esid: sec-internalizejsonproperty
es6id: 24.3.1.1
description: >
Abrupt completion from array "length" property access while reviving
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
e. Return ? InternalizeJSONProperty(root, rootName).
Runtime Semantics: InternalizeJSONProperty ( holder, name)
1. Let val be ? Get(holder, name).
2. If Type(val) is Object, then
a. Let isArray be ? IsArray(val).
b. If isArray is true, then
i. Set I to 0.
ii. Let len be ? ToLength(? Get(val, "length")).
features: [Proxy]
--- |
1001 |
- |
| reviver-call-err.js |
---
esid: sec-internalizejsonproperty
es6id: 24.3.1.1
description: >
Abrupt completion when reviver function returns an abrupt completion
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
e. Return ? InternalizeJSONProperty(root, rootName).
Runtime Semantics: InternalizeJSONProperty ( holder, name)
[...]
3. Return ? Call(reviver, holder, « name, val »).
--- |
688 |
- |
| reviver-get-name-err.js |
---
esid: sec-internalizejsonproperty
es6id: 24.3.1.1
description: Abrupt completion from "holder" property access while reviving
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
e. Return ? InternalizeJSONProperty(root, rootName).
Runtime Semantics: InternalizeJSONProperty ( holder, name)
1. Let val be ? Get(holder, name).
--- |
752 |
- |
| reviver-object-define-prop-err.js |
---
esid: sec-internalizejsonproperty
es6id: 24.3.1.1
description: Abrupt completion from defining object property while reviving
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
e. Return ? InternalizeJSONProperty(root, rootName).
Runtime Semantics: InternalizeJSONProperty ( holder, name)
1. Let val be ? Get(holder, name).
2. If Type(val) is Object, then
a. Let isArray be ? IsArray(val).
b. If isArray is true, then
[...]
c. Else,
i. Let keys be ? EnumerableOwnProperties(val, "key").
ii. For each String P in keys do,
1. Let newElement be ? InternalizeJSONProperty(val, P).
2. If newElement is undefined, then
[...]
3. Else,
a. Perform ? CreateDataProperty(val, P, newElement).
features: [Proxy]
--- |
1320 |
- |
| reviver-object-delete-err.js |
---
esid: sec-internalizejsonproperty
es6id: 24.3.1.1
description: Abrupt completion from object property deletion while reviving
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
e. Return ? InternalizeJSONProperty(root, rootName).
Runtime Semantics: InternalizeJSONProperty ( holder, name)
1. Let val be ? Get(holder, name).
2. If Type(val) is Object, then
a. Let isArray be ? IsArray(val).
b. If isArray is true, then
[...]
c. Else,
i. Let keys be ? EnumerableOwnProperties(val, "key").
ii. For each String P in keys do,
1. Let newElement be ? InternalizeJSONProperty(val, P).
2. If newElement is undefined, then
a. Perform ? val.[[Delete]](P).
features: [Proxy]
--- |
1181 |
- |
| reviver-object-own-keys-err.js |
---
esid: sec-internalizejsonproperty
es6id: 24.3.1.1
description: Abrupt completion from object property enumeration while reviving
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
e. Return ? InternalizeJSONProperty(root, rootName).
Runtime Semantics: InternalizeJSONProperty ( holder, name)
1. Let val be ? Get(holder, name).
2. If Type(val) is Object, then
a. Let isArray be ? IsArray(val).
b. If isArray is true, then
[...]
c. Else,
i. Let keys be ? EnumerableOwnProperties(val, "key").
features: [Proxy]
--- |
960 |
- |
| S15.12.2_A1.js |
---
info: JSON.parse must create a property with the given property name
es5id: 15.12.2_A1
description: Tests that JSON.parse treats "__proto__" as a regular property name
--- |
572 |
- |