diff --git a/js/src/ion/AsmJS.cpp b/js/src/ion/AsmJS.cpp index 0bae47fc2f16..9d7ff522b561 100644 --- a/js/src/ion/AsmJS.cpp +++ b/js/src/ion/AsmJS.cpp @@ -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; diff --git a/js/src/jit-test/tests/asm.js/testBasic.js b/js/src/jit-test/tests/asm.js/testBasic.js index 9d0ddc861400..7d6a5dd49a61 100644 --- a/js/src/jit-test/tests/asm.js/testBasic.js +++ b/js/src/jit-test/tests/asm.js/testBasic.js @@ -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');