@@ -1560,25 +1560,6 @@ is passed in it returns `napi_number_expected`.
15601560This API returns the C int64 primitive equivalent of the given
15611561JavaScript Number
15621562
1563- #### *napi_get_value_string_length*
1564- <!-- YAML
1565- added: v8.0.0
1566- -->
1567- ```C
1568- napi_status napi_get_value_string_length(napi_env env,
1569- napi_value value,
1570- int* result)
1571- ```
1572-
1573- - ` [in] env ` : The environment that the API is invoked under.
1574- - ` [in] value ` : ` napi_value ` representing JavaScript string.
1575- - ` [out] result ` : Number of characters in the given JavaScript string.
1576-
1577- Returns ` napi_ok ` if the API succeeded. If a non-String ` napi_value `
1578- is passed in it returns ` napi_string_expected ` .
1579-
1580- This API returns the number of characters in the given JavaScript string.
1581-
15821563#### *napi_get_value_string_utf8*
15831564<!-- YAML
15841565added: v8.0.0
@@ -2100,39 +2081,42 @@ if (status != napi_ok) return status;
21002081``` C
21012082typedef enum {
21022083 napi_default = 0,
2103- napi_read_only = 1 << 0,
2104- napi_dont_enum = 1 << 1,
2105- napi_dont_delete = 1 << 2,
2106- napi_static_property = 1 << 10,
2084+ napi_writable = 1 << 0,
2085+ napi_enumerable = 1 << 1,
2086+ napi_configurable = 1 << 2,
2087+
2088+ // Used with napi_define_class to distinguish static properties
2089+ // from instance properties. Ignored by napi_define_properties.
2090+ napi_static = 1 << 10,
21072091} napi_property_attributes;
21082092```
21092093
21102094` napi_property_attributes ` are flags used to control the behavior of properties
2111- set on a JavaScript object. They roughly correspond to the attributes listed in
2112- [ Section 6.1.7.1] ( https://tc39.github.io/ecma262/#table-2 ) of the
2113- [ ECMAScript Language Specification] ( https://tc39.github.io/ecma262/ ) . They can
2114- be one or more of the following bitflags:
2095+ set on a JavaScript object. Other than ` napi_static ` they correspond to the
2096+ attributes listed in [ Section 6.1.7.1] ( https://tc39.github.io/ecma262/#table-2 )
2097+ of the [ ECMAScript Language Specification] ( https://tc39.github.io/ecma262/ ) .
2098+ They can be one or more of the following bitflags:
21152099
21162100- ` napi_default ` - Used to indicate that no explicit attributes are set on the
2117- given property. By default, a property is Writable, Enumerable, and
2118- Configurable. This is a deviation from the ECMAScript specification,
2119- where generally the values for a property descriptor attribute default to
2120- false if they're not provided.
2121- - ` napi_read_only ` - Used to indicate that a given property is not Writable.
2122- - ` napi_dont_enum ` - Used to indicate that a given property is not Enumerable.
2123- - ` napi_dont_delete ` - Used to indicate that a given property is not.
2124- Configurable, as defined in
2101+ given property. By default, a property is read only, not enumerable and not
2102+ configurable.
2103+ - ` napi_writable ` - Used to indicate that a given property is writable.
2104+ - ` napi_enumerable ` - Used to indicate that a given property is enumerable.
2105+ - ` napi_configurable ` - Used to indicate that a given property is
2106+ configurable, as defined in
21252107[ Section 6.1.7.1] ( https://tc39.github.io/ecma262/#table-2 ) of the
21262108[ ECMAScript Language Specification] ( https://tc39.github.io/ecma262/ ) .
2127- - ` napi_static_property ` - Used to indicate that the property will be defined as
2109+ - ` napi_static ` - Used to indicate that the property will be defined as
21282110a static property on a class as opposed to an instance property, which is the
21292111default. This is used only by [ ` napi_define_class ` ] [ ] . It is ignored by
21302112` napi_define_properties ` .
21312113
21322114#### * napi_property_descriptor*
21332115``` C
21342116typedef struct {
2117+ // One of utf8name or name should be NULL.
21352118 const char* utf8name;
2119+ napi_value name;
21362120
21372121 napi_callback method;
21382122 napi_callback getter;
@@ -2144,7 +2128,12 @@ typedef struct {
21442128} napi_property_descriptor;
21452129```
21462130
2147- - ` utf8name ` : String describing the key for the property, encoded as UTF8.
2131+ - ` utf8name ` : Optional String describing the key for the property,
2132+ encoded as UTF8. One of ` utf8name ` or ` name ` must be provided for the
2133+ property.
2134+ - ` name ` : Optional napi_value that points to a JavaScript string or symbol
2135+ to be used as the key for the property. One of ` utf8name ` or ` name ` must
2136+ be provided for the property.
21482137- ` value ` : The value that's retrieved by a get access of the property if the
21492138 property is a data property. If this is passed in, set ` getter ` , ` setter ` ,
21502139 ` method ` and ` data ` to ` NULL ` (since these members won't be used).
0 commit comments