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
--- |
411 |
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.
--- |
402 |
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.
--- |
402 |
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.
--- |
404 |
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.
--- |
405 |
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.
--- |
404 |
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.
--- |
422 |
15.12.1.1-0-9.js |
---
es5id: 15.12.1.1-0-9
description: Whitespace characters can appear before/after any JSONtoken
--- |
499 |
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
--- |
489 |
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
--- |
486 |
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
--- |
486 |
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
--- |
484 |
15.12.1.1-g2-1.js |
---
es5id: 15.12.1.1-g2-1
description: JSONStrings can be written using double quotes
--- |
324 |
15.12.1.1-g2-2.js |
---
es5id: 15.12.1.1-g2-2
description: A JSONString may not be delimited by single quotes
--- |
324 |
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
--- |
344 |
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
--- |
332 |
15.12.1.1-g2-5.js |
---
es5id: 15.12.1.1-g2-5
description: >
A JSONStrings can contain no JSONStringCharacters (Empty
JSONStrings)
--- |
348 |
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
--- |
506 |
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
--- |
506 |
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
--- |
506 |
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
--- |
506 |
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
--- |
366 |
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
--- |
369 |
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
--- |
368 |
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
--- |
371 |
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
--- |
373 |
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
--- |
372 |
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
--- |
372 |
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
--- |
372 |
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
--- |
372 |
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
--- |
372 |
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
--- |
1413 |
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
--- |
1431 |
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
--- |
1428 |
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
--- |
1458 |
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
--- |
1437 |
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
--- |
1414 |
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
--- |
1432 |
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
--- |
1430 |
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
--- |
1460 |
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
--- |
1439 |
browser.js |
|
0 |
builtin.js |
---
esid: sec-json.parse
description: >
Requirements for built-in functions, defined in introduction of chapter 17,
are satisfied.
features: [Reflect.construct]
--- |
970 |
duplicate-proto.js |
---
esid: sec-object-initializer-static-semantics-early-errors
description: >
It is a Syntax Error if PropertyNameList of PropertyDefinitionList contains
any duplicate entries for "__proto__" and at least two of those entries were
obtained from productions of the form
PropertyDefinition : PropertyName `:` AssignmentExpression .
This rule is not applied if this PropertyDefinition is contained within a
Script which is being evaluated for JSON.parse (see step 4 of JSON.parse).
--- |
751 |
invalid-whitespace.js |
---
esid: sec-json.parse
es5id: 15.12.1.1-0-7
description: >
other category z spaces are not valid JSON whitespace as specified
by the production JSONWhitespace.
--- |
1632 |
length.js |
---
esid: sec-json.parse
description: >
JSON.parse.length is 2.
info: |
JSON.parse ( text [ , reviver ] )
The "length" property of the parse function is 2.
ECMAScript Standard Built-in Objects
Unless otherwise specified, the length property of a built-in Function
object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
[[Configurable]]: true }.
includes: [propertyHelper.js]
--- |
691 |
name.js |
---
esid: sec-json.parse
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]
--- |
827 |
not-a-constructor.js |
---
esid: sec-ecmascript-standard-built-in-objects
description: >
JSON.parse 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: [Reflect.construct, arrow-function]
--- |
866 |
prop-desc.js |
---
esid: sec-json.parse
description: >
Property descriptor of JSON.parse.
info: |
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]
--- |
618 |
revived-proxy-revoked.js |
---
esid: sec-json.parse
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]
--- |
1335 |
revived-proxy.js |
---
esid: sec-json.parse
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]
--- |
2108 |
reviver-array-define-prop-err.js |
---
esid: sec-internalizejsonproperty
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]
--- |
1372 |
reviver-array-delete-err.js |
---
esid: sec-internalizejsonproperty
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]
--- |
1205 |
reviver-array-get-prop-from-prototype.js |
---
esid: sec-internalizejsonproperty
description: >
`name` property is obtained with [[Get]] from prototype chain.
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
d. Return ? InternalizeJSONProperty(root, rootName).
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
[...]
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).
--- |
1198 |
reviver-array-length-coerce-err.js |
---
esid: sec-internalizejsonproperty
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]
--- |
1087 |
reviver-array-length-get-err.js |
---
esid: sec-internalizejsonproperty
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]
--- |
1007 |
reviver-array-non-configurable-prop-create.js |
---
esid: sec-internalizejsonproperty
description: >
[[DefineOwnProperty]] validates property descriptor before applying.
If [[DefineOwnProperty]] is unsuccessful, no exception is thrown.
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
d. Return ? InternalizeJSONProperty(root, rootName).
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
[...]
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).
CreateDataProperty ( O, P, V )
[...]
4. Return ? O.[[DefineOwnProperty]](P, newDesc).
--- |
1336 |
reviver-array-non-configurable-prop-delete.js |
---
esid: sec-internalizejsonproperty
description: >
[[Delete]] does not remove non-configurable properties.
If [[Delete]] is unsuccessful, no exception is thrown.
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
d. Return ? InternalizeJSONProperty(root, rootName).
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
[...]
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)).
OrdinaryDelete ( O, P )
[...]
4. If desc.[[Configurable]] is true, then
a. Remove the own property with name P from O.
--- |
1325 |
reviver-call-args-after-forward-modification.js |
---
esid: sec-json.parse
description: >
JSON.parse reviver is called with the correct arguments when the object is
modified
includes: [compareArray.js]
features: [json-parse-with-source]
--- |
1593 |
reviver-call-err.js |
---
esid: sec-internalizejsonproperty
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 »).
--- |
694 |
reviver-call-order.js |
---
esid: sec-internalizejsonproperty
description: JSON.parse reviver call order
features: [for-in-order]
includes: [compareArray.js]
--- |
542 |
reviver-context-source-array-literal.js |
---
esid: sec-json.parse
description: >
Context argument and its source property behave as expected when parsing an
ArrayLiteral JSON string
includes: [compareArray.js, propertyHelper.js]
features: [json-parse-with-source]
--- |
2611 |
reviver-context-source-object-literal.js |
---
esid: sec-json.parse
description: >
Context argument and its source property behave as expected when parsing an
ObjectLiteral JSON string
includes: [compareArray.js, propertyHelper.js]
features: [json-parse-with-source]
--- |
3401 |
reviver-context-source-primitive-literal.js |
---
esid: sec-json.parse
description: >
Context argument and its source property behave as expected when parsing a
NumericLiteral, NullLiteral, BoolLiteral, or StringLiteral JSON string
includes: [compareArray.js, propertyHelper.js]
features: [json-parse-with-source]
--- |
3092 |
reviver-forward-modifies-object.js |
---
esid: sec-json.parse
description: Codepaths involving InternaliseJSONProperty behave as expected
includes: [compareArray.js]
features: [json-parse-with-source]
--- |
4714 |
reviver-get-name-err.js |
---
esid: sec-internalizejsonproperty
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).
--- |
758 |
reviver-object-define-prop-err.js |
---
esid: sec-internalizejsonproperty
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]
--- |
1326 |
reviver-object-delete-err.js |
---
esid: sec-internalizejsonproperty
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]
--- |
1187 |
reviver-object-get-prop-from-prototype.js |
---
esid: sec-internalizejsonproperty
description: >
`name` property is obtained with [[Get]] from prototype chain.
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
d. Return ? InternalizeJSONProperty(root, rootName).
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 ? EnumerableOwnPropertyNames(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).
--- |
1263 |
reviver-object-non-configurable-prop-create.js |
---
esid: sec-internalizejsonproperty
description: >
[[DefineOwnProperty]] validates property descriptor before applying.
If [[DefineOwnProperty]] is unsuccessful, no exception is thrown.
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
d. Return ? InternalizeJSONProperty(root, rootName).
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 ? EnumerableOwnPropertyNames(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).
CreateDataProperty ( O, P, V )
[...]
4. Return ? O.[[DefineOwnProperty]](P, newDesc).
--- |
1402 |
reviver-object-non-configurable-prop-delete.js |
---
esid: sec-internalizejsonproperty
description: >
[[Delete]] does not remove non-configurable properties.
If [[Delete]] is unsuccessful, no exception is thrown.
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
[...]
d. Return ? InternalizeJSONProperty(root, rootName).
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 ? EnumerableOwnPropertyNames(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).
OrdinaryDelete ( O, P )
[...]
4. If desc.[[Configurable]] is true, then
a. Remove the own property with name P from O.
--- |
1391 |
reviver-object-own-keys-err.js |
---
esid: sec-internalizejsonproperty
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]
--- |
966 |
reviver-wrapper.js |
---
esid: sec-json.parse
description: >
Wrapper is plain extensible object with single data property.
info: |
JSON.parse ( text [ , reviver ] )
[...]
7. If IsCallable(reviver) is true, then
a. Let root be ObjectCreate(%Object.prototype%).
b. Let rootName be the empty String.
c. Perform ! CreateDataPropertyOrThrow(root, rootName, unfiltered).
includes: [propertyHelper.js]
--- |
1080 |
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
--- |
617 |
shell.js |
---
description: |
Test if a given function is a constructor function.
defines: [isConstructor]
features: [Reflect.construct]
--- |
596 |
text-negative-zero.js |
---
esid: sec-json.parse
description: >
Top-level negative zero surrounded by whitespace is parsed correctly.
info: |
JSON.parse ( text [ , reviver ] )
1. Let JText be ? ToString(text).
2. Parse JText interpreted as UTF-16 encoded Unicode points (6.1.4) as a JSON
text as specified in ECMA-404. Throw a SyntaxError exception if JText is not
a valid JSON text as defined in that specification.
--- |
782 |
text-non-string-primitive.js |
---
esid: sec-json.parse
description: >
Primitive values are coerced to strings and parsed.
info: |
JSON.parse ( text [ , reviver ] )
1. Let JText be ? ToString(text).
2. Parse JText interpreted as UTF-16 encoded Unicode points (6.1.4) as a JSON
text as specified in ECMA-404. Throw a SyntaxError exception if JText is not
a valid JSON text as defined in that specification.
features: [Symbol]
--- |
993 |
text-object-abrupt.js |
---
esid: sec-json.parse
description: >
Abrupt completion from Get and Call in ToPrimitive.
info: |
JSON.parse ( text [ , reviver ] )
1. Let JText be ? ToString(text).
--- |
614 |
text-object.js |
---
esid: sec-json.parse
description: >
Objects are coerced to strings using ToString.
info: |
JSON.parse ( text [ , reviver ] )
1. Let JText be ? ToString(text).
2. Parse JText interpreted as UTF-16 encoded Unicode points (6.1.4) as a JSON
text as specified in ECMA-404. Throw a SyntaxError exception if JText is not
a valid JSON text as defined in that specification.
--- |
723 |