diff --git a/src/jshint.js b/src/jshint.js index 54479591c6..3533eb507b 100644 --- a/src/jshint.js +++ b/src/jshint.js @@ -5267,9 +5267,6 @@ var JSHINT = (function() { stmt("break", function() { var v = state.tokens.next.value; - if (!state.option.asi) - nolinebreak(this); - if (state.tokens.next.identifier && sameLine(state.tokens.curr, state.tokens.next)) { if (!state.funct["(scope)"].funct.hasLabel(v)) { @@ -5295,9 +5292,6 @@ var JSHINT = (function() { warning("W052", state.tokens.next, this.value); } - if (!state.option.asi) - nolinebreak(this); - if (state.tokens.next.identifier) { if (sameLine(state.tokens.curr, state.tokens.next)) { if (!state.funct["(scope)"].funct.hasLabel(v)) { diff --git a/tests/test262/expectations.txt b/tests/test262/expectations.txt index 183b9ba969..55c3ff3082 100644 --- a/tests/test262/expectations.txt +++ b/tests/test262/expectations.txt @@ -118,15 +118,11 @@ test/annexB/language/statements/for-in/nonstrict-initializer.js(default) test/built-ins/Function/prototype/toString/unicode.js(default) test/built-ins/Function/prototype/toString/unicode.js(strict mode) test/language/asi/S7.9.2_A1_T2.js(default) -test/language/asi/S7.9_A1.js(default) -test/language/asi/S7.9_A1.js(strict mode) test/language/asi/S7.9_A10_T11.js(default) test/language/asi/S7.9_A10_T10.js(default) test/language/asi/S7.9_A10_T12.js(default) test/language/asi/S7.9_A10_T7.js(default) test/language/asi/S7.9_A10_T9.js(default) -test/language/asi/S7.9_A2.js(default) -test/language/asi/S7.9_A2.js(strict mode) test/language/asi/S7.9_A6.1_T10.js(default) test/language/asi/S7.9_A6.1_T10.js(strict mode) test/language/asi/S7.9_A6.1_T11.js(default) @@ -255,10 +251,6 @@ test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-inv test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js(strict mode) test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js(default) test/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js(strict mode) -test/language/statements/break/12.8-1.js(default) -test/language/statements/break/12.8-1.js(strict mode) -test/language/statements/continue/12.7-1.js(default) -test/language/statements/continue/12.7-1.js(strict mode) test/language/statements/do-while/decl-cls.js(default) test/language/statements/do-while/decl-cls.js(strict mode) test/language/statements/for-in/decl-cls.js(default) diff --git a/tests/unit/options.js b/tests/unit/options.js index 35113b356f..fc9541f3ed 100644 --- a/tests/unit/options.js +++ b/tests/unit/options.js @@ -574,17 +574,13 @@ exports.asi = function (test) { .addError(2, 13, "Missing semicolon.") .addError(4, 21, "Missing semicolon.") .addError(5, 14, "Missing semicolon.") - .addError(9, 18, "Line breaking error 'continue'.") .addError(9, 26, "Missing semicolon.") .addError(10, 14, "Missing semicolon.") - .addError(11, 18, "Line breaking error 'break'.") .addError(11, 23, "Missing semicolon.") .addError(12, 14, "Missing semicolon.") .addError(16, 23, "Missing semicolon.") .addError(17, 19, "Missing semicolon.") - .addError(19, 13, "Line breaking error 'break'.") .addError(19, 18, "Missing semicolon.") - .addError(21, 13, "Line breaking error 'break'.") .addError(21, 18, "Missing semicolon.") .addError(25, 6, "Missing semicolon.") .addError(26, 10, "Missing semicolon.") diff --git a/tests/unit/parser.js b/tests/unit/parser.js index 3c37cdf16c..212d8ee160 100644 --- a/tests/unit/parser.js +++ b/tests/unit/parser.js @@ -6148,6 +6148,40 @@ exports.ASI.followingPostfix = function (test) { test.done(); }; +exports.ASI.followingContinue = function (test) { + var code = [ + "while (false) {", + " continue", + "}" + ]; + + TestRun(test) + .addError(2, 11, "Missing semicolon.") + .test(code); + + TestRun(test) + .test(code, { asi: true }); + + test.done(); +}; + +exports.ASI.followingBreak = function (test) { + var code = [ + "while (false) {", + " break", + "}" + ]; + + TestRun(test) + .addError(2, 8, "Missing semicolon.") + .test(code); + + TestRun(test) + .test(code, { asi: true }); + + test.done(); +}; + exports["fat arrows support"] = function (test) { var code = [ "let empty = () => {};",