diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2010-07-03 08:36:33 +0200 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2010-07-03 08:37:05 +0200 |
commit | 2072925f121fe8785dfd046eba24f8d18c59ae75 (patch) | |
tree | 70dcc90532a9f4da485453c6f40bc93235196071 /deps/v8/src/ia32/codegen-ia32.cc | |
parent | 94cd83ef34176f4e451e91c92d3b2596032b8e96 (diff) | |
download | node-2072925f121fe8785dfd046eba24f8d18c59ae75.tar.gz |
Upgrade V8 to 2.2.21
Diffstat (limited to 'deps/v8/src/ia32/codegen-ia32.cc')
-rw-r--r-- | deps/v8/src/ia32/codegen-ia32.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/deps/v8/src/ia32/codegen-ia32.cc b/deps/v8/src/ia32/codegen-ia32.cc index c0c54426a..1a847c168 100644 --- a/deps/v8/src/ia32/codegen-ia32.cc +++ b/deps/v8/src/ia32/codegen-ia32.cc @@ -11686,16 +11686,18 @@ void CompareStub::Generate(MacroAssembler* masm) { __ Set(eax, Immediate(Smi::FromInt(EQUAL))); __ ret(0); } else { - Label return_equal; Label heap_number; - // If it's not a heap number, then return equal. __ cmp(FieldOperand(edx, HeapObject::kMapOffset), Immediate(Factory::heap_number_map())); - __ j(equal, &heap_number); - __ bind(&return_equal); - __ Set(eax, Immediate(Smi::FromInt(EQUAL))); - __ ret(0); - + if (cc_ == equal) { + __ j(equal, &heap_number); + // Identical objects are equal for operators ==, !=, and ===. + __ Set(eax, Immediate(Smi::FromInt(EQUAL))); + __ ret(0); + } else { + // Identical objects must call ToPrimitive for <, <=, >, and >=. + __ j(not_equal, ¬_identical); + } __ bind(&heap_number); // It is a heap number, so return non-equal if it's NaN and equal if // it's not NaN. |