Bug 877965 - Ignore empty statements in var declarations in asm.js mode. r=luke

This commit is contained in:
Benjamin Bouvier 2013-05-31 16:27:00 -07:00
parent c4584add39
commit 9aadff0e83
2 changed files with 2 additions and 1 deletions

View File

@ -4597,7 +4597,7 @@ CheckVariableDecls(ModuleCompiler &m, FunctionCompiler::LocalMap *locals, ParseN
{
ParseNode *stmt = *stmtIter;
for (; stmt && stmt->isKind(PNK_VAR); stmt = NextNode(stmt)) {
for (; stmt && stmt->isKind(PNK_VAR); stmt = NextNonEmptyStatement(stmt)) {
for (ParseNode *var = VarListHead(stmt); var; var = NextNode(var)) {
if (!CheckVariableDecl(m, var, locals))
return false;

View File

@ -34,6 +34,7 @@ assertEq(asmLink(asmCompile('x', USE_ASM + 'function f(){} return f'), 1)(), und
assertEq(asmLink(asmCompile('x','y', USE_ASM + 'function f(){} return f'), 1, 2)(), undefined);
assertEq(asmLink(asmCompile(USE_ASM + 'function f(i) {i=i|0} return f'))(42), undefined);
assertEq(asmLink(asmCompile(USE_ASM + 'function f() {var i=0;; var j=1;} return f'))(), undefined); // bug 877965 second part
assertAsmTypeFail(USE_ASM + 'function f(i) {i=i|0;var i} return f');
assertAsmTypeFail(USE_ASM + 'function f(i) {i=i|0;var i=0} return f');