Commit Graph

74835 Commits

Author SHA1 Message Date
Narcis Beleuzu
d551a31fb6 Backed out changeset 18f02f6b7243 (bug 1609889) for SM bustages on ion-inlinedcall-resumepoint.js. CLOSED TREE 2020-01-27 17:17:48 +02:00
Andy Wingo
1fd00f79c5 Bug 1609887 - Prevent instruction reordering between wasm call and result r=lth
Differential Revision: https://phabricator.services.mozilla.com/D60240

--HG--
extra : moz-landing-system : lando
2020-01-27 13:44:00 +00:00
Andy Wingo
84b61de05c Bug 1609889 - Separate wasm return values from calls in inlined Ion-to-Wasm calls r=lth
Related to bug 1608121.

When we use Ion and WebAssembly, we might get multiple return values
from function calls.  This patch refactors the direct JS-to-Wasm-via-Ion
call path to better support multiple values.

The patch adds a safepoint at the call, as appears to be necessary in
general, and also when results are captured as MIR values.  There is a
slight optimization in that void-returning Wasm functions just get a
MConstant result that's visible to the optimizer.

Differential Revision: https://phabricator.services.mozilla.com/D60228

--HG--
extra : moz-landing-system : lando
2020-01-27 13:43:17 +00:00
Jon Coppeard
6b1a075865 Bug 1610412 - Fix FinalizationGroup test that assumed the browser wouldn't trigger a GC during the test r=mccr8
Depends on D60866

Differential Revision: https://phabricator.services.mozilla.com/D60867

--HG--
extra : moz-landing-system : lando
2020-01-24 20:53:43 +00:00
Ryan Hunt
fb42ac6003 Bug 1574865 - Wasm: Allow stackmaps that are indexed at an x86 indirect call instruction with any register. r=jseward
Cranelift fails this assertion and it's not clear to me that there is any restriction inside
Cranelift that would limit the set of registers we'd need to check here.

Differential Revision: https://phabricator.services.mozilla.com/D58887

--HG--
extra : moz-landing-system : lando
2020-01-26 03:17:07 +00:00
Ryan Hunt
38e117a093 Bug 1574865 - Baldr: Add support for Cranelift stackmaps. r=jseward
This commit adds support for receiving stackmaps from Cranelift
and converting to wasm::Stackmaps. [1] will change the stackmap
representation in Cranelift to be the same as in Spidermonkey.

The stack overflow/interrupt trap handler stackmap is implemented by
sharing code with Ion.

[1] https://github.com/bytecodealliance/cranelift/pull/1317

Differential Revision: https://phabricator.services.mozilla.com/D58886

--HG--
extra : moz-landing-system : lando
2020-01-26 03:16:52 +00:00
Ryan Hunt
7b7bd2c93c Bug 1574865 - Baldr: Translate reference type globals using slow OOL barriers. r=jseward
cranelift-wasm cannot express arbitrary control flow inside of
'global.get/set' easily. This makes it difficult to implement the pre/post write
barriers inline like the baseline compiler does.

[1] has a discussion about the ideal solution to problem, which involves a new IR
concept called templates. We will want to use that when it is ready.

In the short-term, this commit implements pre/post write barriers using slow OOL
functions and implements Wasm globals.

[1] https://github.com/bytecodealliance/cranelift/issues/1176

Differential Revision: https://phabricator.services.mozilla.com/D58885

--HG--
extra : moz-landing-system : lando
2020-01-26 03:16:42 +00:00
Ryan Hunt
56f916b6eb Bug 1574865 - Baldr: Translate reference types and implement table/ref instruction translation. r=jseward
This commit translates the basic parts of reference types that does not
require any barriers. AnyRef,FuncRef,NullRef are translated to R32/R64. The
existing bulk-memory instructions are extended to operate on multiple tables,
and the new reference type instructions are implemented with instance calls.

Differential Revision: https://phabricator.services.mozilla.com/D58884

--HG--
extra : moz-landing-system : lando
2020-01-26 03:16:22 +00:00
Ryan Hunt
f371899b51 Bug 1574865 - Wasm: Change compiler selection to allow Cranelift when reference types is enabled. r=jseward
This commit changes the wasm compiler feature detection bits to report that
cranelift supports reference types.

Differential Revision: https://phabricator.services.mozilla.com/D58883

--HG--
extra : moz-landing-system : lando
2020-01-26 03:16:13 +00:00
Ryan Hunt
af432e59ad Bug 1574865 - Wasm: Update encoding of nullref to match proposal. r=lth
This commit updates the encoding of nullref to match the one given in
the reference types proposal.

Spec: https://github.com/WebAssembly/reference-types/pull/66

Differential Revision: https://phabricator.services.mozilla.com/D58882

--HG--
extra : moz-landing-system : lando
2020-01-26 04:13:56 +00:00
Andrew McCreight
359a6cd8c2 Bug 1611173 - Remove support for non-nsISupports XPIDL interfaces. r=nika
It used to be that some XPIDL interfaces were allowed to be non-nsISupports,
and were only used to hold a bunch of constants. It appears that we've now
had enough de-COM work happen that there are no longer any, so we can remove
support for this.

