if (njs_fast_path(ret == NJS_DECLINED)) {
if (!njs_object(object)->extensible) {
+ njs_key_string_get(vm, &pq.key, &pq.lhq.key);
njs_type_error(vm, "Cannot add property \"%V\", "
"object is not extensible", &pq.lhq.key);
return NJS_ERROR;
}
if (njs_slow_path(!njs_object(value)->extensible)) {
+ njs_key_string_get(vm, &pq.key, &pq.lhq.key);
njs_type_error(vm, "Cannot add property \"%V\", "
"object is not extensible", &pq.lhq.key);
return NJS_ERROR;
"Object.defineProperty(o, 'b', {value:1})"),
njs_str("TypeError: Cannot add property \"b\", object is not extensible") },
+ { njs_str("var o = Object.preventExtensions({});"
+ "Object.defineProperty(o, Symbol.unscopables, {})"),
+ njs_str("TypeError: Cannot add property \"Symbol(Symbol.unscopables)\", object is not extensible") },
+
{ njs_str("var o = Object.preventExtensions({a:1});"
"Object.defineProperties(o, {b:{value:1}})"),
njs_str("TypeError: Cannot add property \"b\", object is not extensible") },
{ njs_str("var o = Object.preventExtensions({a:1}); o.b = 1; o.b"),
njs_str("TypeError: Cannot add property \"b\", object is not extensible") },
+ { njs_str("var o = Object.preventExtensions({a:1}); o[Symbol.unscopables] = 1"),
+ njs_str("TypeError: Cannot add property \"Symbol(Symbol.unscopables)\", object is not extensible") },
+
{ njs_str("Object.preventExtensions()"),
njs_str("undefined") },