njs_lvlhsh_query_t lhq;
njs_json_stringify_t *stringify;
+ const njs_value_t string_get = njs_string("[Getter]");
+ const njs_value_t string_set = njs_string("[Setter]");
+ const njs_value_t string_get_set = njs_long_string("[Getter/Setter]");
+
if (njs_vm_backtrace(vm) != NULL) {
goto exception;
}
if (prop->type == NJS_WHITEOUT || !prop->enumerable) {
break;
}
+
+ if (njs_is_accessor_descriptor(prop)) {
+ if (njs_is_defined(&prop->getter)) {
+ if (njs_is_defined(&prop->setter)) {
+ val = njs_value_arg(&string_get_set);
+ } else {
+ val = njs_value_arg(&string_get);
+ }
+
+ } else {
+ val = njs_value_arg(&string_set);
+ }
+ }
}
if (state->written) {
{ njs_str("njs.dump(Array.prototype.slice.call({'1':'b', length:2}))"),
njs_str("[<empty>,'b']") },
+ { njs_str("var o = Object.defineProperty({}, 'a', { get: () => 1, enumerable: true }); njs.dump(o)"),
+ njs_str("{a:'[Getter]'}") },
+
+ { njs_str("var o = Object.defineProperty({}, 'a', { get: () => 1, set(){}, enumerable: true }); njs.dump(o)"),
+ njs_str("{a:'[Getter/Setter]'}") },
+
+ { njs_str("var o = Object.defineProperty({}, 'a', { set(){}, enumerable: true }); njs.dump(o)"),
+ njs_str("{a:'[Setter]'}") },
+
{ njs_str("njs.dump($r.props)"),
njs_str("{a:{type:\"property\",props:[\"getter\"]},b:{type:\"property\",props:[\"getter\"]}}") },