}
}
- njs_type_error(vm, "not supported algorithm: '%.*s'",
- (int) name->length, name->start);
+ njs_type_error(vm, "not supported algorithm: '%V'", name);
return NULL;
}
}
}
- njs_type_error(vm, "Unknown digest encoding: '%.*s'",
- (int) name->length, name->start);
+ njs_type_error(vm, "Unknown digest encoding: '%V'", name);
return NULL;
}
nxt_int_t ret;
njs_value_t string;
njs_object_t *error;
- char buf[256];
+ u_char buf[256], *p;
if (fmt != NULL) {
va_start(args, fmt);
- size = vsnprintf(buf, sizeof(buf), fmt, args);
+ p = nxt_vsprintf(buf, buf + sizeof(buf), fmt, args);
va_end(args);
+ size = p - buf;
+
} else {
size = 0;
}
flags = njs_fs_flags(&flag);
if (nxt_slow_path(flags == -1)) {
- njs_type_error(vm, "Unknown file open flags: '%.*s'",
- (int) flag.length, flag.start);
+ njs_type_error(vm, "Unknown file open flags: '%V'", &flag);
return NJS_ERROR;
}
if (encoding.length != 0
&& (encoding.length != 4 || memcmp(encoding.start, "utf8", 4) != 0))
{
- njs_type_error(vm, "Unknown encoding: '%.*s'",
- (int) encoding.length, encoding.start);
+ njs_type_error(vm, "Unknown encoding: '%V'", &encoding);
return NJS_ERROR;
}
flags = njs_fs_flags(&flag);
if (nxt_slow_path(flags == -1)) {
- njs_type_error(vm, "Unknown file open flags: '%.*s'",
- (int) flag.length, flag.start);
+ njs_type_error(vm, "Unknown file open flags: '%V'", &flag);
return NJS_ERROR;
}
if (encoding.length != 0
&& (encoding.length != 4 || memcmp(encoding.start, "utf8", 4) != 0))
{
- njs_type_error(vm, "Unknown encoding: '%.*s'",
- (int) encoding.length, encoding.start);
+ njs_type_error(vm, "Unknown encoding: '%V'", &encoding);
return NJS_ERROR;
}
if (flag.start != NULL) {
flags = njs_fs_flags(&flag);
if (nxt_slow_path(flags == -1)) {
- njs_type_error(vm, "Unknown file open flags: '%.*s'",
- (int) flag.length, flag.start);
+ njs_type_error(vm, "Unknown file open flags: '%V'", &flag);
return NJS_ERROR;
}
if (encoding.length != 0
&& (encoding.length != 4 || memcmp(encoding.start, "utf8", 4) != 0))
{
- njs_type_error(vm, "Unknown encoding: '%.*s'",
- (int) encoding.length, encoding.start);
+ njs_type_error(vm, "Unknown encoding: '%V'", &encoding);
return NJS_ERROR;
}
if (flag.start != NULL) {
flags = njs_fs_flags(&flag);
if (nxt_slow_path(flags == -1)) {
- njs_type_error(vm, "Unknown file open flags: '%.*s'",
- (int) flag.length, flag.start);
+ njs_type_error(vm, "Unknown file open flags: '%V'", &flag);
return NJS_ERROR;
}
if (encoding.length != 0
&& (encoding.length != 4 || memcmp(encoding.start, "utf8", 4) != 0))
{
- njs_type_error(vm, "Unknown encoding: '%.*s'",
- (int) encoding.length, encoding.start);
+ njs_type_error(vm, "Unknown encoding: '%V'", &encoding);
return NJS_ERROR;
}
const char* fmt, ...)
{
va_list args;
-
- static char buf[256];
+ u_char buf[256], *end;
va_start(args, fmt);
- (void) vsnprintf(buf, sizeof(buf), fmt, args);
+ end = nxt_vsprintf(buf, buf + sizeof(buf), fmt, args);
va_end(args);
- njs_syntax_error(vm, "%s in %u", buf, token_line);
+ njs_syntax_error(vm, "%*s in %uD", end - buf, buf, token_line);
}
length = 0;
}
- njs_syntax_error(ctx->vm, "%s at position %zu", msg, length);
+ njs_syntax_error(ctx->vm, "%s at position %z", msg, length);
}
return NXT_OK;
}
- njs_error(vm, "Cannot find module '%.*s'",
- (int) lhq.key.length, lhq.key.start);
+ njs_error(vm, "Cannot find module '%V'", &lhq.key);
return NJS_ERROR;
}
if (nxt_fast_path(ret == NXT_OK)) {
njs_string_get(&pq->value, &pq->lhq.key);
- njs_type_error(vm, "cannot get property '%.*s' of undefined",
- (int) pq->lhq.key.length, pq->lhq.key.start);
+ njs_type_error(vm, "cannot get property '%V' of undefined",
+ &pq->lhq.key);
return NXT_ERROR;
}
exception:
- njs_type_error(vm, "Cannot redefine property: '%.*s'",
- (int) pq.lhq.key.length, pq.lhq.key.start);
+ njs_type_error(vm, "Cannot redefine property: '%V'", &pq.lhq.key);
return NXT_ERROR;
}
if (token != NJS_TOKEN_NAME) {
if (token == NJS_TOKEN_ARGUMENTS || token == NJS_TOKEN_EVAL) {
- njs_parser_syntax_error(vm, parser, "Identifier \"%.*s\" "
+ njs_parser_syntax_error(vm, parser, "Identifier \"%V\" "
"is forbidden in function declaration",
- (int) parser->lexer->text.length,
- parser->lexer->text.start);
+ &parser->lexer->text);
}
return NJS_TOKEN_ILLEGAL;
if (token != NJS_TOKEN_NAME) {
if (token == NJS_TOKEN_ARGUMENTS || token == NJS_TOKEN_EVAL) {
- njs_parser_syntax_error(vm, parser, "Identifier \"%.*s\" "
+ njs_parser_syntax_error(vm, parser, "Identifier \"%V\" "
"is forbidden in var declaration",
- (int) parser->lexer->text.length,
- parser->lexer->text.start);
+ &parser->lexer->text);
}
return NJS_TOKEN_ILLEGAL;
if (token != NJS_TOKEN_NAME) {
if (token == NJS_TOKEN_ARGUMENTS || token == NJS_TOKEN_EVAL) {
- njs_parser_syntax_error(vm, parser, "Identifier \"%.*s\" "
+ njs_parser_syntax_error(vm, parser, "Identifier \"%V\" "
"is forbidden in for-in var declaration",
- (int) parser->lexer->text.length,
- parser->lexer->text.start);
+ &parser->lexer->text);
}
return NJS_TOKEN_ILLEGAL;
node = parser->node->left;
if (node->token != NJS_TOKEN_NAME) {
- njs_parser_ref_error(vm, parser, "Invalid left-hand side \"%.*s\" "
- "in for-in statement", (int) name->length,
- name->start);
+ njs_parser_ref_error(vm, parser, "Invalid left-hand side \"%V\" "
+ "in for-in statement", name);
return NJS_TOKEN_ILLEGAL;
}
break;
case NJS_TOKEN_UNTERMINATED_STRING:
- njs_parser_syntax_error(vm, parser, "Unterminated string \"%.*s\"",
- (int) parser->lexer->text.length,
- parser->lexer->text.start);
+ njs_parser_syntax_error(vm, parser, "Unterminated string \"%V\"",
+ &parser->lexer->text);
return NJS_TOKEN_ILLEGAL;
nxt_thread_log_debug("JS: arguments");
if (parser->scope->type <= NJS_SCOPE_GLOBAL) {
- njs_parser_syntax_error(vm, parser, "\"%.*s\" object "
- "in global scope",
- (int) parser->lexer->text.length,
- parser->lexer->text.start);
+ njs_parser_syntax_error(vm, parser, "\"%V\" object "
+ "in global scope", &parser->lexer->text);
return NJS_TOKEN_ILLEGAL;
}
invalid:
- njs_parser_syntax_error(vm, parser, "Invalid Unicode code point \"%.*s\"",
- (int) parser->lexer->text.length,
- parser->lexer->text.start);
+ njs_parser_syntax_error(vm, parser, "Invalid Unicode code point \"%V\"",
+ &parser->lexer->text);
return NJS_TOKEN_ILLEGAL;
}
njs_token_t token)
{
if (token != NJS_TOKEN_END) {
- njs_parser_syntax_error(vm, parser, "Unexpected token \"%.*s\"",
- (int) parser->lexer->text.length,
- parser->lexer->text.start);
+ njs_parser_syntax_error(vm, parser, "Unexpected token \"%V\"",
+ &parser->lexer->text);
} else {
njs_parser_syntax_error(vm, parser, "Unexpected end of input");
p = trace->handler(trace, td, p);
if (vm->parser != NULL) {
- njs_internal_error(vm, "%s in %u", start, vm->parser->lexer->line);
+ njs_internal_error(vm, "%s in %uD", start, vm->parser->lexer->line);
} else {
njs_internal_error(vm, "%s", start);
}
...)
{
va_list args;
-
- static char buf[256];
+ u_char buf[256], *end;
va_start(args, fmt);
- (void) vsnprintf(buf, sizeof(buf), fmt, args);
+ end = nxt_vsprintf(buf, buf + sizeof(buf), fmt, args);
va_end(args);
- njs_syntax_error(vm, "%s in %u", buf, parser->lexer->line);
+ njs_syntax_error(vm, "%*s in %uD", end - buf, buf, parser->lexer->line);
}
...)
{
va_list args;
-
- static char buf[256];
+ u_char buf[256], *end;
va_start(args, fmt);
- (void) vsnprintf(buf, sizeof(buf), fmt, args);
+ end = nxt_vsprintf(buf, buf + sizeof(buf), fmt, args);
va_end(args);
- njs_reference_error(vm, "%s in %u", buf, parser->lexer->line);
+ njs_reference_error(vm, "%*s in %uD", end - buf, buf, parser->lexer->line);
}
flags = njs_regexp_flags(&start, start + string.length, 1);
if (nxt_slow_path(flags < 0)) {
- njs_syntax_error(vm, "Invalid RegExp flags \"%.*s\"",
- (int) string.length, string.start);
+ njs_syntax_error(vm, "Invalid RegExp flags \"%V\"", &string);
return NXT_ERROR;
}
if (nxt_slow_path(flags < 0)) {
njs_parser_syntax_error(vm, parser,
- "Invalid RegExp flags \"%.*s\"",
+ "Invalid RegExp flags \"%*s\"",
p - lexer->start, lexer->start);
return NJS_TOKEN_ILLEGAL;
}
}
- njs_parser_syntax_error(vm, parser, "Unterminated RegExp \"%.*s\"",
+ njs_parser_syntax_error(vm, parser, "Unterminated RegExp \"%*s\"",
p - (lexer->start - 1), lexer->start - 1);
return NJS_TOKEN_ILLEGAL;
p = trace->handler(trace, td, start);
if (vm->parser != NULL) {
- njs_syntax_error(vm, "%s in %u", start, vm->parser->lexer->line);
+ njs_syntax_error(vm, "%s in %uD", start, vm->parser->lexer->line);
} else {
njs_syntax_error(vm, "%s", start);
return njs_string_base64url(vm, &vm->retval, &str);
}
- njs_type_error(vm, "Unknown encoding: '%.*s'", (int) enc.length, enc.start);
+ njs_type_error(vm, "Unknown encoding: '%V'", &enc);
return NJS_ERROR;
}
return njs_string_decode_base64url(vm, &vm->retval, &str);
}
- njs_type_error(vm, "Unknown encoding: '%.*s'", (int) enc.length,
- enc.start);
+ njs_type_error(vm, "Unknown encoding: '%V'", &enc);
return NJS_ERROR;
}
not_found:
- njs_parser_ref_error(vm, vm->parser, "\"%.*s\" is not defined",
- (int) vr->name.length, vr->name.start);
+ njs_parser_ref_error(vm, vm->parser, "\"%V\" is not defined", &vr->name);
return NULL;
}
case NXT_DECLINED:
if (nxt_slow_path(!object->data.u.object->extensible)) {
- njs_type_error(vm, "Cannot add property '%.*s', "
- "object is not extensible", pq.lhq.key.length,
- pq.lhq.key.start);
+ njs_type_error(vm, "Cannot add property '%V', "
+ "object is not extensible", &pq.lhq.key);
return NXT_ERROR;
}
}
if (nxt_slow_path(!prop->writable)) {
- njs_type_error(vm, "Cannot assign to read-only property '%.*s' of %s",
- pq.lhq.key.length, pq.lhq.key.start,
- njs_type_string(object->type));
+ njs_type_error(vm, "Cannot assign to read-only property '%V' of %s",
+ &pq.lhq.key, njs_type_string(object->type));
return NXT_ERROR;
}
}
if (nxt_slow_path(!prop->configurable)) {
- njs_type_error(vm, "Cannot delete property '%.*s' of %s",
- pq.lhq.key.length, pq.lhq.key.start,
- njs_type_string(object->type));
+ njs_type_error(vm, "Cannot delete property '%V' of %s",
+ &pq.lhq.key, njs_type_string(object->type));
return NXT_ERROR;
}
if (value == NULL || !njs_is_function(value)) {
njs_string_get(name, &string);
- njs_type_error(vm, "'%.*s' is not a function", (int) string.length,
- string.start);
+ njs_type_error(vm, "'%V' is not a function", &string);
return NXT_ERROR;
}