New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 2291 link

Starred by 11 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Nov 2015
HW: ----
NextAction: ----
OS: ----
Priority: ----
Type: ----



Sign in to add a comment

Object equality check error

Reported by mari...@medikoo.com, Aug 15 2012

Issue description

Check following code (I've attached it also as file):

var obj = {};
var isObject = function(o) { return o === Object(o); };

// # Triggers
// 1: Useless comparison statement, this is half the trigger
obj == obj;
// 2: Initial check with object, this is the other half of the trigger
isObject(obj);

print('isObject(str) (should return false):', isObject('foo'));
print('inline check (should return false):', ('foo' === Object('foo')));

It should print 'false' twice, but prints 'true', 'false'.
It broken one of the Node scripts: https://github.com/joyent/node/issues/3867

 
object-comparision.v8.js
382 bytes View Download
Owner: erik.co...@gmail.com
Status: Assigned
Looking into this.  Broken by r10216

Comment 2 by vegorov@google.com, Aug 15 2012

ICCompareStub::FindCodeInSpecialCache does not distinguish between == and === compare stubs so we stash the one for == first and then fetch and use it for === which causes strange results.

Comment 4 by vegorov@google.com, Aug 15 2012

Erik landed a fix in r12313 on the bleeding edge.

But we still have to propagate the fix to branches.
What's the status on this one please? was the fix "propagated" to branches?
Status: Fixed
Does it matter, 3 years later? All branches from back then are dead anyway.

Sign in to add a comment