OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 // Flags: --strong-mode --harmony-sloppy --harmony-arrow-functions |
| 6 "use strict"; |
| 7 |
| 8 function CheckStrongMode(code) { |
| 9 let strictContexts = [ |
| 10 ["'use strict';", ""], |
| 11 ["function outer() { 'use strict';", "}"], |
| 12 ["function outer() { 'use strict'; function inner() {", "}}"], |
| 13 ["class C { m() {", "} }"] |
| 14 ] |
| 15 let strongContexts = [ |
| 16 ["'use strong';", ""], |
| 17 ["function outer() { 'use strong';", "}"], |
| 18 ["function outer() { 'use strong'; function inner() {", "}}"], |
| 19 ["class C { m() { 'use strong';", "} }"] |
| 20 ] |
| 21 |
| 22 for (let context of strictContexts) { |
| 23 assertDoesNotThrow(context[0] + code + context[1]); |
| 24 } |
| 25 for (let context of strongContexts) { |
| 26 assertThrows(context[0] + code + context[1], SyntaxError); |
| 27 } |
| 28 } |
| 29 |
| 30 CheckStrongMode("(undefined => {return});"); |
| 31 assertThrows("(undefined => {'use strong';});"); |
| 32 |
| 33 CheckStrongMode("((undefined, b, c) => {return});"); |
| 34 assertThrows("((undefined, b, c) => {'use strong';});"); |
| 35 |
| 36 CheckStrongMode("((a, undefined, c) => {return});"); |
| 37 assertThrows("((a, undefined, c) => {'use strong';});"); |
| 38 |
| 39 CheckStrongMode("((a, b, undefined) => {return})"); |
| 40 assertThrows("((a, b, undefined) => {'use strong';});"); |
OLD | NEW |