Name Description Size
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-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-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