[njs] Small optimizations.
Igor Sysoev
igor at sysoev.ru
Tue Apr 3 14:56:29 UTC 2018
details: http://hg.nginx.org/njs/rev/addefc71957b
branches:
changeset: 488:addefc71957b
user: Igor Sysoev <igor at sysoev.ru>
date: Tue Apr 03 17:55:08 2018 +0300
description:
Small optimizations.
diffstat:
njs/njs_parser_expression.c | 25 +++++++++++--------------
1 files changed, 11 insertions(+), 14 deletions(-)
diffs (63 lines):
diff -r 671d9dd1ffeb -r addefc71957b njs/njs_parser_expression.c
--- a/njs/njs_parser_expression.c Tue Apr 03 17:55:04 2018 +0300
+++ b/njs/njs_parser_expression.c Tue Apr 03 17:55:08 2018 +0300
@@ -762,19 +762,16 @@ njs_parser_unary_expression(njs_vm_t *vm
return NJS_TOKEN_ILLEGAL;
}
- if (token == NJS_TOKEN_UNARY_PLUS
- && parser->node->token == NJS_TOKEN_NUMBER)
- {
+ node = parser->node;
+
+ if (token == NJS_TOKEN_UNARY_PLUS && node->token == NJS_TOKEN_NUMBER) {
/* Skip the unary plus of number. */
return next;
}
- if (token == NJS_TOKEN_UNARY_NEGATION
- && parser->node->token == NJS_TOKEN_NUMBER)
- {
+ if (token == NJS_TOKEN_UNARY_NEGATION && node->token == NJS_TOKEN_NUMBER) {
+
/* Optimization of common negative number. */
-
- node = parser->node;
num = -node->u.value.data.u.number;
node->u.value.data.u.number = num;
node->u.value.data.truth = njs_is_number_true(num);
@@ -784,11 +781,11 @@ njs_parser_unary_expression(njs_vm_t *vm
if (token == NJS_TOKEN_DELETE) {
- switch (parser->node->token) {
+ switch (node->token) {
case NJS_TOKEN_PROPERTY:
- parser->node->token = NJS_TOKEN_PROPERTY_DELETE;
- parser->node->u.operation = njs_vmcode_property_delete;
+ node->token = NJS_TOKEN_PROPERTY_DELETE;
+ node->u.operation = njs_vmcode_property_delete;
parser->code_size += sizeof(njs_vmcode_3addr_t);
return next;
@@ -805,8 +802,8 @@ njs_parser_unary_expression(njs_vm_t *vm
}
}
- if (token == NJS_TOKEN_TYPEOF && parser->node->token == NJS_TOKEN_NAME) {
- parser->node->reference = NJS_TYPEOF;
+ if (token == NJS_TOKEN_TYPEOF && node->token == NJS_TOKEN_NAME) {
+ node->reference = NJS_TYPEOF;
}
node = njs_parser_node_alloc(vm);
@@ -876,7 +873,7 @@ njs_parser_inc_dec_expression(njs_vm_t *
node->left = parser->node;
parser->node = node;
- parser->code_size += (parser->node->token == NJS_TOKEN_NAME) ?
+ parser->code_size += (node->token == NJS_TOKEN_NAME) ?
sizeof(njs_vmcode_3addr_t):
sizeof(njs_vmcode_prop_get_t)
+ sizeof(njs_vmcode_3addr_t)
More information about the nginx-devel
mailing list