Differential Revision: https://phabricator.services.mozilla.com/D61008

--HG--
extra : moz-landing-system : lando
2020-01-24 23:13:30 +00:00
Boris Zbarsky
7a190b94ba Bug 1181957. Don't set up an AutoEntryScript if we're not planning to call script in nsXPCWrappedJS::DelegatedQueryInterface. r=mccr8
For builtinclass interfaces, or ones not declared in IDL, we don't call out
into scripted QueryInterface anyway, so we can return earlier, before we ever
set up the AutoEntryScript.

Differential Revision: https://phabricator.services.mozilla.com/D61005

--HG--
extra : moz-landing-system : lando
2020-01-25 00:13:56 +00:00
Oana Pop Rus
80b7b4208b Backed out 6 changesets (bug 1574865) for build bustages on a CLOSED TREE
Backed out changeset 5683b58e5a5c (bug 1574865)
Backed out changeset fd4311521f6b (bug 1574865)
Backed out changeset 6524f814a556 (bug 1574865)
Backed out changeset e800ad37740b (bug 1574865)
Backed out changeset c23741f62a09 (bug 1574865)
Backed out changeset f76fa61db00e (bug 1574865)
2020-01-25 01:23:07 +02:00
Ryan Hunt
62e6e75256 Bug 1574865 - Wasm: Allow stackmaps that are indexed at an x86 indirect call instruction with any register. r=jseward
Cranelift fails this assertion and it's not clear to me that there is any restriction inside
Cranelift that would limit the set of registers we'd need to check here.

Differential Revision: https://phabricator.services.mozilla.com/D58887

--HG--
extra : moz-landing-system : lando
2020-01-24 23:08:27 +00:00
Ryan Hunt
d5760c1b01 Bug 1574865 - Baldr: Add support for Cranelift stackmaps. r=jseward
This commit adds support for receiving stackmaps from Cranelift
and converting to wasm::Stackmaps. [1] will change the stackmap
representation in Cranelift to be the same as in Spidermonkey.

The stack overflow/interrupt trap handler stackmap is implemented by
sharing code with Ion.

[1] https://github.com/bytecodealliance/cranelift/pull/1317

Differential Revision: https://phabricator.services.mozilla.com/D58886

--HG--
extra : moz-landing-system : lando
2020-01-24 23:08:12 +00:00
Ryan Hunt
6bef31aa21 Bug 1574865 - Baldr: Translate reference type globals using slow OOL barriers. r=jseward
cranelift-wasm cannot express arbitrary control flow inside of
'global.get/set' easily. This makes it difficult to implement the pre/post write
barriers inline like the baseline compiler does.

[1] has a discussion about the ideal solution to problem, which involves a new IR
concept called templates. We will want to use that when it is ready.

In the short-term, this commit implements pre/post write barriers using slow OOL
functions and implements Wasm globals.

[1] https://github.com/bytecodealliance/cranelift/issues/1176

Differential Revision: https://phabricator.services.mozilla.com/D58885

--HG--
extra : moz-landing-system : lando
2020-01-24 23:07:52 +00:00
Ryan Hunt
c66fc5a031 Bug 1574865 - Baldr: Translate reference types and implement table/ref instruction translation. r=jseward
This commit translates the basic parts of reference types that does not
require any barriers. AnyRef,FuncRef,NullRef are translated to R32/R64. The
existing bulk-memory instructions are extended to operate on multiple tables,
and the new reference type instructions are implemented with instance calls.

Differential Revision: https://phabricator.services.mozilla.com/D58884

--HG--
extra : moz-landing-system : lando
2020-01-24 23:07:35 +00:00
Ryan Hunt
7d7bfb5ba7 Bug 1574865 - Wasm: Change compiler selection to allow Cranelift when reference types is enabled. r=jseward
This commit changes the wasm compiler feature detection bits to report that
cranelift supports reference types.

Differential Revision: https://phabricator.services.mozilla.com/D58883

--HG--
extra : moz-landing-system : lando
2020-01-24 23:07:15 +00:00
Ryan Hunt
f6a417ece8 Bug 1574865 - Wasm: Update encoding of nullref to match proposal. r=lth
This commit updates the encoding of nullref to match the one given in
the reference types proposal.

Spec: https://github.com/WebAssembly/reference-types/pull/66

Differential Revision: https://phabricator.services.mozilla.com/D58882

--HG--
extra : moz-landing-system : lando
2020-01-24 23:09:05 +00:00
Brindusan Cristian
d5beb3eb6b Backed out changeset 27bd6308aff7 (bug 1611173) for build bustages at runtests.py. CLOSED TREE 2020-01-25 00:19:04 +02:00
Andrew McCreight
f446abff25 Bug 1611173 - Remove support for non-nsISupports XPIDL interfaces. r=nika
It used to be that some XPIDL interfaces were allowed to be non-nsISupports,
and were only used to hold a bunch of constants. It appears that we've now
had enough de-COM work happen that there are no longer any, so we can remove
support for this.

