Closed
Bug 1041586
Opened 11 years ago
Closed 9 years ago
Implement Symbol.isConcatSpreadable
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla48
Tracking | Status | |
---|---|---|
firefox48 | --- | fixed |
People
(Reporter: bzbarsky, Assigned: evilpies)
References
(Blocks 1 open bug)
Details
(Keywords: dev-doc-complete, Whiteboard: [DocArea=JS])
Attachments
(6 files, 1 obsolete file)
5.49 KB,
patch
|
jorendorff
:
review+
|
Details | Diff | Splinter Review |
1.21 KB,
patch
|
arai
:
review+
|
Details | Diff | Splinter Review |
2.79 KB,
patch
|
arai
:
review+
|
Details | Diff | Splinter Review |
11.74 KB,
patch
|
jandem
:
review+
|
Details | Diff | Splinter Review |
2.54 KB,
patch
|
arai
:
review+
|
Details | Diff | Splinter Review |
2.01 KB,
patch
|
jandem
:
review+
|
Details | Diff | Splinter Review |
We should have it for ArrayClass bits.
Updated•11 years ago
|
Keywords: dev-doc-needed
Whiteboard: [DocArea=JS]
Comment 1•10 years ago
|
||
Isn't it a dupe of Bug 1054758 ?
Reporter | ||
Comment 2•10 years ago
|
||
Yes, except filed a month earlier. So the dup is the other way around. ;)
Not that I care much as long as the dependencies are propagated to whichever bug is used here.
Updated•10 years ago
|
Changing the implementation of concat for this is really simple. However concat is also inlined in Ion, and just checking for the array class isn't enough anymore.
Reporter | ||
Comment 5•10 years ago
|
||
As pointed out on public-script-coord, we should make @@isConcatSpreadable return undefined on cross-origin windows when we implement this.
Updated•9 years ago
|
Summary: Implement @@isConcatSpreadable or equivalent → Implement Symbol.isConcatSpreadable
This should be relatively simple with the new selfhosted concat.
Depends on: 1233642
I was a bit upset that we actually hard-coded @@iterator as the first symbol, so I decided to automatically generate all the symbol atoms. So now you can add new symbols at the frond and end of the enum!
Attachment #8739665 -
Flags: review?(jorendorff)
Normally we would be done now, sadly this causes a regression between 10-25% on a micro benchmark using concat. It seems like the O[@@isConcatSpreadable] lookup is not optimized away and even uses a property cache. I will have to look into completely eliminating that.
Assignee | ||
Comment 10•9 years ago
|
||
Attachment #8739667 -
Attachment is obsolete: true
Comment 11•9 years ago
|
||
Comment on attachment 8739665 [details] [diff] [review]
Autogenerate symbol names
Review of attachment 8739665 [details] [diff] [review]:
-----------------------------------------------------------------
Yes, of course. Thanks.
Attachment #8739665 -
Flags: review?(jorendorff) → review+
Comment 12•9 years ago
|
||
Keywords: leave-open
Assignee | ||
Comment 13•9 years ago
|
||
This patch allows us to completely fold away O[Symbol.isContactSpreadable], this wins back all the performance on a micro benchmark. I tried running and didn't see any obvious, but the results are extremely noisy for me.
Attachment #8741039 -
Flags: review?(jdemooij)
Comment 14•9 years ago
|
||
bugherder |
Comment 15•9 years ago
|
||
Comment on attachment 8741039 [details] [diff] [review]
Fold away property accesses to not-defined properties
Review of attachment 8741039 [details] [diff] [review]:
-----------------------------------------------------------------
Thanks, that's a nice optimization to have for other code as well.
Attachment #8741039 -
Flags: review?(jdemooij) → review+
Comment 16•9 years ago
|
||
Comment 17•9 years ago
|
||
bugherder |
Attachment #8739666 -
Flags: review?(arai.unmht)
Attachment #8739669 -
Flags: review?(arai.unmht)
Updated•9 years ago
|
Attachment #8739666 -
Flags: review?(arai.unmht) → review+
Comment 18•9 years ago
|
||
Comment on attachment 8739669 [details] [diff] [review]
IsConcatSpreadable
Review of attachment 8739669 [details] [diff] [review]:
-----------------------------------------------------------------
Looks good, assuming the testcase is in another patch :)
Attachment #8739669 -
Flags: review?(arai.unmht) → review+
Assignee | ||
Comment 19•9 years ago
|
||
Attachment #8741906 -
Flags: review?(arai.unmht)
Comment 20•9 years ago
|
||
Comment on attachment 8741906 [details] [diff] [review]
Tests
Review of attachment 8741906 [details] [diff] [review]:
-----------------------------------------------------------------
Nice testcases :D
Attachment #8741906 -
Flags: review?(arai.unmht) → review+
Assignee | ||
Comment 21•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/db1b027cbeb1
https://hg.mozilla.org/integration/mozilla-inbound/rev/2021fd52a8c9
https://hg.mozilla.org/integration/mozilla-inbound/rev/35b1a010cb9f
Keywords: leave-open
Comment 22•9 years ago
|
||
sorry had to back this out for assertion failures like https://treeherder.mozilla.org/logviewer.html#?job_id=25962392&repo=mozilla-inbound
Flags: needinfo?(evilpies)
Assignee | ||
Comment 23•9 years ago
|
||
I think that test might be buggy sometimes? Try looked okay https://treeherder.mozilla.org/#/jobs?repo=try&revision=1c3b1879918a actually.
Comment 24•9 years ago
|
||
Assignee | ||
Comment 25•9 years ago
|
||
I am just going to assume this test is broken, inserting a print makes the failure go away.
Flags: needinfo?(evilpies)
Assignee | ||
Comment 26•9 years ago
|
||
It seems like this test case has been causing problems for a long time. I have to admit, I am not interested in fixing this just to get this bug finished.
Attachment #8742864 -
Flags: review?(jdemooij)
Comment 27•9 years ago
|
||
Comment on attachment 8742864 [details] [diff] [review]
Prevent jit compilation for one expression-autopsy test
Review of attachment 8742864 [details] [diff] [review]:
-----------------------------------------------------------------
I'm still a bit curious why your patch exposes this, but given that we have seen this failure before and investigated it last time, this makes sense.
Attachment #8742864 -
Flags: review?(jdemooij) → review+
Comment 28•9 years ago
|
||
Comment 29•9 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/bb2748e05cab
https://hg.mozilla.org/mozilla-central/rev/1ddd1d9af872
https://hg.mozilla.org/mozilla-central/rev/219bb598b6ad
https://hg.mozilla.org/mozilla-central/rev/f569192eb5e8
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox48:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
Comment 30•9 years ago
|
||
Developer release notes
https://developer.mozilla.org/en-US/Firefox/Releases/48
Reference pages:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable
Keywords: dev-doc-needed → dev-doc-complete
You need to log in
before you can comment on or make changes to this bug.
Description
•