The next patches want to make some changes to the ICEntries version. The
simplest way to do that is by removing the abstraction.
Differential Revision: https://phabricator.services.mozilla.com/D26675
--HG--
extra : moz-landing-system : lando
This lets us OSR from Baseline Interpreter => Baseline Compiler code in the
prologue.
Differential Revision: https://phabricator.services.mozilla.com/D26532
--HG--
extra : moz-landing-system : lando
Also simplifies GetPcScript a bit by using an early return instead of a nullptr
retAddr.
Differential Revision: https://phabricator.services.mozilla.com/D26519
--HG--
extra : moz-landing-system : lando
This renames addModifierException -> allowGettingNextTokenWithAllowRegExp. The
new name is clunky, but the code is simpler.
Adding DoNotWant mode in condExpr() and classMember() is both what we actually
meant all along and necessary. It is necessary because the new assertion scheme
is actually pickier; calling matchToken with AllowDiv when we already called
allowGettingNextTokenWithAllowRegExp now flunks the assertion.
Differential Revision: https://phabricator.services.mozilla.com/D25311
--HG--
extra : moz-landing-system : lando
propertyName() has three callers, corresponding to ObjectLiteral,
ObjectBindingPattern, and ClassDeclaration. In each case the next token must be
neither Div nor RegExp.
Differential Revision: https://phabricator.services.mozilla.com/D25821
--HG--
extra : moz-landing-system : lando
This helps us get rid of several uses of addModifierException, as the next few
patches show. It will also be used to implement ASI for fields. (In most
contexts, the next token after a missing semicolon needs to be scanned in
SlashIsRegExp mode. In a ClassBody it's different; the next token must be
neither Div nor RegExp in a syntactically valid program.)
Differential Revision: https://phabricator.services.mozilla.com/D25819
--HG--
extra : moz-landing-system : lando
Also renames ModifierException::OperandIsNone -> SlashIsRegExpOK, although it
doesn't matter too much, as its days are numbered.
Differential Revision: https://phabricator.services.mozilla.com/D25818
--HG--
extra : moz-landing-system : lando
It turns out to be vestigial. The comment being deleted here says,
"Comma/semicolon cases are also gotten as operators (None)", but this is no
longer true. Both are scanned as Operand now; and so are RightCurly,
RightParen, and the various other tokens listed in yieldExpression(), for which
an exception was once necessary.
Differential Revision: https://phabricator.services.mozilla.com/D25310
--HG--
extra : moz-landing-system : lando
Any code that calls StringBuffer::finishString() is creating a
JSFlatString from a StringBuffer's backing buffer. That backing buffer should
always be allocated on the new String Arena heap.
This new class will ensure that this behavior is statically enforced by the
compiler.
Differential Revision: https://phabricator.services.mozilla.com/D25707
--HG--
extra : moz-landing-system : lando
With this change, the use of SlashIsInvalid at the top of
GeneralParser<>::classMember obliges us to use the same modifier when getting
the same token later (in both classMember and propertyName).
Differential Revision: https://phabricator.services.mozilla.com/D26928
--HG--
extra : moz-landing-system : lando
This is an artifact of the same-compartment realm changes. The test
confuses CCWs and WindowProxies.
Differential Revision: https://phabricator.services.mozilla.com/D26847
--HG--
extra : moz-landing-system : lando
This adds an option to the 'newGlobal' shell command to create globals
that have a simple WindowProxy. This is intended for testing code that
distinguishes between GlobalObject and WindowProxy. No typical window
behavior such as navigation will be supported.
Differential Revision: https://phabricator.services.mozilla.com/D26837
--HG--
extra : moz-landing-system : lando
This patch fixes a few cases in testing functions that do not correctly
handling WindowProxy wrappers. This mostly involves passing the
stopAtWindowProxy=false argument to unwrap functions.
Differential Revision: https://phabricator.services.mozilla.com/D26836
--HG--
extra : moz-landing-system : lando
getObject can return nullptr when the TypeSet uses a TypeHashSet for the objects.
Differential Revision: https://phabricator.services.mozilla.com/D26874
--HG--
extra : moz-landing-system : lando
This data is only needed for testing but is currently messing with the
structure packing. This reduces the size of the field and packs it into
free space saving one word per script on certain platforms.
Differential Revision: https://phabricator.services.mozilla.com/D26801
--HG--
extra : moz-landing-system : lando