Differential Revision: https://phabricator.services.mozilla.com/D61008

--HG--
extra : moz-landing-system : lando
2020-01-24 21:59:35 +00:00
Brindusan Cristian
d5dee0c16b Backed out changeset 64c8ab5ec067 (bug 1611173) for linting failure at xpidl.py. CLOSED TREE 2020-01-24 23:54:00 +02:00
Andrew McCreight
ba3997abc8 Bug 1611173 - Remove support for non-nsISupports XPIDL interfaces. r=nika
It used to be that some XPIDL interfaces were allowed to be non-nsISupports,
and were only used to hold a bunch of constants. It appears that we've now
had enough de-COM work happen that there are no longer any, so we can remove
support for this.

Differential Revision: https://phabricator.services.mozilla.com/D61008

--HG--
extra : moz-landing-system : lando
2020-01-24 21:34:24 +00:00
Andrea Marchesini
c4cb10712a Bug 1609990 - AgentCluster comparison in MessagePort and BroadcastChannel - part 3 - CloneDataPolicy, r=smaug,sfink,lth
Differential Revision: https://phabricator.services.mozilla.com/D60485

--HG--
extra : moz-landing-system : lando
2020-01-24 16:31:21 +00:00
Noemi Erli
796b3ee54c Backed out 7 changesets (bug 1574865, bug 1611302) for causing bustage in WasmCraneliftCompile.cpp CLOSED TREE
Backed out changeset 05de7598585a (bug 1574865)
Backed out changeset f89941b23fce (bug 1574865)
Backed out changeset 242e859e580f (bug 1574865)
Backed out changeset 247e358f4fc7 (bug 1574865)
Backed out changeset bdf099acc592 (bug 1574865)
Backed out changeset 48c545152a47 (bug 1574865)
Backed out changeset a6bd070aa7f2 (bug 1611302)

--HG--
extra : amend_source : dd5db386f287ce1ee2f35d5f4c23bc304a905204
2020-01-24 19:55:47 +02:00
Ryan Hunt
0051f47480 Bug 1574865 - Wasm: Allow stackmaps that are indexed at an x86 indirect call instruction with any register. r=jseward
Cranelift fails this assertion and it's not clear to me that there is any restriction inside
Cranelift that would limit the set of registers we'd need to check here.

Differential Revision: https://phabricator.services.mozilla.com/D58887

--HG--
extra : moz-landing-system : lando
2020-01-24 17:18:39 +00:00
Ryan Hunt
eedd76423b Bug 1574865 - Baldr: Add support for Cranelift stackmaps. r=jseward
This commit adds support for receiving stackmaps from Cranelift
and converting to wasm::Stackmaps. [1] will change the stackmap
representation in Cranelift to be the same as in Spidermonkey.

The stack overflow/interrupt trap handler stackmap is implemented by
sharing code with Ion.

[1] https://github.com/bytecodealliance/cranelift/pull/1317

Differential Revision: https://phabricator.services.mozilla.com/D58886

--HG--
extra : moz-landing-system : lando
2020-01-24 17:18:33 +00:00
Ryan Hunt
224723a46f Bug 1574865 - Baldr: Translate reference type globals using slow OOL barriers. r=jseward
cranelift-wasm cannot express arbitrary control flow inside of
'global.get/set' easily. This makes it difficult to implement the pre/post write
barriers inline like the baseline compiler does.

[1] has a discussion about the ideal solution to problem, which involves a new IR
concept called templates. We will want to use that when it is ready.

In the short-term, this commit implements pre/post write barriers using slow OOL
functions and implements Wasm globals.

[1] https://github.com/bytecodealliance/cranelift/issues/1176

Differential Revision: https://phabricator.services.mozilla.com/D58885

--HG--
extra : moz-landing-system : lando
2020-01-24 17:18:24 +00:00
Ryan Hunt
8f0c7e41ef Bug 1574865 - Baldr: Translate reference types and implement table/ref instruction translation. r=jseward
This commit translates the basic parts of reference types that does not
require any barriers. AnyRef,FuncRef,NullRef are translated to R32/R64. The
existing bulk-memory instructions are extended to operate on multiple tables,
and the new reference type instructions are implemented with instance calls.

Differential Revision: https://phabricator.services.mozilla.com/D58884

--HG--
extra : moz-landing-system : lando
2020-01-24 17:17:22 +00:00
Ryan Hunt
eb31fba15f Bug 1574865 - Wasm: Change compiler selection to allow Cranelift when reference types is enabled. r=jseward
This commit changes the wasm compiler feature detection bits to report that
cranelift supports reference types.

Differential Revision: https://phabricator.services.mozilla.com/D58883

--HG--
extra : moz-landing-system : lando
2020-01-24 17:16:57 +00:00
Ryan Hunt
2105015e66 Bug 1574865 - Wasm: Update encoding of nullref to match proposal. r=lth
This commit updates the encoding of nullref to match the one given in
the reference types proposal.

Spec: https://github.com/WebAssembly/reference-types/pull/66

Differential Revision: https://phabricator.services.mozilla.com/D58882

