From 51d86807fef876b5af69d95bd5b6266ca5d0aca6 Mon Sep 17 00:00:00 2001 From: "Ioanna M. Dimitriou H" Date: Mon, 14 Oct 2024 21:39:39 +0200 Subject: [PATCH] Address review comments --- test/built-ins/JSON/isRawJSON/length.js | 16 ++++++------ test/built-ins/JSON/isRawJSON/name.js | 33 ++++++++++++++++--------- test/built-ins/JSON/rawJSON/length.js | 15 ++++++----- test/built-ins/JSON/rawJSON/name.js | 33 ++++++++++++++++--------- 4 files changed, 62 insertions(+), 35 deletions(-) diff --git a/test/built-ins/JSON/isRawJSON/length.js b/test/built-ins/JSON/isRawJSON/length.js index 28487bc406..170653a910 100644 --- a/test/built-ins/JSON/isRawJSON/length.js +++ b/test/built-ins/JSON/isRawJSON/length.js @@ -2,17 +2,19 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-json.rawjson +esid: sec-built-in-function-objects description: > JSON.isRawJSON.length value and descriptor. info: | - JSON.isRawJSON ( text ) - - 18 ECMAScript Standard Built-in Objects - Every other data property described in clauses 19 through 28 and in Annex B.2 - has the attributes { [[Writable]]: true, [[Enumerable]]: false, - [[Configurable]]: true } unless otherwise specified. + Every built-in function object, including constructors, has a *"length"* + property whose value is a non-negative integral Number. Unless otherwise + specified, this value is the number of required parameters shown in the + subclause heading for the function description. Optional parameters and rest + parameters are not included in the parameter count. + Unless otherwise specified, the *"length"* property of a built-in function + object has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, + [[Configurable]]: *true* }. includes: [propertyHelper.js] features: [json-parse-with-source] ---*/ diff --git a/test/built-ins/JSON/isRawJSON/name.js b/test/built-ins/JSON/isRawJSON/name.js index ffc706739b..08168bf94e 100644 --- a/test/built-ins/JSON/isRawJSON/name.js +++ b/test/built-ins/JSON/isRawJSON/name.js @@ -2,27 +2,38 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-json.israwjson +esid: sec-built-in-function-objects description: > JSON.isRawJSON.name value and descriptor. info: | - JSON.isRawJSON ( text ) + Every built-in function object, including constructors, has a *"name"* + property whose value is a String. Unless otherwise specified, this value is + the name that is given to the function in this specification. Functions that + are identified as anonymous functions use the empty String as the value of + the *"name"* property. For functions that are specified as properties of + objects, the name value is the property name string used to access the + function. Functions that are specified as get or set accessor functions of + built-in properties have *"get"* or *"set"* (respectively) passed to the + prefix parameter when calling CreateBuiltinFunction. - 18 ECMAScript Standard Built-in Objects - Every other data property described in clauses 19 through 28 and in Annex B.2 - has the attributes { [[Writable]]: true, [[Enumerable]]: false, - [[Configurable]]: true } unless otherwise specified. + The value of the *"name"* property is explicitly specified for each built-in + function whose property key is a Symbol value. If such an explicitly + specified value starts with the prefix *"get "* or *"set "* and the function + for which it is specified is a get or set accessor function of a built-in + property, the value without the prefix is passed to the name parameter, and + the value *"get"* or *"set"* (respectively) is passed to the prefix + parameter when calling CreateBuiltinFunction. + + Unless otherwise specified, the *"name"* property of a built-in function + object has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, + [[Configurable]]: *true* }. includes: [propertyHelper.js] features: [json-parse-with-source] ---*/ -assert.sameValue( - JSON.isRawJSON.name, 'isRawJSON', - 'The value of JSON.isRawJSON.name is "isRawJSON"' -); - verifyProperty(JSON.isRawJSON, 'name', { + value: "isRawJSON", enumerable: false, writable: false, configurable: true diff --git a/test/built-ins/JSON/rawJSON/length.js b/test/built-ins/JSON/rawJSON/length.js index 76ecdecec6..73afda194c 100644 --- a/test/built-ins/JSON/rawJSON/length.js +++ b/test/built-ins/JSON/rawJSON/length.js @@ -2,16 +2,19 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-json.rawjson +esid: sec-built-in-function-objects description: > JSON.rawJSON.length value and descriptor. info: | - JSON.rawJSON ( text ) + Every built-in function object, including constructors, has a *"length"* + property whose value is a non-negative integral Number. Unless otherwise + specified, this value is the number of required parameters shown in the + subclause heading for the function description. Optional parameters and rest + parameters are not included in the parameter count. - 18 ECMAScript Standard Built-in Objects - Every other data property described in clauses 19 through 28 and in Annex B.2 - has the attributes { [[Writable]]: true, [[Enumerable]]: false, - [[Configurable]]: true } unless otherwise specified. + Unless otherwise specified, the *"length"* property of a built-in function + object has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, + [[Configurable]]: *true* }. includes: [propertyHelper.js] features: [json-parse-with-source] diff --git a/test/built-ins/JSON/rawJSON/name.js b/test/built-ins/JSON/rawJSON/name.js index 969cbb350f..ae864d86fc 100644 --- a/test/built-ins/JSON/rawJSON/name.js +++ b/test/built-ins/JSON/rawJSON/name.js @@ -2,27 +2,38 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -esid: sec-json.rawjson +esid: sec-built-in-function-objects description: > JSON.rawJSON.name value and descriptor. info: | - JSON.rawJSON ( text ) + Every built-in function object, including constructors, has a *"name"* + property whose value is a String. Unless otherwise specified, this value is + the name that is given to the function in this specification. Functions that + are identified as anonymous functions use the empty String as the value of + the *"name"* property. For functions that are specified as properties of + objects, the name value is the property name string used to access the + function. Functions that are specified as get or set accessor functions of + built-in properties have *"get"* or *"set"* (respectively) passed to the + prefix parameter when calling CreateBuiltinFunction. - 18 ECMAScript Standard Built-in Objects - Every other data property described in clauses 19 through 28 and in Annex B.2 - has the attributes { [[Writable]]: true, [[Enumerable]]: false, - [[Configurable]]: true } unless otherwise specified. + The value of the *"name"* property is explicitly specified for each built-in + function whose property key is a Symbol value. If such an explicitly + specified value starts with the prefix *"get "* or *"set "* and the function + for which it is specified is a get or set accessor function of a built-in + property, the value without the prefix is passed to the name parameter, and + the value *"get"* or *"set"* (respectively) is passed to the prefix + parameter when calling CreateBuiltinFunction. + + Unless otherwise specified, the *"name"* property of a built-in function + object has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, + [[Configurable]]: *true* }. includes: [propertyHelper.js] features: [json-parse-with-source] ---*/ -assert.sameValue( - JSON.rawJSON.name, 'rawJSON', - 'The value of JSON.rawJSON.name is "rawJSON"' -); - verifyProperty(JSON.rawJSON, 'name', { + value: "rawJSON", enumerable: false, writable: false, configurable: true