When compiling a script with lazy inner functions, we now know the
scopes that those inner functions belong too and need to save this
information on the inner function itself (as enclosingScope). This patch
makes that process more explicit in JSScript initialization so we can
better reason about error / OOM paths.
Depends on D22319
Differential Revision: https://phabricator.services.mozilla.com/D22320
--HG--
extra : moz-landing-system : lando
Use an ExitScope similar to to XDRScript for more consistency.
Depends on D22316
Differential Revision: https://phabricator.services.mozilla.com/D22317
--HG--
extra : moz-landing-system : lando
Compute this flag directly from BytecodeEmitter data structures instead
of needing to access the partially initialized script while setting its
own flags.
Depends on D22313
Differential Revision: https://phabricator.services.mozilla.com/D22315
--HG--
extra : moz-landing-system : lando
This removes the redundant set of TreatAsRunOnce which is instead set by
CompileOptions before we start compiling. The IsModule flag is now set
directly similar to IsForEval.
Differential Revision: https://phabricator.services.mozilla.com/D22313
--HG--
extra : moz-landing-system : lando
Debugger or OOM errors can close the generator after JSOP_ASYNCAWAIT enqueued
a promise job for AsyncFunctionResume. Change AsyncFunctionResume to handle
this case and also try to reject the result promise with the pending OOM error
if possible.
Differential Revision: https://phabricator.services.mozilla.com/D22301
--HG--
extra : moz-landing-system : lando
- Remove nullptr checks for `calleeTemplate` because it can't be null for
function frames.
- Always skip over `InterpretGeneratorResume` to ensure baseline sees the same
number of debugger enter-frame events as interpreter.
Differential Revision: https://phabricator.services.mozilla.com/D22299
--HG--
extra : moz-landing-system : lando
"browser.firstrun.*" seems to have been unused since the end of XUL-based
Fennec, whereas the code referencing the "browser.snippets.*" prefs was removed
in bug 1482836.
Differential Revision: https://phabricator.services.mozilla.com/D20862
--HG--
extra : moz-landing-system : lando
They're only used in CodeGenerator.cpp so we can now move some of the helper
classes and templates from the header file to the cpp file.
Differential Revision: https://phabricator.services.mozilla.com/D22278
--HG--
extra : moz-landing-system : lando
Bulk memory operations can be enabled at the same time Cranelift is, in which
case partial initialization of elements/segments/etc. implementation is
statically implemented, but dynamically controlled by wasmBulkMemoryOps().
Cranelift doesn't implement bulk memory operations yet, so wasmBulkMemoryOps()
returns false, while the static behavior is there. Thus, we have to temporarily
disable partial initialization tests when running with Cranelift. This will go
away when Cranelift supports bulk memory operations.
Differential Revision: https://phabricator.services.mozilla.com/D22271
--HG--
extra : moz-landing-system : lando
In bug 1264235 we have some indication that observed bugs with the
startup cache might have been resolved, but we don't really know
until we collect data. Collecting these stats will give us the
ability to have more certainty that the startup cache is functioning
correctly in the wild.
Differential Revision: https://phabricator.services.mozilla.com/D19573
--HG--
extra : moz-landing-system : lando
The tab_test() would compile and link the module for every element of
the result array, but the module should be invariant for the result
array, so this is not necessary.
Differential Revision: https://phabricator.services.mozilla.com/D21933
--HG--
extra : rebase_source : f17933261df6f2c36100a77dee1b9d7d735cd9d9
extra : histedit_source : 962b579d49b386130beccb7096da286c8c811d48
Our bounds checking is a little too stringent - we disallow
zero-length operations at the edge of the memory, table, or segment,
but the spec allows that, a behavior inherited (from active segments)
from the MVP. It's also a natural consequence of how we handle bounds
checks for non-zero length operations.
So loosen the tests slightly and adapt the test cases, testing both at
the edge of the table/memory/segment and one past that. In the former
case we allow the operation, in the latter not.
Differential Revision: https://phabricator.services.mozilla.com/D21929
--HG--
extra : rebase_source : 0e236edf655c6a35b5dfbf2f535b197a283a7c20
extra : histedit_source : 221e3ca5d35056f02182fcc34a45df53114ddebf
Also removes the old callVM overload so new code in BaselineCompiler must use
the new mechanism.
Differential Revision: https://phabricator.services.mozilla.com/D22059
--HG--
extra : moz-landing-system : lando
We had multiple overloads for js::Throw so I renamed the one we call here
for JSOP_THROW to js::ThrowOperation.
Differential Revision: https://phabricator.services.mozilla.com/D22058
--HG--
extra : moz-landing-system : lando