--HG--
extra : moz-landing-system : lando
2020-01-24 17:15:46 +00:00
Noemi Erli
e4b712dcb8 Backed out 4 changesets (bug 1609990) for causing Spidermonkey rust bustage CLOSED TREE
Backed out changeset 81a77bb3772c (bug 1609990)
Backed out changeset d4524885cb97 (bug 1609990)
Backed out changeset c95aac908332 (bug 1609990)
Backed out changeset bae3e50ab64d (bug 1609990)
2020-01-24 18:13:24 +02:00
Andrea Marchesini
ac6024f408 Bug 1609990 - AgentCluster comparison in MessagePort and BroadcastChannel - part 3 - CloneDataPolicy, r=smaug,sfink,lth
Differential Revision: https://phabricator.services.mozilla.com/D60485

--HG--
extra : moz-landing-system : lando
2020-01-24 15:25:24 +00:00
Jon Coppeard
bb2d06eb46 Bug 1611174 - Clear roots related to weak references earlier in shutdown to prevent browser leaks r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D60866

--HG--
extra : moz-landing-system : lando
2020-01-23 19:14:33 +00:00
Andrea Marchesini
0077863f8e Bug 1605566 - MessagePort + wasm - part 2 - implement JS::StructuredCloneScope::UnknownDestination, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59613

--HG--
extra : moz-landing-system : lando
2020-01-24 07:57:56 +00:00
Andrea Marchesini
8c690f0963 Bug 1605566 - MessagePort + wasm - part 1 - access scope via method in StructuredClone code, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59612

--HG--
extra : moz-landing-system : lando
2020-01-24 07:57:28 +00:00
Jan de Mooij
8f405ee5af Bug 1610189 - Don't reuse ObjectGroups of cross-realm arrays. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D60488

--HG--
extra : moz-landing-system : lando
2020-01-23 18:42:42 +00:00
Ryan Hunt
7609835778 Bug 1610535 - Update Cranelift to 98633eeb0d249efae23ee69ec03dc35b7d9bec17. r=bbouvier
Depends on D60873

Differential Revision: https://phabricator.services.mozilla.com/D60874

--HG--
extra : moz-landing-system : lando
2020-01-23 18:41:11 +00:00
Matthew Gaudet
37da65d9d5 Bug 1607854 - Centralize forwarding of LazyScript flags to CreateFromLazy r=djvj
Depends on D60714

Differential Revision: https://phabricator.services.mozilla.com/D60715

--HG--
extra : moz-landing-system : lando
2020-01-22 21:43:41 +00:00
Matthew Gaudet
389ae622e2 Bug 1607854 - Don't use Script to access ScriptSource object in BytecodeCompiler r=djvj
Differential Revision: https://phabricator.services.mozilla.com/D60714

--HG--
extra : moz-landing-system : lando
2020-01-22 21:39:44 +00:00
Matthew Gaudet
6ae96ce402 Bug 1607854 - Set field initializers as part of FunctionScriptEmitter::initScript r=djvj
Depends on D60712

Differential Revision: https://phabricator.services.mozilla.com/D60713

--HG--
extra : moz-landing-system : lando
2020-01-22 19:06:32 +00:00
Matthew Gaudet
bdbab5271c Bug 1607854 - Use parser-options for noScriptRval where possible r=tcampbell
Most of the complexity of this patch is trying to preserve the same level of
assertion in the future case where a BytecodeEmitter may or may not have a
pre-allocated script.

Differential Revision: https://phabricator.services.mozilla.com/D60712

--HG--
extra : moz-landing-system : lando
2020-01-23 00:17:23 +00:00
Andrew McCreight
3b96774e64 Bug 1611197, part 3 - Remove some unused hasinterface methods. r=nika
I found these via the code coverage report for XPCInlines.h.

Differential Revision: https://phabricator.services.mozilla.com/D60864

--HG--
extra : moz-landing-system : lando
2020-01-23 17:48:40 +00:00
Andrew McCreight
aed4575d2d Bug 1611197, part 2 - Remove some dead XPCCallContext methods. r=nika
The fields these methods deal with are not dead: they are just
interacted with via other means.

I found these via the code coverage report for XPCInlines.h.

Differential Revision: https://phabricator.services.mozilla.com/D60863

--HG--
extra : moz-landing-system : lando
2020-01-23 17:33:19 +00:00
Andrew McCreight
1d3263daa5 Bug 1611197, part 1 - Get rid of some unused XPCOM interface ancestor methods. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D60862

--HG--
extra : moz-landing-system : lando
2020-01-23 17:02:43 +00:00
Yoshi Cheng-Hao Huang
b4e01399cf Bug 1603330 - Update test to prevent JIT keeps the retval of wr.deref(). r=jonco
Move allocation into a function call can prevent JIT keeps the return
value of weakRef.deref().

Differential Revision: https://phabricator.services.mozilla.com/D60662

--HG--
extra : moz-landing-system : lando
2020-01-23 14:15:51 +00:00
Yoshi Cheng-Hao Huang
89dee44acc Bug 1604829 - Increment mark count only when the cell is marked. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D60832

