| 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 |
- |