Tests for the Runtime.parse command.


== Running test suite: Runtime.parse
-- Running test case: SyntaxErrorType.None
PASS: Should be SyntaxErrorType None.
Source:

PASS: Should be SyntaxErrorType None.
Source: ;

PASS: Should be SyntaxErrorType None.
Source: myVariable

PASS: Should be SyntaxErrorType None.
Source: var x = 1; x

PASS: Should be SyntaxErrorType None.
Source: [1,2,3]

PASS: Should be SyntaxErrorType None.
Source: ({})

PASS: Should be SyntaxErrorType None.
Source: ({prop:true}).x.x.x

PASS: Should be SyntaxErrorType None.
Source: if(1)1


-- Running test case: SyntaxErrorType.UnterminatedLiteral
PASS: Should be SyntaxErrorType UnterminatedLiteral.
Source: 0b
        ^
Error Message: No binary digits after '0b'
Range: {"startOffset":0,"endOffset":1}

PASS: Should be SyntaxErrorType UnterminatedLiteral.
Source: 0o
        ^
Error Message: No octal digits after '0o'
Range: {"startOffset":0,"endOffset":1}

PASS: Should be SyntaxErrorType UnterminatedLiteral.
Source: 0x
        ^
Error Message: No hexadecimal digits after '0x'
Range: {"startOffset":0,"endOffset":1}

PASS: Should be SyntaxErrorType UnterminatedLiteral.
Source: 1e
        ^~
Error Message: Non-number found after exponent indicator
Range: {"startOffset":0,"endOffset":2}

PASS: Should be SyntaxErrorType UnterminatedLiteral.
Source: '
        ^
Error Message: Unexpected EOF
Range: {"startOffset":0,"endOffset":1}

PASS: Should be SyntaxErrorType UnterminatedLiteral.
Source: "
        ^
Error Message: Unexpected EOF
Range: {"startOffset":0,"endOffset":1}

PASS: Should be SyntaxErrorType UnterminatedLiteral.
Source: var \u007
            ^~~~~
Error Message: Incomplete unicode escape in identifier: '\u007'
Range: {"startOffset":4,"endOffset":9}