--HG--
extra : moz-landing-system : lando
2020-01-23 13:20:40 +00:00
Edgar Chen
57d1c9d779 Bug 1575425 - Part 3: Add support for [AllowShared]; r=bzbarsky,jwalden
Differential Revision: https://phabricator.services.mozilla.com/D59999

--HG--
extra : moz-landing-system : lando
2020-01-23 14:18:53 +00:00
Edgar Chen
7572e4a211 Bug 1575425 - Part 2: Merge ArrayBuffer and SharedArrayBuffer in DOM binding; r=bzbarsky,jwalden
We need this for upcoming change which supports having [AllowShared] on
ArrayBuffer type in WebIDL.

Differential Revision: https://phabricator.services.mozilla.com/D59989

--HG--
extra : moz-landing-system : lando
2020-01-23 13:48:02 +00:00
Tom Schuster
4405f2cf4f Bug 1606084 - Add support for Boolean, String, Number and Date objects to ValueToSource. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D60373

--HG--
extra : moz-landing-system : lando
2020-01-23 11:23:42 +00:00
Tom Schuster
b464660235 Bug 1606084 - ValueToSource should be able to handle wrapped objects. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D60312

--HG--
extra : moz-landing-system : lando
2020-01-23 11:23:42 +00:00
Jon Coppeard
01a0045b12 Bug 1609402 - Improve flakey test that relied on being able to allocate 1MB of GC things in under 5 seconds r=sfink
Tests that involve timing are often problematic.  Here we're checking that hitting the heap limit inside the five second time limit we set for skipping last ditch GCs doesn't trigger a GC, but allocating enough to hit this limit can take longer than five seconds on a busy system.

The patch makes the max heap size much smaller and so reduces the possibility that that this can happen.

Differential Revision: https://phabricator.services.mozilla.com/D60655

--HG--
extra : moz-landing-system : lando
2020-01-22 18:09:56 +00:00
Jon Coppeard
88755e5612 Bug 1610802 - Add test code for SparseBitmap r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D60246

--HG--
extra : moz-landing-system : lando
2020-01-22 18:15:58 +00:00
caroline
c4fb2ca61c Bug 1609504 - Add parseInfo to sharedContext. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D60334

--HG--
extra : moz-landing-system : lando
2020-01-22 19:48:55 +00:00
Eric Rahm
1eef62fbd1 Bug 1610387 - Remove nsAutoPtr usage from js/xpconnect/. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D60638

--HG--
extra : moz-landing-system : lando
2020-01-22 20:27:41 +00:00
Yoshi Cheng-Hao Huang
10b18ed113 Bug 1610621 : ClearKeptObjects() should return undefined. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D60633

--HG--
extra : moz-landing-system : lando
2020-01-22 11:03:20 +00:00
Jan de Mooij
d7c2f70e62 Bug 1607670 part 6 - Add tests. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D59508

--HG--
extra : moz-landing-system : lando
2020-01-21 23:54:13 +00:00
Jan de Mooij
6184fcabd8 Bug 1607670 part 5 - Fix some issues with this-creation in Ion. r=tcampbell,anba
In particular, we can't do effectful .prototype lookups in CreateThisFromIon and
elsewhere before the call instruction. This patch returns NullValue from
CreateThisFromIon in that case and changes LCallGeneric to take the slow
invoke path when it sees this value.

Differential Revision: https://phabricator.services.mozilla.com/D59507

--HG--
extra : moz-landing-system : lando
2020-01-22 14:05:28 +00:00
Jan de Mooij
68efc7a5af Bug 1607670 part 4 - Add JSFunction::constructorNeedsUninitializedThis helper function and some asserts. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D59506

--HG--
extra : moz-landing-system : lando
2020-01-21 14:18:13 +00:00
Jan de Mooij
3b4f46a28e Bug 1607670 part 3 - Split jit::CreateThis in CreateThisFromIC and CreateThisFromIon. r=tcampbell
The callers are very different and have different constraints, especially in
later patches in this stack.

Differential Revision: https://phabricator.services.mozilla.com/D59505

--HG--
extra : moz-landing-system : lando
2020-01-21 14:17:31 +00:00
Jan de Mooij
817caff0d6 Bug 1607670 part 2 - Remove calleeScript argument from js::CreateThis. r=tcampbell
We can call isDerivedClassConstructor() on the function instead.

Differential Revision: https://phabricator.services.mozilla.com/D59503

--HG--
extra : moz-landing-system : lando
2020-01-21 14:16:51 +00:00
Jan de Mooij
742be26ab4 Bug 1607670 part 1 - Remove unnecessary isConstructor check from IonBuilder::createThis. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D59502

--HG--
extra : moz-landing-system : lando
2020-01-21 14:16:13 +00:00
Jon Coppeard
448ebaa6f3 Bug 1607444 - Only collect the self hosting zone once at runtime initialization r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D60153

