The hack caused bytecode for block declaration instantiation to be assigned the
location of the first statement inside the block. Unfortunately it made the
source view of the debugger client seem out of sync with the Scopes panel: when
paused after hitting a breakpoint on that line or stepping there, the source
panel showed our location as being inside the block, but the Scopes panel did
not show a block scope.
Two server tests required fixes (also r=jimb, in a separate patch in the same
bug).
test_stepping-08.js assumes that stepping into a function stops at the first
statement in the function. This is usually true. However, now we are removing a
hack, such that our actual behavior for this *particular* function is to stop
at the opening curly brace. This causes the test to fail, without anything
really being broken.
The test is intended to test the interaction of stepping and breakpoints, so
the fix that stays truest to the purpose of the test is to change the debuggee
here to a function with no prologue instructions, so that we don't stop at the
opening brace.
test_blackboxing-01.js is a similar story.
--HG--
extra : rebase_source : 7afc6cc039f313889ee08cdd93ce114691efa1e9
extra : histedit_source : dc274b7cefbb96574c8207a78db05d80238d291d
This also fixes a bug in that code: it skipped the first stopping point in the
function (before the first instruction).
--HG--
extra : rebase_source : 9682c42ba7ba09b1de475338c83479e1da30a6be
For ARM64 it will be the case initially that we'll have baseline but
not ion. Thus we need to be able to disable asm.js support in some
cases when wasm is supported (since baseline does not support asm.js)
and to make the logic that selects the compiler to use slightly more
subtle.
As a result the old logic of "just use Ion as a fallback" needs to go,
but we can now move that into HasCompilerSupport() and the result is
cleaner overall.
--HG--
extra : rebase_source : 2d50f56ecd653b08e1441391722ed0797a322600
No one uses this defines even if SpiderMonkey and We forget to remove this by bug 1423846
MozReview-Commit-ID: 2MOavTX7zrf
--HG--
extra : rebase_source : 3f881bd28ba2c762d9d0876d58330cf99d35ad49
Removing #define XRE_DONT_PROTECT_DLL_LOAD from plugin-container.cpp and xpcshell.cpp allows the #included nsWindowsWMain.cpp to protect DLL loads much earlier in the plugin process startup.
MozReview-Commit-ID: HbgyfvljvFs
--HG--
extra : rebase_source : dccdabb2e5bee4472d5aef9400a58cb0e397c112
extra : histedit_source : da248fc6fbdf96f30979f3a0396aefcf4bfcd5d9
- fix a bug where the wrong register was picked up
- support wasm out-of-bounds traps
- support wasm illegal instruction traps
- support (float,float)->float callout signature
- support wait() and wake() callout signatures
--HG--
extra : rebase_source : 9ec124e9e629da245360a80a4a6974d71c9a87c8
extra : source : ba2afb5aa6915b1112d0f58ab653949bec8d07fc
- Implement `InvertCondition(DoubleCondition)`
- Implement wasm buffer management
- Implement `bindLater()`
- Implement a better definition of `Unreachable()` that does not
change the PC or the registers
- Add `IsMovz()` and `IsMovk()` predicates, we'll need them
- Bugfix: Patching functions must flush the icache for the updated locs
- Bugfix: `AbiArgIter()` must handle 64-bit ints
- Bugfix: The wasm TLS register must be a non-volatile register
- Bugfix: HINT + NOP is not that hard, so clean it up
--HG--
extra : rebase_source : d7a8d400306e497540c6b628133fcaf8d33c3e98
extra : source : 6e6172a81661927823fb58026b05fe8384b9faeb
AutoFlushIcache::flush() was ifdef'd out on ARM64 without any
mechanism to signal that, but that's wrong. Reorganize ifdefs for
this function and also for AutoFlushICache::setInhibit() so that a new
port will not fail to detect that these functions do nothing unless
the new platform opts in to the code that does something.
--HG--
extra : rebase_source : c2979b897af71acd5a6943332a92d431c7656576
We introduce two new RAII types, ScratchTagScope and
ScratchTagScopeRelease, documented in MacroAssembler-arm64.h with
references from other header files. The former either allocates a
suitable scratch register *or* it resolves to value.typeReg(), as
appropriate. A reference to the ScratchTagScope variable is then
passed to splitTagForTest(); that function no longer allocates secret
scratch registers.
ScratchTagScopeRelease creates a hole in the scope of the tag register
binding and is used when we call to masm functions that may need the
bound scratch register.
Masm functions that use scratch registers without acquiring them with
any kind of RAII binding are not fixed by this patch, but they were
always living dangerously anyway.
--HG--
extra : rebase_source : e80757b70f7e23451f0a53492ad6bbb8d2bb3299
nsXPTMethodInfo is a nicer structure to use, and this paves the way
for making the two types different, which will be needed if I make
XPTMethodDescriptor statically allocated.
Also, use the higher level accessor methods.
MozReview-Commit-ID: JbRdLU5Wwyt
--HG--
extra : rebase_source : 48f6c4e98e43c75006ceeb02bd727b59d3726681
This is needed to allow interposition for gBrowser, which will change from a DOM node
into a plain JS object in Bug 1392352. An object can set the `requiresAddonInterpositions`
property to enable this feature.
MozReview-Commit-ID: 4Uw5xzgZtXO
--HG--
extra : rebase_source : 203fe656da3ecd514d4e27ad0eeb4885cf4e9b0b
The jit-test basic/testTypedArrayInit does a simple loop that constructs many, many strings via concatenation of 6 parts. The string is only used if the test fails, but generating that string with GenerationalGC with the nursery enabled is painfully slow due to the extra checks. (It isn't fast without the nursery, but it's much worse with.) Since this is irrelevant to what the test is testing, I made it construct the string only if needed. 180+ seconds goes down to about 6.
According to perf, the time is all spent in poisoning the nursery when clearing it, over and over again. Disabling poisoning makes it dramatically faster.
--HG--
extra : rebase_source : 138dda7c61aa6327eb9bf6471a9aff0b583e65ce
This avoids a redundant alloc and copy in `PutBuffer`. All existing callers
were destroying the passed in buffer after the call.
--HG--
extra : rebase_source : 065505219d70d26bad49c7eba2cec8edf0e9939d
extra : amend_source : 118eddad4dc901da02817c788fb98f6f4c85a3f0
extra : source : 7f0cedfb4bd85bfe1a523168019864c9c6c0e665
This avoids a redundant alloc and copy in `PutBuffer`. All existing callers
were destroying the passed in buffer after the call.
--HG--
extra : rebase_source : 39a21686becedf32c38e58fa832ae47845b2f5e0