From: Valentin Bartenev Date: Thu, 8 Nov 2018 17:32:45 +0000 (+0300) Subject: Fixed equality operator when both operands are objects. X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=bbc27c18b24a752d789ba11a09ded6d16b8eca84;p=njs.git Fixed equality operator when both operands are objects. --- diff --git a/njs/njs_vm.c b/njs/njs_vm.c index dd59ae06..1baf4ded 100644 --- a/njs/njs_vm.c +++ b/njs/njs_vm.c @@ -1543,6 +1543,10 @@ njs_values_equal(njs_vm_t *vm, const njs_value_t *val1, const njs_value_t *val2) return (val1->data.u.object == val2->data.u.object); } + if (njs_is_object(val1) && njs_is_object(val2)) { + return 0; + } + return njs_trap(vm, NJS_TRAP_NUMBERS); } diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index e35e4336..c8557381 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -1136,6 +1136,12 @@ static njs_unit_test_t njs_test[] = { nxt_string("({}) == false"), nxt_string("false") }, + { nxt_string("new Number(1) == new String('1')"), + nxt_string("false") }, + + { nxt_string("var a = Object; a == Object"), + nxt_string("true") }, + { nxt_string("var a = { valueOf: function() { return 5 } }; a == 5"), nxt_string("true") },