Name Description Size Coverage
15.12.3-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.stringify, and it must exist as a function taking 3 parameters. es5id: 15.12.3-0-1 description: JSON.stringify must exist as be a function --- 926 -
15.12.3-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.stringify, and it must exist as a function taking 3 parameters. es5id: 15.12.3-0-2 description: JSON.stringify must exist as be a function taking 3 parameters --- 989 -
15.12.3-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.3-0-3 description: JSON.stringify must be deletable (configurable) --- 597 -
15.12.3-4-1.js --- es5id: 15.12.3-4-1 description: > JSON.stringify ignores replacer aruguments that are not functions or arrays.. --- 348 -
15.12.3-5-a-i-1.js --- es5id: 15.12.3-5-a-i-1 description: > JSON.stringify converts Number wrapper object space aruguments to Number values --- 511 -
15.12.3-5-b-i-1.js --- es5id: 15.12.3-5-b-i-1 description: > JSON.stringify converts String wrapper object space aruguments to String values --- 523 -
15.12.3-6-a-1.js --- es5id: 15.12.3-6-a-1 description: > JSON.stringify treats numeric space arguments greater than 10 the same as a space argument of 10. --- 508 -
15.12.3-6-a-2.js --- es5id: 15.12.3-6-a-2 description: > JSON.stringify truccates non-integer numeric space arguments to their integer part. --- 501 -
15.12.3-6-b-1.js --- es5id: 15.12.3-6-b-1 description: > JSON.stringify treats numeric space arguments less than 1 (0.999999)the same as empty string space argument. --- 531 -
15.12.3-6-b-2.js --- es5id: 15.12.3-6-b-2 description: > JSON.stringify treats numeric space arguments less than 1 (0)the same as empty string space argument. --- 517 -
15.12.3-6-b-3.js --- es5id: 15.12.3-6-b-3 description: > JSON.stringify treats numeric space arguments less than 1 (-5) the same as empty string space argument. --- 520 -
15.12.3-6-b-4.js --- es5id: 15.12.3-6-b-4 description: > JSON.stringify treats numeric space arguments (in the range 1..10) is equivalent to a string of spaces of that length. --- 584 -
15.12.3-7-a-1.js --- es5id: 15.12.3-7-a-1 description: > JSON.stringify only uses the first 10 characters of a string space arguments. --- 534 -
15.12.3-8-a-1.js --- es5id: 15.12.3-8-a-1 description: > JSON.stringify treats an empty string space argument the same as a missing space argument. --- 480 -
15.12.3-8-a-2.js --- es5id: 15.12.3-8-a-2 description: > JSON.stringify treats an Boolean space argument the same as a missing space argument. --- 477 -
15.12.3-8-a-3.js --- es5id: 15.12.3-8-a-3 description: > JSON.stringify treats an null space argument the same as a missing space argument. --- 474 -
15.12.3-8-a-4.js --- es5id: 15.12.3-8-a-4 description: > JSON.stringify treats an Boolean wrapper space argument the same as a missing space argument. --- 498 -
15.12.3-8-a-5.js --- es5id: 15.12.3-8-a-5 description: > JSON.stringify treats non-Number or String object space arguments the same as a missing space argument. --- 494 -
15.12.3-11-1.js --- es5id: 15.12.3-11-1 description: JSON.stringify(undefined) returns undefined --- 311 -
15.12.3-11-2.js --- es5id: 15.12.3-11-2 description: > A JSON.stringify replacer function works is applied to a top level undefined value. --- 451 -
15.12.3-11-3.js --- es5id: 15.12.3-11-3 description: A JSON.stringify correctly works on top level string values. --- 333 -
15.12.3-11-4.js --- es5id: 15.12.3-11-4 description: JSON.stringify correctly works on top level Number values. --- 310 -
15.12.3-11-5.js --- es5id: 15.12.3-11-5 description: JSON.stringify correctly works on top level Boolean values. --- 314 -
15.12.3-11-6.js --- es5id: 15.12.3-11-6 description: JSON.stringify correctly works on top level null values. --- 311 -
15.12.3-11-7.js --- es5id: 15.12.3-11-7 description: JSON.stringify correctly works on top level Number objects. --- 332 -
15.12.3-11-8.js --- es5id: 15.12.3-11-8 description: JSON.stringify correctly works on top level String objects. --- 361 -
15.12.3-11-9.js --- es5id: 15.12.3-11-9 description: JSON.stringify correctly works on top level Boolean objects. --- 344 -
15.12.3-11-10.js --- es5id: 15.12.3-11-10 description: > A JSON.stringify replacer function applied to a top level scalar value can return undefined. --- 433 -
15.12.3-11-11.js --- es5id: 15.12.3-11-11 description: > A JSON.stringify replacer function applied to a top level Object can return undefined. --- 444 -
15.12.3-11-12.js --- es5id: 15.12.3-11-12 description: > A JSON.stringify replacer function applied to a top level scalar can return an Array. --- 440 -
15.12.3-11-13.js --- es5id: 15.12.3-11-13 description: > A JSON.stringify replacer function applied to a top level scalar can return an Object. --- 464 -
15.12.3-11-14.js --- es5id: 15.12.3-11-14 description: Applying JSON.stringify to a function returns undefined. --- 334 -
15.12.3-11-15.js --- es5id: 15.12.3-11-15 description: > Applying JSON.stringify with a replacer function to a function returns the replacer value. --- 431 -
15.12.3-11-16.js --- es5id: 15.12.3-11-16 description: > JSON.stringify - stringifying an object where property name is the union of all null character (The abstract operation Quote(value) step 2.c) --- 1876 -
15.12.3-11-17.js --- es5id: 15.12.3-11-17 description: > JSON.stringify - stringifying an object where property name starts with the union of all null character (The abstract operation Quote(value) step 2.c) --- 1889 -
15.12.3-11-18.js --- es5id: 15.12.3-11-18 description: > JSON.stringify - stringifying an object where property name ends with the union of all null character (The abstract operation Quote(value) step 2.c) --- 1887 -
15.12.3-11-19.js --- es5id: 15.12.3-11-19 description: > JSON.stringify - stringifying an object where property name starts and ends with the union of all null character (The abstract operation Quote(value) step 2.c) --- 2138 -
15.12.3-11-20.js --- es5id: 15.12.3-11-20 description: > JSON.stringify - stringifying an object where property name middles with the union of all null character (The abstract operation Quote(value) step 2.c) --- 1890 -
15.12.3-11-21.js --- es5id: 15.12.3-11-21 description: > JSON.stringify - stringifying an object where property value is the union of all null character (The abstract operation Quote(value) step 2.c) --- 1877 -
15.12.3-11-22.js --- es5id: 15.12.3-11-22 description: > JSON.stringify - stringifying an object where property value starts with the union of all null character (The abstract operation Quote(value) step 2.c) --- 1890 -
15.12.3-11-23.js --- es5id: 15.12.3-11-23 description: > JSON.stringify - stringifying an object where property value ends with the union of all null character (The abstract operation Quote(value) step 2.c) --- 1888 -
15.12.3-11-24.js --- es5id: 15.12.3-11-24 description: > JSON.stringify - stringifying an object where property value starts and ends with the union of all null character (The abstract operation Quote(value) step 2.c) --- 2139 -
15.12.3-11-25.js --- es5id: 15.12.3-11-25 description: > JSON.stringify - stringifying an object where property value middles with the union of all null character (The abstract operation Quote(value) step 2.c) --- 1939 -
15.12.3-11-26.js --- es5id: 15.12.3-11-26 description: > JSON.stringify - the last element of the concatenation is ']' (The abstract operation JA(value) step 10.b.iii) --- 540 -
15.12.3_2-2-b-i-1.js --- es5id: 15.12.3_2-2-b-i-1 description: > JSON.stringify converts string wrapper objects returned from a toJSON call to literal strings. --- 467 -
15.12.3_2-2-b-i-2.js --- es5id: 15.12.3_2-2-b-i-2 description: > JSON.stringify converts Number wrapper objects returned from a toJSON call to literal Number. --- 446 -
15.12.3_2-2-b-i-3.js --- es5id: 15.12.3_2-2-b-i-3 description: > JSON.stringify converts Boolean wrapper objects returned from a toJSON call to literal Boolean values. --- 460 -
15.12.3_2-3-a-1.js --- es5id: 15.12.3_2-3-a-1 description: > JSON.stringify converts string wrapper objects returned from replacer functions to literal strings. --- 499 -
15.12.3_2-3-a-2.js --- es5id: 15.12.3_2-3-a-2 description: > JSON.stringify converts Number wrapper objects returned from replacer functions to literal numbers. --- 475 -
15.12.3_2-3-a-3.js --- es5id: 15.12.3_2-3-a-3 description: > JSON.stringify converts Boolean wrapper objects returned from replacer functions to literal numbers. --- 487 -
15.12.3_4-1-1.js --- es5id: 15.12.3_4-1-1 description: JSON.stringify a circular object throws a error --- 327 -
15.12.3_4-1-2.js --- es5id: 15.12.3_4-1-2 description: JSON.stringify a circular object throws a TypeError --- 331 -
15.12.3_4-1-3.js --- es5id: 15.12.3_4-1-3 description: JSON.stringify a indirectly circular object throws a error --- 368 -
bigint-order.js --- description: BigInt stringify order of steps esid: sec-serializejsonproperty info: | Runtime Semantics: SerializeJSONProperty ( key, holder ) 2. If Type(value) is Object or BigInt, then a. Let toJSON be ? GetGetV(value, "toJSON"). b. If IsCallable(toJSON) is true, then i. Set value to ? Call(toJSON, value, « key »). 3. If ReplacerFunction is not undefined, then a. Set value to ? Call(ReplacerFunction, holder, « key, value »). 4. If Type(value) is Object, then [...] d. Else if value has a [[BigIntData]] internal slot, then i. Set value to value.[[BigIntData]]. [...] 10. If Type(value) is BigInt, throw a TypeError exception features: [BigInt, arrow-function] --- 1303 -
bigint-replacer.js --- description: JSON serialization of BigInt values with replacer esid: sec-serializejsonproperty info: | Runtime Semantics: SerializeJSONProperty ( key, holder ) 3. If ReplacerFunction is not undefined, then a. Set value to ? Call(ReplacerFunction, holder, « key, value »). features: [BigInt] --- 690 -
bigint-tojson.js --- description: BigInt toJSON method esid: sec-serializejsonproperty info: | Runtime Semantics: SerializeJSONProperty ( key, holder ) 2. If Type(value) is Object or BigInt, then a. Let toJSON be ? GetGetV(value, "toJSON"). b. If IsCallable(toJSON) is true, then i. Set value to ? Call(toJSON, value, « key »). features: [BigInt] --- 604 -
bigint.js --- description: JSON serialization of BigInt values esid: pending features: [BigInt] --- 396 -
name.js --- es6id: 24.3.2 description: > JSON.stringify.name is "stringify". info: | JSON.stringify ( value [ , replacer [ , space ] ] ) 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] --- 888 -
replacer-proxy-revoked.js --- esid: sec-json.stringify es6id: 24.3.2 description: Revoked proxy value produces a TypeError info: | [...] 4. If Type(replacer) is Object, then a. If IsCallable(replacer) is true, then i. Let ReplacerFunction be replacer. b. Else, i. Let isArray be ? IsArray(replacer). 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] --- 919 -
replacer-proxy.js --- esid: sec-json.stringify es6id: 24.3.2 description: Proxy of an array is treated as an array info: | [...] 12. Return ? SerializeJSONProperty(the empty String, wrapper). 24.3.2.1 Runtime Semantics: SerializeJSONProperty [...] 10. If Type(value) is Object and IsCallable(value) is false, then a. Let isArray be ? IsArray(value). b. If isArray is true, return ? SerializeJSONArray(value). c. Else, return ? SerializeJSONObject(value). [...] 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] --- 1416 -
value-proxy-revoked.js --- esid: sec-json.stringify es6id: 24.3.2 description: Revoked proxy value produces a TypeError info: | [...] 12. Return ? SerializeJSONProperty(the empty String, wrapper). 24.3.2.1 Runtime Semantics: SerializeJSONProperty [...] 10. If Type(value) is Object and IsCallable(value) is false, then a. Let isArray be ? IsArray(value). b. If isArray is true, return ? SerializeJSONArray(value). c. Else, return ? SerializeJSONObject(value). [...] 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] --- 1202 -
value-proxy.js --- esid: sec-object.prototype.tostring es6id: 19.1.3.6 description: Proxy of an array is treated as an array info: | [...] 3. Let O be ToObject(this value). 4. Let isArray be ? IsArray(O). 5. If isArray is true, let builtinTag be "Array". [...] 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] --- 1162 -