Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/njs_generator.c
Original file line number Diff line number Diff line change
Expand Up @@ -5491,7 +5491,7 @@ njs_generate_reference_error(njs_vm_t *vm, njs_generator_t *generator,

ref_err->type = NJS_OBJ_TYPE_REF_ERROR;

njs_lexer_entry(vm, node->u.reference.atom_id, &entry);
njs_atom_string_get(vm, node->u.reference.atom_id, &entry);

return njs_name_copy(vm, &ref_err->u.name, &entry);
}
Expand Down
10 changes: 0 additions & 10 deletions src/njs_lexer.h
Original file line number Diff line number Diff line change
Expand Up @@ -288,16 +288,6 @@ const njs_lexer_keyword_entry_t *njs_lexer_keyword(const u_char *key,
njs_int_t njs_lexer_keywords(njs_arr_t *array);


njs_inline void
njs_lexer_entry(njs_vm_t *vm, uintptr_t atom_id, njs_str_t *entry)
{
njs_value_t value;

njs_atom_to_value(vm, &value, atom_id);
njs_string_get(vm, &value, entry);
}


njs_inline njs_bool_t
njs_lexer_token_is_keyword(njs_lexer_token_t *token)
{
Expand Down
7 changes: 3 additions & 4 deletions src/njs_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -241,18 +241,17 @@ njs_key_string_get(njs_vm_t *vm, njs_value_t *key, njs_str_t *str)
}


njs_inline njs_int_t
njs_inline void
njs_atom_string_get(njs_vm_t *vm, uint32_t atom_id, njs_str_t *str)
{
njs_value_t value;

if (njs_atom_to_value(vm, &value, atom_id) != NJS_OK) {
return NJS_ERROR;
str->start = (u_char *) "unknown";
str->length = njs_length("unknown");
}

njs_key_string_get(vm, &value, str);

return NJS_OK;
}


Expand Down
4 changes: 1 addition & 3 deletions src/njs_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -6702,7 +6702,6 @@ njs_parser_labelled_statement_after(njs_parser_t *parser,
njs_int_t ret;
njs_str_t str;
uintptr_t atom_id;
njs_value_t entry;
njs_parser_node_t *node;

node = parser->node;
Expand All @@ -6719,8 +6718,7 @@ njs_parser_labelled_statement_after(njs_parser_t *parser,

atom_id = (uint32_t) (uintptr_t) parser->target;

njs_atom_to_value(parser->vm, &entry, atom_id);
njs_string_get(parser->vm, &entry, &str);
njs_atom_string_get(parser->vm, atom_id, &str);

ret = njs_name_copy(parser->vm, &parser->node->name, &str);
if (ret != NJS_OK) {
Expand Down
17 changes: 3 additions & 14 deletions src/njs_value.c
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,6 @@ njs_property_query(njs_vm_t *vm, njs_property_query_t *pq, njs_value_t *value,
{
uint32_t index;
njs_int_t ret;
njs_value_t key;
njs_object_t *obj;
njs_function_t *function;

Expand Down Expand Up @@ -607,19 +606,9 @@ njs_property_query(njs_vm_t *vm, njs_property_query_t *pq, njs_value_t *value,
case NJS_UNDEFINED:
case NJS_NULL:
default:
ret = njs_atom_to_value(vm, &key, atom_id);

if (njs_fast_path(ret == NJS_OK)) {
njs_string_get(vm, &key, &pq->lhq.key);
njs_type_error(vm, "cannot get property \"%V\" of %s",
&pq->lhq.key, njs_is_null(value) ? "null"
: "undefined");
return NJS_ERROR;
}

njs_type_error(vm, "cannot get property \"unknown\" of %s",
njs_is_null(value) ? "null" : "undefined");

njs_atom_string_get(vm, atom_id, &pq->lhq.key);
njs_type_error(vm, "cannot get property \"%V\" of %s", &pq->lhq.key,
njs_type_string(value->type));
return NJS_ERROR;
}

Expand Down
2 changes: 1 addition & 1 deletion src/njs_variable.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ njs_variable_scope_find(njs_parser_t *parser, njs_parser_scope_t *scope,

failed:

njs_lexer_entry(parser->vm, atom_id, &entry);
njs_atom_string_get(parser->vm, atom_id, &entry);

njs_parser_syntax_error(parser, "\"%V\" has already been declared", &entry);
return NULL;
Expand Down
3 changes: 3 additions & 0 deletions src/test/njs_unit_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -3923,6 +3923,9 @@ static njs_unit_test_t njs_test[] =
{ njs_str("delete this !== true"),
njs_str("false") },

{ njs_str("undefined[Symbol()]"),
njs_str("TypeError: cannot get property \"Symbol()\" of undefined") },

/* Object shorthand methods. */

{ njs_str("var o = {m(){}}; new o.m();"),
Expand Down