--HG--
extra : moz-landing-system : lando
2020-01-22 11:22:02 +00:00
Narcis Beleuzu
cb54b0227b Backed out 5 changesets (bug 1605566) for wpt failures on shared.html . CLOSED TREE
Backed out changeset 622939cef438 (bug 1605566)
Backed out changeset ab98304e6c84 (bug 1605566)
Backed out changeset 7eab8fd2b62e (bug 1605566)
Backed out changeset 99f61f25ed86 (bug 1605566)
Backed out changeset 77bdf4f86052 (bug 1605566)
2020-01-22 12:58:13 +02:00
Andrea Marchesini
14b6fd8572 Bug 1605566 - MessagePort + wasm - part 2 - implement JS::StructuredCloneScope::UnknownDestination, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59613

--HG--
extra : moz-landing-system : lando
2020-01-22 09:32:48 +00:00
Andrea Marchesini
f27a63df82 Bug 1605566 - MessagePort + wasm - part 1 - access scope via method in StructuredClone code, r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D59612

--HG--
extra : moz-landing-system : lando
2020-01-22 09:32:23 +00:00
Chris Fallin
4192db83c2 Bug 1610192: Remove unneeded array-index in ObjLiteral array mode. r=mgaudet
The ObjLiteral format allows for names (as atom indices) or numeric
indices to be attached to each property in the literal. The numeric case
is limited to 23 bits by the packed format in memory.

The object-literal case ({}-literal with some numeric indices) already
checks for in-range values before deciding to use the ObjLiteral
infrastructure, but the array case did not check this.

Fortunately, the indices in the array case were only used as a sanity
check for debug-mode assertions, and never for any actual indexing
operation, so no out-of-bounds behavior could result, even before this
fix. However, the sanity-check assert will fire at
object-construction-from-ObjLiteral time in cases where the ObjLiteral
mode should not have been used, because no range check was done at
ObjLiteral-construction time.

This change removes the use of indices for array-mode ObjLiterals
entirely.

Differential Revision: https://phabricator.services.mozilla.com/D60474

--HG--
extra : moz-landing-system : lando
2020-01-21 21:58:46 +00:00
Emilio Cobos Álvarez
8a7906f381 Bug 1610064 - Avoid including StyleSheet.h from Document.h. r=nordzilla,firefox-style-system-reviewers
This in turn requires fixing various other include hell / missing include
issues.

Differential Revision: https://phabricator.services.mozilla.com/D60337

--HG--
extra : moz-landing-system : lando
2020-01-21 20:31:05 +00:00
Mihai Alexandru Michis
6c896736ce Backed out changeset 5ea36d82a283 (bug 1610192) for causing SM bustages in bug1610192.js
CLOSED TREE

--HG--
extra : histedit_source : c0fb8a69547fc8a0a831313881bed5f419197c9c
2020-01-21 21:11:43 +02:00
Mihai Alexandru Michis
4bb21390cf Backed out changeset d389e3aa4522 (bug 1424934) as requested by jonco:
CLOSED TREE

--HG--
extra : amend_source : 3411395770db4580f2600d7a2afefad59ab0ddfb
extra : histedit_source : 440305ec824270948467cb49c08ff0fe7ff02951
2020-01-21 20:40:41 +02:00
Mihai Alexandru Michis
8501aaf6a6 Backed out changeset dbd45b7bb449 (bug 1609054) as requested by jonco:
CLOSED TREE

--HG--
extra : histedit_source : b9fd52fc5b244076c183ae46cc36fd837b8b9e8d
2020-01-21 20:39:38 +02:00
Chris Fallin
43a08cb2c0 Bug 1610192: Remove unneeded array-index in ObjLiteral array mode. r=mgaudet
The ObjLiteral format allows for names (as atom indices) or numeric
indices to be attached to each property in the literal. The numeric case
is limited to 23 bits by the packed format in memory.

The object-literal case ({}-literal with some numeric indices) already
checks for in-range values before deciding to use the ObjLiteral
infrastructure, but the array case did not check this.

Fortunately, the indices in the array case were only used as a sanity
check for debug-mode assertions, and never for any actual indexing
operation, so no out-of-bounds behavior could result, even before this
fix. However, the sanity-check assert will fire at
object-construction-from-ObjLiteral time in cases where the ObjLiteral
mode should not have been used, because no range check was done at
ObjLiteral-construction time.

This change removes the use of indices for array-mode ObjLiterals
entirely.

Differential Revision: https://phabricator.services.mozilla.com/D60474

--HG--
extra : moz-landing-system : lando
2020-01-21 18:05:22 +00:00
Matthew Gaudet
af08f70624 Bug 1610340 - Remove dead Scope::create methods r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D60461

--HG--
extra : moz-landing-system : lando
2020-01-21 18:02:38 +00:00
Matthew Gaudet
2146b82ef4 Bug 1610340 - Remove deferred allocation switch r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D60452

--HG--
extra : moz-landing-system : lando
2020-01-21 18:02:17 +00:00
Matthew Gaudet
4787274b35 Bug 1610340 - Always track Function tree r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D60451

--HG--
extra : moz-landing-system : lando
2020-01-21 18:01:44 +00:00
Matthew Gaudet
7485c8dd75 Bug 1610340 - Rename remaining use of internBodyScope and simplify to better reflect usage r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D60449

