static const njs_object_prop_t njs_array_constructor_properties[] =
{
- /* Array.name == "Array". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* Array.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* Array.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
.value = njs_prop_handler(njs_object_prototype_create),
},
- /* Array.isArray(). */
{
.type = NJS_PROPERTY,
.name = njs_string("isArray"),
.configurable = 1,
},
- /* ES6. */
- /* Array.of(). */
{
.type = NJS_PROPERTY,
.name = njs_string("of"),
.configurable = 1,
},
- /* ES7. */
{
.type = NJS_PROPERTY,
.name = njs_string("includes"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("fill"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("find"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("findIndex"),
static const njs_object_prop_t njs_array_buffer_constructor_properties[] =
{
- /* ArrayBuffer.name == "ArrayBuffer". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* ArrayBuffer.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* ArrayBuffer.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
.value = njs_prop_handler(njs_object_prototype_create),
},
- /* ArrayBuffer[Symbol.species] */
{
.type = NJS_PROPERTY,
.name = njs_wellknown_symbol(NJS_SYMBOL_SPECIES),
.enumerable = 0,
},
- /* ArrayBuffer.isView(new Uint8Array()) === true */
{
.type = NJS_PROPERTY,
.name = njs_string("isView"),
static const njs_object_prop_t njs_boolean_constructor_properties[] =
{
- /* Boolean.name == "Boolean". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* Boolean.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* Boolean.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_date_constructor_properties[] =
{
- /* Date.name == "Date". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* Date.length == 7. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* Date.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
dividend = significand;
- /*
- * Let v = f * 2^e with f == significand and e == exponent.
- * Then need q (quotient) and r (remainder) as follows:
- * f * 2^e = q * 5^17 * 2^17 + r
- * If e > 17 then
- * f * 2^(e-17) = q * 5^17 + r/2^17
- * else
- * f = q * 5^17 * 2^(17-e) + r/2^e
- */
-
if (exponent > 17) {
/* (e - 17) <= 3. */
dividend <<= exponent - 17;
static const njs_object_prop_t njs_error_constructor_properties[] =
{
- /* Error.name == "Error". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* Error.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* Error.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_eval_error_constructor_properties[] =
{
- /* EvalError.name == "EvalError". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* EvalError.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* EvalError.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_internal_error_constructor_properties[] =
{
- /* InternalError.name == "InternalError". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* InternalError.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* InternalError.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_range_error_constructor_properties[] =
{
- /* RangeError.name == "RangeError". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* RangeError.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* RangeError.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_reference_error_constructor_properties[] =
{
- /* ReferenceError.name == "ReferenceError". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* ReferenceError.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* ReferenceError.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_syntax_error_constructor_properties[] =
{
- /* SyntaxError.name == "SyntaxError". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* SyntaxError.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* SyntaxError.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_type_error_constructor_properties[] =
{
- /* TypeError.name == "TypeError". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* TypeError.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* TypeError.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_uri_error_constructor_properties[] =
{
- /* URIError.name == "URIError". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* URIError.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* URIError.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_memory_error_constructor_properties[] =
{
- /* MemoryError.name == "MemoryError". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* MemoryError.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* MemoryError.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
}
-/*
- * ES5.1, 10.6: CreateArgumentsObject.
- */
njs_int_t
njs_function_arguments_object_init(njs_vm_t *vm, njs_native_frame_t *frame)
{
static const njs_object_prop_t njs_function_constructor_properties[] =
{
- /* Function.name == "Function". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* Function.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* Function.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
};
-/*
- * ES5.1, 15.3.5.1 length
- * the typical number of arguments expected by the function.
- */
static njs_int_t
njs_function_instance_length(njs_vm_t *vm, njs_object_prop_t *prop,
njs_value_t *value, njs_value_t *setval, njs_value_t *retval)
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("acosh"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("asinh"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("atanh"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("cbrt"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("clz32"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("cosh"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("expm1"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("fround"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("hypot"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("imul"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("log10"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("log1p"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("log2"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("sign"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("sinh"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("tanh"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("trunc"),
static const njs_object_prop_t njs_number_constructor_properties[] =
{
- /* Number.name == "Number". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* Number.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* Number.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
.value = njs_prop_handler(njs_object_prototype_create),
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("EPSILON"),
.value = njs_value(NJS_NUMBER, 1, DBL_EPSILON),
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_long_string("MAX_SAFE_INTEGER"),
.value = njs_value(NJS_NUMBER, 1, NJS_MAX_SAFE_INTEGER),
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_long_string("MIN_SAFE_INTEGER"),
.value = njs_value(NJS_NUMBER, 1, -INFINITY),
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("isFinite"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("isInteger"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("isSafeInteger"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("isNaN"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("parseFloat"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("parseInt"),
static const njs_object_prop_t njs_object_constructor_properties[] =
{
- /* Object.name == "Object". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* Object.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* Object.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
.value = njs_prop_handler(njs_object_prototype_create),
},
- /* Object.create(). */
{
.type = NJS_PROPERTY,
.name = njs_string("create"),
.configurable = 1,
},
- /* Object.keys(). */
{
.type = NJS_PROPERTY,
.name = njs_string("keys"),
.configurable = 1,
},
- /* ES8: Object.values(). */
{
.type = NJS_PROPERTY,
.name = njs_string("values"),
.configurable = 1,
},
- /* ES8: Object.entries(). */
{
.type = NJS_PROPERTY,
.name = njs_string("entries"),
.configurable = 1,
},
- /* Object.defineProperty(). */
{
.type = NJS_PROPERTY,
.name = njs_string("defineProperty"),
.configurable = 1,
},
- /* Object.defineProperties(). */
{
.type = NJS_PROPERTY,
.name = njs_long_string("defineProperties"),
.configurable = 1,
},
- /* Object.getOwnPropertyDescriptor(). */
{
.type = NJS_PROPERTY,
.name = njs_long_string("getOwnPropertyDescriptor"),
.configurable = 1,
},
- /* Object.getOwnPropertyDescriptors(). */
{
.type = NJS_PROPERTY,
.name = njs_long_string("getOwnPropertyDescriptors"),
.configurable = 1,
},
- /* Object.getOwnPropertyNames(). */
{
.type = NJS_PROPERTY,
.name = njs_long_string("getOwnPropertyNames"),
.configurable = 1,
},
- /* Object.getOwnPropertySymbols(). */
{
.type = NJS_PROPERTY,
.name = njs_long_string("getOwnPropertySymbols"),
.configurable = 1,
},
- /* Object.getPrototypeOf(). */
{
.type = NJS_PROPERTY,
.name = njs_string("getPrototypeOf"),
.configurable = 1,
},
- /* Object.setPrototypeOf(). */
{
.type = NJS_PROPERTY,
.name = njs_string("setPrototypeOf"),
.configurable = 1,
},
- /* Object.freeze(). */
{
.type = NJS_PROPERTY,
.name = njs_string("freeze"),
.configurable = 1,
},
- /* Object.isFrozen(). */
{
.type = NJS_PROPERTY,
.name = njs_string("isFrozen"),
.configurable = 1,
},
- /* Object.seal(). */
{
.type = NJS_PROPERTY,
.name = njs_string("seal"),
.configurable = 1,
},
- /* Object.isSealed(). */
{
.type = NJS_PROPERTY,
.name = njs_string("isSealed"),
.configurable = 1,
},
- /* Object.preventExtensions(). */
{
.type = NJS_PROPERTY,
.name = njs_long_string("preventExtensions"),
.configurable = 1,
},
- /* Object.isExtensible(). */
{
.type = NJS_PROPERTY,
.name = njs_string("isExtensible"),
.configurable = 1,
},
- /* Object.assign(). */
{
.type = NJS_PROPERTY,
.name = njs_string("assign"),
.configurable = 1,
},
- /* Object.is(). */
{
.type = NJS_PROPERTY,
.name = njs_string("is"),
};
-/*
- * ES6, 9.1.2: [[SetPrototypeOf]].
- */
static njs_int_t
njs_object_set_prototype(njs_vm_t *vm, njs_object_t *object,
const njs_value_t *value)
static const njs_object_prop_t njs_regexp_constructor_properties[] =
{
- /* RegExp.name == "RegExp". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* RegExp.length == 2. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* RegExp.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
static const njs_object_prop_t njs_string_constructor_properties[] =
{
- /* String.name == "String". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* String.length == 1. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* String.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
.value = njs_prop_handler(njs_object_prototype_create),
},
- /* String.bytesFrom(). */
{
.type = NJS_PROPERTY,
.name = njs_string("bytesFrom"),
.configurable = 1,
},
- /* String.fromCharCode(). */
{
.type = NJS_PROPERTY,
.name = njs_string("fromCharCode"),
.configurable = 1,
},
- /* String.fromCodePoint(), ECMAScript 6. */
{
.type = NJS_PROPERTY,
.name = njs_string("fromCodePoint"),
}
-/*
- * String.concat(string2[, ..., stringN]).
- * JavaScript 1.2, ECMAScript 3.
- */
-
njs_int_t
njs_string_prototype_concat(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t unused)
}
-/*
- * String.slice(start[, end]).
- * JavaScript 1.2, ECMAScript 3.
- */
-
static njs_int_t
njs_string_prototype_slice(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t unused)
}
-/*
- * String.substring(start[, end]).
- * JavaScript 1.0, ECMAScript 1.
- */
-
static njs_int_t
njs_string_prototype_substring(njs_vm_t *vm, njs_value_t *args,
njs_uint_t nargs, njs_index_t unused)
}
-/*
- * String.substr(start[, length]).
- * JavaScript 1.0, ECMAScript 3.
- */
-
static njs_int_t
njs_string_prototype_substr(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t unused)
/*
- * String.toLowerCase().
* The method supports only simple folding. For example, Turkish "İ"
* folding "\u0130" to "\u0069\u0307" is not supported.
*/
/*
- * String.toUpperCase().
* The method supports only simple folding. For example, German "ß"
* folding "\u00DF" to "\u0053\u0053" is not supported.
*/
}
-/*
- * String.search([regexp])
- */
-
static njs_int_t
njs_string_prototype_search(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t unused)
}
-/*
- * String.match([regexp])
- */
-
static njs_int_t
njs_string_prototype_match(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t unused)
}
-/*
- * String.prototype.split([string|regexp[, limit]])
- */
-
static njs_int_t
njs_string_prototype_split(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t unused)
}
-/*
- * String.replace([regexp|string[, string|function]])
- */
-
static njs_int_t
njs_string_prototype_replace(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t unused)
.configurable = 1,
},
- /* String.codePointAt(), ECMAScript 6. */
{
.type = NJS_PROPERTY,
.name = njs_string("codePointAt"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("includes"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("startsWith"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("endsWith"),
.configurable = 1,
},
- /* ES10. */
{
.type = NJS_PROPERTY,
.name = njs_string("trimStart"),
.configurable = 1,
},
- /* ES10. */
{
.type = NJS_PROPERTY,
.name = njs_string("trimEnd"),
.configurable = 1,
},
- /* ES6. */
{
.type = NJS_PROPERTY,
.name = njs_string("repeat"),
.configurable = 1,
},
- /* ES8. */
{
.type = NJS_PROPERTY,
.name = njs_string("padStart"),
.configurable = 1,
},
- /* ES8. */
{
.type = NJS_PROPERTY,
.name = njs_string("padEnd"),
};
-/*
- * encodeURI(string)
- */
-
njs_int_t
njs_string_encode_uri(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t unused)
}
-/*
- * encodeURIComponent(string)
- */
-
njs_int_t
njs_string_encode_uri_component(njs_vm_t *vm, njs_value_t *args,
njs_uint_t nargs, njs_index_t unused)
}
-/*
- * decodeURI(string)
- */
-
njs_int_t
njs_string_decode_uri(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
njs_index_t unused)
}
-/*
- * decodeURIComponent(string)
- */
-
njs_int_t
njs_string_decode_uri_component(njs_vm_t *vm, njs_value_t *args,
njs_uint_t nargs, njs_index_t unused)
static const njs_object_prop_t njs_symbol_constructor_properties[] =
{
- /* Symbol.name == "Symbol". */
{
.type = NJS_PROPERTY,
.name = njs_string("name"),
.configurable = 1,
},
- /* Symbol.length == 0. */
{
.type = NJS_PROPERTY,
.name = njs_string("length"),
.configurable = 1,
},
- /* Symbol.prototype. */
{
.type = NJS_PROPERTY_HANDLER,
.name = njs_string("prototype"),
.value = njs_prop_handler(njs_object_prototype_create),
},
- /* Symbol.for(). */
{
.type = NJS_PROPERTY,
.name = njs_string("for"),
.configurable = 1,
},
- /* Symbol.keyFor(). */
{
.type = NJS_PROPERTY,
.name = njs_string("keyFor"),
.configurable = 1,
},
- /* Symbol.asyncIterator. */
{
.type = NJS_PROPERTY,
.name = njs_string("asyncIterator"),
.value = njs_wellknown_symbol(NJS_SYMBOL_ASYNC_ITERATOR),
},
- /* Symbol.hasInstance. */
{
.type = NJS_PROPERTY,
.name = njs_string("hasInstance"),
.value = njs_wellknown_symbol(NJS_SYMBOL_HAS_INSTANCE),
},
- /* Symbol.isConcatSpreadable. */
{
.type = NJS_PROPERTY,
.name = njs_long_string("isConcatSpreadable"),
.value = njs_wellknown_symbol(NJS_SYMBOL_IS_CONCAT_SPREADABLE),
},
- /* Symbol.iterator. */
{
.type = NJS_PROPERTY,
.name = njs_string("iterator"),
.value = njs_wellknown_symbol(NJS_SYMBOL_ITERATOR),
},
- /* Symbol.match. */
{
.type = NJS_PROPERTY,
.name = njs_string("match"),
.value = njs_wellknown_symbol(NJS_SYMBOL_MATCH),
},
- /* Symbol.matchAll. */
{
.type = NJS_PROPERTY,
.name = njs_string("matchAll"),
.value = njs_wellknown_symbol(NJS_SYMBOL_MATCH_ALL),
},
- /* Symbol.replace. */
{
.type = NJS_PROPERTY,
.name = njs_string("replace"),
.value = njs_wellknown_symbol(NJS_SYMBOL_REPLACE),
},
- /* Symbol.search. */
{
.type = NJS_PROPERTY,
.name = njs_string("search"),
.value = njs_wellknown_symbol(NJS_SYMBOL_SEARCH),
},
- /* Symbol.species. */
{
.type = NJS_PROPERTY,
.name = njs_string("species"),
.value = njs_wellknown_symbol(NJS_SYMBOL_SPECIES),
},
- /* Symbol.split. */
{
.type = NJS_PROPERTY,
.name = njs_string("split"),
.value = njs_wellknown_symbol(NJS_SYMBOL_SPLIT),
},
- /* Symbol.toPrimitive. */
{
.type = NJS_PROPERTY,
.name = njs_string("toPrimitive"),
.value = njs_wellknown_symbol(NJS_SYMBOL_TO_PRIMITIVE),
},
- /* Symbol.toStringTag. */
{
.type = NJS_PROPERTY,
.name = njs_string("toStringTag"),
.value = njs_wellknown_symbol(NJS_SYMBOL_TO_STRING_TAG),
},
- /* Symbol.unscopables. */
{
.type = NJS_PROPERTY,
.name = njs_string("unscopables"),