-- Running test case: SyntaxErrorType.Recoverable
PASS: Should be SyntaxErrorType Recoverable.
Source: (
         ^
Error Message: Unexpected end of script
Error Range: {"startOffset":1,"endOffset":1}

PASS: Should be SyntaxErrorType Recoverable.
Source: {
         ^
Error Message: Unexpected end of script
Error Range: {"startOffset":1,"endOffset":1}

PASS: Should be SyntaxErrorType Recoverable.
Source: !
         ^
Error Message: Unexpected end of script
Error Range: {"startOffset":1,"endOffset":1}

PASS: Should be SyntaxErrorType Recoverable.
Source: -
         ^
Error Message: Unexpected end of script
Error Range: {"startOffset":1,"endOffset":1}

PASS: Should be SyntaxErrorType Recoverable.
Source: +
         ^
Error Message: Unexpected end of script
Error Range: {"startOffset":1,"endOffset":1}

PASS: Should be SyntaxErrorType Recoverable.
Source: ~
         ^
Error Message: Unexpected end of script
Error Range: {"startOffset":1,"endOffset":1}

PASS: Should be SyntaxErrorType Recoverable.
Source: 1,
          ^
Error Message: Unexpected end of script
Error Range: {"startOffset":2,"endOffset":2}

PASS: Should be SyntaxErrorType Recoverable.
Source: var
           ^
Error Message: Unexpected end of script
Error Range: {"startOffset":3,"endOffset":3}

PASS: Should be SyntaxErrorType Recoverable.
Source: 'use strict'; let
                         ^
Error Message: Unexpected end of script
Error Range: {"startOffset":17,"endOffset":17}

PASS: Should be SyntaxErrorType Recoverable.
Source: const
             ^
Error Message: Unexpected end of script
Error Range: {"startOffset":5,"endOffset":5}

PASS: Should be SyntaxErrorType Recoverable.
Source: var {x
              ^
Error Message: Unexpected end of script
Error Range: {"startOffset":6,"endOffset":6}

PASS: Should be SyntaxErrorType Recoverable.
Source: var [x
              ^
Error Message: Unexpected end of script
Error Range: {"startOffset":6,"endOffset":6}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x,
              ^
Error Message: Unexpected end of script
Error Range: {"startOffset":6,"endOffset":6}

PASS: Should be SyntaxErrorType Recoverable.
Source: if(1)
             ^
Error Message: Unexpected end of script
Error Range: {"startOffset":5,"endOffset":5}

PASS: Should be SyntaxErrorType Recoverable.
Source: if(1){
              ^
Error Message: Unexpected end of script
Error Range: {"startOffset":6,"endOffset":6}

PASS: Should be SyntaxErrorType Recoverable.
Source: if(1){}else
                   ^
Error Message: Unexpected end of script
Error Range: {"startOffset":11,"endOffset":11}

PASS: Should be SyntaxErrorType Recoverable.
Source: if(1){}else{
                    ^
Error Message: Unexpected end of script
Error Range: {"startOffset":12,"endOffset":12}

PASS: Should be SyntaxErrorType Recoverable.
Source: while(1)
                ^
Error Message: Unexpected end of script
Error Range: {"startOffset":8,"endOffset":8}

PASS: Should be SyntaxErrorType Recoverable.
Source: while(1){
                 ^
Error Message: Unexpected end of script
Error Range: {"startOffset":9,"endOffset":9}

PASS: Should be SyntaxErrorType Recoverable.
Source: for(;;)
               ^
Error Message: Unexpected end of script
Error Range: {"startOffset":7,"endOffset":7}

PASS: Should be SyntaxErrorType Recoverable.
Source: for(;;){
                ^
Error Message: Unexpected end of script
Error Range: {"startOffset":8,"endOffset":8}

PASS: Should be SyntaxErrorType Recoverable.
Source: ()=>
            ^
Error Message: Unexpected end of script
Error Range: {"startOffset":4,"endOffset":4}

PASS: Should be SyntaxErrorType Recoverable.
Source: ()=>{
             ^
Error Message: Unexpected end of script
Error Range: {"startOffset":5,"endOffset":5}

PASS: Should be SyntaxErrorType Recoverable.
Source: /*
        ^~
Error Message: Multiline comment was not closed properly
Error Range: {"startOffset":0,"endOffset":2}

PASS: Should be SyntaxErrorType Recoverable.
Source: `
        ^
Error Message: Unexpected EOF
Error Range: {"startOffset":0,"endOffset":1}

PASS: Should be SyntaxErrorType Recoverable.
Source: `${1}
            ^
Error Message: Unexpected EOF
Error Range: {"startOffset":4,"endOffset":5}

PASS: Should be SyntaxErrorType Recoverable.
Source: `${
           ^
Error Message: Unexpected end of script
Error Range: {"startOffset":3,"endOffset":3}

PASS: Should be SyntaxErrorType Recoverable.
Source: function
                ^
Error Message: Unexpected end of script
Error Range: {"startOffset":8,"endOffset":8}

PASS: Should be SyntaxErrorType Recoverable.
Source: function foo
                    ^
Error Message: Unexpected end of script
Error Range: {"startOffset":12,"endOffset":12}

PASS: Should be SyntaxErrorType Recoverable.
Source: function foo(
                     ^
Error Message: Unexpected end of script
Error Range: {"startOffset":13,"endOffset":13}

PASS: Should be SyntaxErrorType Recoverable.
Source: function foo(){
                       ^
Error Message: Unexpected end of script
Error Range: {"startOffset":15,"endOffset":15}

PASS: Should be SyntaxErrorType Recoverable.
Source: (function() {
                     ^
Error Message: Unexpected end of script
Error Range: {"startOffset":13,"endOffset":13}

PASS: Should be SyntaxErrorType Recoverable.
Source: (function() {}
                      ^
Error Message: Unexpected end of script
Error Range: {"startOffset":14,"endOffset":14}

PASS: Should be SyntaxErrorType Recoverable.
Source: (function() {})(
                        ^
Error Message: Unexpected end of script
Error Range: {"startOffset":16,"endOffset":16}

PASS: Should be SyntaxErrorType Recoverable.
Source: switch(x)
                 ^
Error Message: Unexpected end of script
Error Range: {"startOffset":9,"endOffset":9}

PASS: Should be SyntaxErrorType Recoverable.
Source: switch(x){
                  ^
Error Message: Unexpected end of script
Error Range: {"startOffset":10,"endOffset":10}

PASS: Should be SyntaxErrorType Recoverable.
Source: switch(x){case
                      ^
Error Message: Unexpected end of script
Error Range: {"startOffset":14,"endOffset":14}

PASS: Should be SyntaxErrorType Recoverable.
Source: switch(x){case 1
                        ^
Error Message: Unexpected end of script
Error Range: {"startOffset":16,"endOffset":16}

PASS: Should be SyntaxErrorType Recoverable.
Source: switch(x){case 1:
                         ^
Error Message: Unexpected end of script
Error Range: {"startOffset":17,"endOffset":17}

PASS: Should be SyntaxErrorType Recoverable.
Source: class
             ^
Error Message: Unexpected end of script
Error Range: {"startOffset":5,"endOffset":5}

PASS: Should be SyntaxErrorType Recoverable.
Source: class Klass
                   ^
Error Message: Unexpected end of script
Error Range: {"startOffset":11,"endOffset":11}

PASS: Should be SyntaxErrorType Recoverable.
Source: class Klass {
                     ^
Error Message: Unexpected end of script
Error Range: {"startOffset":13,"endOffset":13}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {
                 ^
Error Message: Unexpected end of script
Error Range: {"startOffset":9,"endOffset":9}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop
                     ^
Error Message: Unexpected end of script
Error Range: {"startOffset":13,"endOffset":13}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:
                      ^
Error Message: Unexpected end of script
Error Range: {"startOffset":14,"endOffset":14}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:123
                         ^
Error Message: Unexpected end of script
Error Range: {"startOffset":17,"endOffset":17}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:123
                          ^
Error Message: Unexpected end of script
Error Range: {"startOffset":18,"endOffset":18}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:123,
                          ^
Error Message: Unexpected end of script
Error Range: {"startOffset":18,"endOffset":18}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:123,
                           ^
Error Message: Unexpected end of script
Error Range: {"startOffset":19,"endOffset":19}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:123, 'prop2'
                                  ^
Error Message: Unexpected end of script
Error Range: {"startOffset":26,"endOffset":26}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:123, [12
                              ^
Error Message: Unexpected end of script
Error Range: {"startOffset":22,"endOffset":22}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:123, [12]
                               ^
Error Message: Unexpected end of script
Error Range: {"startOffset":23,"endOffset":23}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:123, [12]:
                                ^
Error Message: Unexpected end of script
Error Range: {"startOffset":24,"endOffset":24}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = {prop:123, [12]:567
                                   ^
Error Message: Unexpected end of script
Error Range: {"startOffset":27,"endOffset":27}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = [
                 ^
Error Message: Unexpected end of script
Error Range: {"startOffset":9,"endOffset":9}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = [1
                  ^
Error Message: Unexpected end of script
Error Range: {"startOffset":10,"endOffset":10}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = [1,
                   ^
Error Message: Unexpected end of script
Error Range: {"startOffset":11,"endOffset":11}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = [1,[]
                     ^
Error Message: Unexpected end of script
Error Range: {"startOffset":13,"endOffset":13}

PASS: Should be SyntaxErrorType Recoverable.
Source: var x = [1,{}
                     ^
Error Message: Unexpected end of script
Error Range: {"startOffset":13,"endOffset":13}


-- Running test case: SyntaxErrorType.Irrecoverable
PASS: Should be SyntaxErrorType Irrecoverable.
Source: 1$
        ^
Error Message: No identifiers allowed directly after numeric literal
Error Range: {"startOffset":0,"endOffset":1}

PASS: Should be SyntaxErrorType Irrecoverable.
Source: var x = {}}
                  ^
Error Message: Parser error
Error Range: {"startOffset":10,"endOffset":11}

PASS: Should be SyntaxErrorType Irrecoverable.
Source: ({}))
            ^
Error Message: Unexpected token ')'. Parse error.
Error Range: {"startOffset":4,"endOffset":5}

PASS: Should be SyntaxErrorType Irrecoverable.
Source: var x = =
                ^
Error Message: Unexpected token '='
Error Range: {"startOffset":8,"endOffset":9}

PASS: Should be SyntaxErrorType Irrecoverable.
Source: const x;
               ^
Error Message: Unexpected token ';'. const declared variable 'x' must have an initializer.
Error Range: {"startOffset":7,"endOffset":8}

PASS: Should be SyntaxErrorType Irrecoverable.
Source: let x = 1; let x = 2;
                         ^
Error Message: Cannot declare a let variable twice: 'x'.
Error Range: {"startOffset":17,"endOffset":18}

PASS: Should be SyntaxErrorType Irrecoverable.
Source: if x(1)
           ^
Error Message: Unexpected identifier 'x'. Expected '(' to start an 'if' condition.
Error Range: {"startOffset":3,"endOffset":4}


