mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backed out changeset 7829b67bfb7a (bug 1066827)
This commit is contained in:
parent
5c44ae8eaf
commit
f3251f33ba
@ -363,28 +363,25 @@ NextNonEmptyStatement(ParseNode *pn)
|
|||||||
return SkipEmptyStatements(pn->pn_next);
|
return SkipEmptyStatements(pn->pn_next);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static TokenKind
|
||||||
PeekToken(AsmJSParser &parser, TokenKind *tkp)
|
PeekToken(AsmJSParser &parser)
|
||||||
{
|
{
|
||||||
TokenStream &ts = parser.tokenStream;
|
TokenStream &ts = parser.tokenStream;
|
||||||
TokenKind tk;
|
TokenKind tk;
|
||||||
while (true) {
|
while (true) {
|
||||||
if (!ts.peekToken(&tk, TokenStream::Operand))
|
if (!ts.peekToken(&tk, TokenStream::Operand))
|
||||||
return false;
|
return TOK_ERROR;
|
||||||
if (tk != TOK_SEMI)
|
if (tk != TOK_SEMI)
|
||||||
break;
|
break;
|
||||||
ts.consumeKnownToken(TOK_SEMI);
|
ts.consumeKnownToken(TOK_SEMI);
|
||||||
}
|
}
|
||||||
*tkp = tk;
|
return tk;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
ParseVarOrConstStatement(AsmJSParser &parser, ParseNode **var)
|
ParseVarOrConstStatement(AsmJSParser &parser, ParseNode **var)
|
||||||
{
|
{
|
||||||
TokenKind tk;
|
TokenKind tk = PeekToken(parser);
|
||||||
if (!PeekToken(parser, &tk))
|
|
||||||
return false;
|
|
||||||
if (tk != TOK_VAR && tk != TOK_CONST) {
|
if (tk != TOK_VAR && tk != TOK_CONST) {
|
||||||
*var = nullptr;
|
*var = nullptr;
|
||||||
return true;
|
return true;
|
||||||
@ -7059,13 +7056,7 @@ CheckFunctionsSequential(ModuleCompiler &m)
|
|||||||
// function by the LifoAllocScope inside the loop.
|
// function by the LifoAllocScope inside the loop.
|
||||||
LifoAlloc lifo(LIFO_ALLOC_PRIMARY_CHUNK_SIZE);
|
LifoAlloc lifo(LIFO_ALLOC_PRIMARY_CHUNK_SIZE);
|
||||||
|
|
||||||
while (true) {
|
while (PeekToken(m.parser()) == TOK_FUNCTION) {
|
||||||
TokenKind tk;
|
|
||||||
if (!PeekToken(m.parser(), &tk))
|
|
||||||
return false;
|
|
||||||
if (tk != TOK_FUNCTION)
|
|
||||||
break;
|
|
||||||
|
|
||||||
LifoAllocScope scope(&lifo);
|
LifoAllocScope scope(&lifo);
|
||||||
|
|
||||||
MIRGenerator *mir;
|
MIRGenerator *mir;
|
||||||
@ -7227,13 +7218,7 @@ CheckFunctionsParallel(ModuleCompiler &m, ParallelGroupState &group)
|
|||||||
HelperThreadState().resetAsmJSFailureState();
|
HelperThreadState().resetAsmJSFailureState();
|
||||||
|
|
||||||
AsmJSParallelTask *task = nullptr;
|
AsmJSParallelTask *task = nullptr;
|
||||||
for (unsigned i = 0;; i++) {
|
for (unsigned i = 0; PeekToken(m.parser()) == TOK_FUNCTION; i++) {
|
||||||
TokenKind tk;
|
|
||||||
if (!PeekToken(m.parser(), &tk))
|
|
||||||
return false;
|
|
||||||
if (tk != TOK_FUNCTION)
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (!task && !GetUnusedTask(group, i, &task) && !GetUsedTask(m, group, &task))
|
if (!task && !GetUnusedTask(group, i, &task) && !GetUsedTask(m, group, &task))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -7485,10 +7470,8 @@ CheckModuleExportObject(ModuleCompiler &m, ParseNode *object)
|
|||||||
static bool
|
static bool
|
||||||
CheckModuleReturn(ModuleCompiler &m)
|
CheckModuleReturn(ModuleCompiler &m)
|
||||||
{
|
{
|
||||||
TokenKind tk;
|
if (PeekToken(m.parser()) != TOK_RETURN) {
|
||||||
if (!PeekToken(m.parser(), &tk))
|
TokenKind tk = PeekToken(m.parser());
|
||||||
return false;
|
|
||||||
if (tk != TOK_RETURN) {
|
|
||||||
if (tk == TOK_RC || tk == TOK_EOF)
|
if (tk == TOK_RC || tk == TOK_EOF)
|
||||||
return m.fail(nullptr, "expecting return statement");
|
return m.fail(nullptr, "expecting return statement");
|
||||||
return m.fail(nullptr, "invalid asm.js statement");
|
return m.fail(nullptr, "invalid asm.js statement");
|
||||||
@ -8600,9 +8583,7 @@ CheckModule(ExclusiveContext *cx, AsmJSParser &parser, ParseNode *stmtList,
|
|||||||
if (!CheckModuleReturn(m))
|
if (!CheckModuleReturn(m))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
TokenKind tk;
|
TokenKind tk = PeekToken(m.parser());
|
||||||
if (!PeekToken(m.parser(), &tk))
|
|
||||||
return false;
|
|
||||||
if (tk != TOK_EOF && tk != TOK_RC)
|
if (tk != TOK_EOF && tk != TOK_RC)
|
||||||
return m.fail(nullptr, "top-level export (return) must be the last statement");
|
return m.fail(nullptr, "top-level export (return) must be the last statement");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user