--HG--
extra : moz-landing-system : lando
2020-01-21 17:02:26 +00:00
Matthew Gaudet
6e131ff1b0 Bug 1610340 - Always defer allocation of Scopes r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D60448

--HG--
extra : moz-landing-system : lando
2020-01-21 17:02:08 +00:00
Matthew Gaudet
92addc057f Bug 1610340 - Always defer the allocation of LazyScript r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D60447

--HG--
extra : moz-landing-system : lando
2020-01-21 17:01:47 +00:00
Matthew Gaudet
8b9934a880 Bug 1610340 - Always defer allocation of RegExp objects r=tcampbell
Outside of BinAST, which holds onto the eager path for now.

Differential Revision: https://phabricator.services.mozilla.com/D60446

--HG--
extra : moz-landing-system : lando
2020-01-21 17:01:27 +00:00
Matthew Gaudet
6c32941ab0 Bug 1610340 - Don't allocate functions when creating FunctionBoxes from a FunctionCreationData r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D60445

--HG--
extra : moz-landing-system : lando
2020-01-21 17:01:09 +00:00
Matthew Gaudet
34a52301a6 Bug 1610340 - Always defer allocation of BigInts r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D60444

--HG--
extra : moz-landing-system : lando
2020-01-21 17:00:58 +00:00
yulia
2d3f3c73c5 Bug 1610447 - Update Reflect.parse for OptionalChain; r=arai
Differential Revision: https://phabricator.services.mozilla.com/D60490

--HG--
extra : moz-landing-system : lando
2020-01-21 15:58:12 +00:00
Sylvestre Ledru
187e9bafaf Bug 1519636 - Automatically reformat recent changes using clang-format r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D60354

--HG--
extra : moz-landing-system : lando
2020-01-21 09:51:27 +00:00
Nazım Can Altınova
f70859c47d Bug 1609674 - Add innerWindowID param to AUTO_PROFILER_TEXT_MARKER_CAUSE and use that macro for setTimeout callback marker. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D60270

--HG--
extra : moz-landing-system : lando
2020-01-20 18:53:09 +00:00
Emilio Cobos Álvarez
256c124f94 Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj
This was done by:

This was done by applying:

```
diff --git a/python/mozbuild/mozbuild/code-analysis/mach_commands.py b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
index 789affde7bbf..fe33c4c7d4d1 100644
--- a/python/mozbuild/mozbuild/code-analysis/mach_commands.py
+++ b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
@@ -2007,7 +2007,7 @@ class StaticAnalysis(MachCommandBase):
         from subprocess import Popen, PIPE, check_output, CalledProcessError

         diff_process = Popen(self._get_clang_format_diff_command(commit), stdout=PIPE)
-        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format]
+        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format, '-sort-includes']

         if not output_file:
             args.append("-i")
```

Then running `./mach clang-format -c <commit-hash>`

Then undoing that patch.

Then running check_spidermonkey_style.py --fixup

Then running `./mach clang-format`

I had to fix four things:

 * I needed to move <utility> back down in GuardObjects.h because I was hitting
   obscure problems with our system include wrappers like this:

0:03.94 /usr/include/stdlib.h:550:14: error: exception specification in declaration does not match previous declaration
0:03.94 extern void *realloc (void *__ptr, size_t __size)
0:03.94              ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/malloc_decls.h:53:1: note: previous declaration is here
0:03.94 MALLOC_DECL(realloc, void*, void*, size_t)
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozilla/mozalloc.h:22:32: note: expanded from macro 'MALLOC_DECL'
0:03.94     MOZ_MEMORY_API return_type name##_impl(__VA_ARGS__);
0:03.94                                ^
0:03.94 <scratch space>:178:1: note: expanded from here
0:03.94 realloc_impl
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozmemory_wrap.h:142:41: note: expanded from macro 'realloc_impl'
0:03.94 #define realloc_impl mozmem_malloc_impl(realloc)

   Which I really didn't feel like digging into.

 * I had to restore the order of TrustOverrideUtils.h and related files in nss
   because the .inc files depend on TrustOverrideUtils.h being included earlier.

 * I had to add a missing include to RollingNumber.h

 * Also had to partially restore include order in JsepSessionImpl.cpp to avoid
   some -WError issues due to some static inline functions being defined in a
   header but not used in the rest of the compilation unit.

Differential Revision: https://phabricator.services.mozilla.com/D60327

--HG--
extra : moz-landing-system : lando
2020-01-20 16:19:48 +00:00
Emilio Cobos Álvarez
b4600e67fc Bug 1609996 - Run check_spidermonkey_style.py --fixup. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60325

--HG--
extra : moz-landing-system : lando
2020-01-20 16:18:40 +00:00
Emilio Cobos Álvarez
aa3a695712 Bug 1609996 - Remove mozilla/Move.h. r=froydnj
rg -l 'mozilla/Move.h' | xargs sed -i 's/#include "mozilla\/Move.h"/#include <utility>/g'

Further manual fixups and cleanups to the include order incoming.

Differential Revision: https://phabricator.services.mozilla.com/D60323

