Deleting lines in part 1 caused two tests to break, because they check
the line numbers for source files. The devtools part of the patch was
automatically generated.
MozReview-Commit-ID: DrDZeyVnpE0
--HG--
extra : rebase_source : 72c1623015f029a5adef20669cc102c568d3b67e
This patch was autogenerated by my decomponents.py
It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.
It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.
It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)
MozReview-Commit-ID: DeSHcClQ7cG
--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b
Before this patch, we would only ever add hits on instructions that have source
notes. That is usually right, because that's the only time the line number
changes.
But at the start of a script, this makes us skip instructions until we reach
one with source notes. This interacts badly with SRC_XDELTA notes, which can
appear on any instruction, or even between instructions, because all it means
is "bump the source note pc". So "skip instructions until we see source notes"
is nondeterministic because of SRC_XDELTA's meaninglessness.
The fix is to add hits on the first non-prologue instruction of a script, as
well as instructions that have source notes.
--HG--
extra : rebase_source : be93186c27bfe290fbaaf3dcd2915f26d93f1381
Scripts can have null as a filename, as evidenced by jit-test/tests/basic/null-filename-Error.js
--HG--
extra : rebase_source : 7d88278f9cc7c527702f9af47e320cff7ed1ae8b
In this patch we also expose a script's compartment in jsfriendapi.h
MozReview-Commit-ID: LgoN8ANLgxI
--HG--
extra : rebase_source : a9a29e538041ac574b6b44fab166a7838fce54ac
In this patch we also expose a script's compartment in jsfriendapi.h
MozReview-Commit-ID: JGTLygZ6DK5
--HG--
extra : rebase_source : 585edbdbc74044f2d644f5046513786ee4f42a2f
Instead of using the idea of a 'live' counter, which is flawed both because we
may create prefix strings that are very long and because it will confuse
different assemblers at the same live level, use a one-character tag that is
quasi-unique (it wraps around every 62 assemblers). This is more robust and
more correct, and still good enough for what we need the disassembler for.
--HG--
extra : source : 86a236b6f44ce584a1ede071c39cd338c2f3f922
extra : amend_source : 17b830d8bdb70d6e42649bc89d99fbd06d0b2d20
Several things happening here:
1) Rename the APIs to include the word 'Check' and shorten the names slightly
2) Implement for ARM and implement stubs for ARM64
3) Clean up Rabaldr's use of these functions, which was a little messy
--HG--
extra : source : 271c7c15fab7a6e9bbee8ecb5fc930f66b25a6c8