Bug 146339 - Array destructuring seems to not follow the ES6 spec
Summary: Array destructuring seems to not follow the ES6 spec
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Yusuke Suzuki
URL:
Keywords:
Depends on:
Blocks: 38410
  Show dependency treegraph
 
Reported: 2015-06-26 02:02 PDT by Boris Zbarsky
Modified: 2015-06-26 02:17 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Boris Zbarsky 2015-06-26 02:02:26 PDT
Consider this testcase:

  var y = "FAIL";
  Object.defineProperty(Array.prototype, 0, { get: function() { y = "PASS"; } });
  var [,x] = [,1];
  alert(y);

per spec, this should alert "PASS".  In Safari (and in a WebKit nightly), this alerts "FAIL".
Comment 1 Yusuke Suzuki 2015-06-26 02:10:02 PDT
I guess this is fixed by this commit[1].

I've tried it with r185990's JSC shell and get "PASS".

var y = "FAIL";
Object.defineProperty(Array.prototype, 0, { get: function() { y = "PASS"; } });
var [,x] = [,1];
print(y);

Could you tell me the revision number?

[1]: http://trac.webkit.org/changeset/185853
Comment 2 Yusuke Suzuki 2015-06-26 02:12:24 PDT
Ah, this commit[1].

[1]: http://trac.webkit.org/changeset/185791
Comment 3 Boris Zbarsky 2015-06-26 02:16:03 PDT
Looks like I was on r185625.  

I can confirm that http://trac.webkit.org/changeset/185791 looks like it should fix this, and that it's fixed in r185958.  Sorry for the spurious bug report.  :(
Comment 4 Yusuke Suzuki 2015-06-26 02:17:24 PDT
(In reply to comment #3)
> Looks like I was on r185625.  
> 
> I can confirm that http://trac.webkit.org/changeset/185791 looks like it
> should fix this, and that it's fixed in r185958.  Sorry for the spurious bug
> report.  :(

No problem!! I'm looking forward to seeing your reports about the other ES6 edge case areas!!!