--HG--
extra : moz-landing-system : lando
2020-01-20 16:18:20 +00:00
Emilio Cobos Álvarez
5cd5e6f148 Bug 1609996 - Remove mozilla::Swap in favor of std::swap. r=froydnj
Now mfbt/Move.h is empty except for that excellent comment about move
semantics... Should we put it somewhere else and delete the header as a
follow-up? Or just delete the header and carry on?

Differential Revision: https://phabricator.services.mozilla.com/D60297

--HG--
extra : moz-landing-system : lando
2020-01-20 16:17:06 +00:00
yulia
364f826b64 Bug 1566143 - Add tests for Optional Chaining r=arai
Differential Revision: https://phabricator.services.mozilla.com/D59870

--HG--
extra : moz-landing-system : lando
2020-01-20 16:03:51 +00:00
yulia
311ade11ad Bug 1566143 - Add Bytecode for Optional Chaining; r=arai
Differential Revision: https://phabricator.services.mozilla.com/D59869

--HG--
extra : moz-landing-system : lando
2020-01-20 16:03:48 +00:00
yulia
64cb1cb24e Bug 1566143 - Update parser for optional chaining r=arai
Differential Revision: https://phabricator.services.mozilla.com/D58974

--HG--
extra : moz-landing-system : lando
2020-01-20 16:03:46 +00:00
yulia
76ad24d4d9 Bug 1566143 - refactor coordnode r=arai
Differential Revision: https://phabricator.services.mozilla.com/D58973

--HG--
extra : moz-landing-system : lando
2020-01-20 16:03:44 +00:00
Ryan Hunt
6311d3e0e4 Bug 1608941 - Update cranelift setting keys for rename. r=bbouvier
Depends on D60271

Differential Revision: https://phabricator.services.mozilla.com/D60272

--HG--
extra : moz-landing-system : lando
2020-01-20 13:22:12 +00:00
Ryan Hunt
6dd534025d Bug 1608941 - Bump cranelift to b01bee7c5269f72196b42e8bdd874425166bf429. r=bbouvier
Differential Revision: https://phabricator.services.mozilla.com/D60271

--HG--
extra : moz-landing-system : lando
2020-01-20 13:21:55 +00:00
Yoshi Cheng-Hao Huang
133ce9d613 Bug 1609636 - Part 2: Add mochitests for WeakRef in browser. r=smaug,jonco
Differential Revision: https://phabricator.services.mozilla.com/D60155

--HG--
extra : moz-landing-system : lando
2020-01-20 12:35:30 +00:00
Yoshi Cheng-Hao Huang
e1ea5b98a5 Bug 1609636 - Part 1: Add ClearKeptObjects API. r=jonco,smaug
From WeakRef proposal, [1], ECMAScript implementations are expected to call
ClearKeptObjects when a synchronous sequence of ECMAScript execution completes.

[1]: https://tc39.es/proposal-weakrefs/#sec-clear-kept-objects

Differential Revision: https://phabricator.services.mozilla.com/D60154

--HG--
extra : moz-landing-system : lando
2020-01-20 12:49:11 +00:00
Lars T Hansen
5c79ccc8e1 Bug 1608791 - Harden the Rabaldr register wrappers. r=rhunt
By cleaning up the register set APIs very slightly we can simplify the wrappers and
make space for meaningful assertions.

Differential Revision: https://phabricator.services.mozilla.com/D59673

--HG--
extra : moz-landing-system : lando
2020-01-20 12:23:12 +00:00
Lars T Hansen
e980d0b059 Bug 1609138 - Clean up float registers on arm64. r=rhunt
Create a clearer distinction between the register's Encoding, which is
its hardware name, and its Code, which is a dense encoding of
bitwidth+Encoding along with a distinguished Invalid value.  These
concepts exist already but it gets out of hand when the FloatRegister
uses a Code to encode the Encoding.

Make FloatRegister contain separate fields for bitwidth, encoding, and
validity, as it does on other platforms.

Add assertions on validity of inputs and on the validity of the
FloatRegister for some operations.  And tidy up some, and rearrange
the file to mirror the x86 file as much as possible.

Expand the register name table so that it covers the possible range of
Code and so that we won't reference the table OOB.

Differential Revision: https://phabricator.services.mozilla.com/D59912

--HG--
extra : moz-landing-system : lando
2020-01-20 12:22:23 +00:00
Bogdan Tara
4dbee2136f Backed out 2 changesets (bug 1609138, bug 1608791) for Assembler-vixl.h related bustage CLOSED TREE
Backed out changeset 7d2c3216d225 (bug 1608791)
Backed out changeset d2b7ff305b35 (bug 1609138)
2020-01-20 09:57:11 +02:00
Lars T Hansen
716cc538b0 Bug 1608791 - Harden the Rabaldr register wrappers. r=rhunt
By cleaning up the register set APIs very slightly we can simplify the wrappers and
make space for meaningful assertions.

Differential Revision: https://phabricator.services.mozilla.com/D59673

--HG--
extra : moz-landing-system : lando
2020-01-20 07:34:31 +00:00