diff --git a/Syntaxes/JavaScript Basic.tmLanguage b/Syntaxes/JavaScript Basic.tmLanguage index 7599d4b..06a547b 100644 --- a/Syntaxes/JavaScript Basic.tmLanguage +++ b/Syntaxes/JavaScript Basic.tmLanguage @@ -524,20 +524,20 @@ match - (?i)\B[-+]?0x[0-9a-f]*\.(\B|\b[0-9]+) + (?i)(?:\B[-+]|\b)0x[0-9a-f]*\.(\B|\b[0-9]+) name invalid.illegal.numeric.hex.js match - \B[-+]?0[0-9]+\.(\B|\b[0-9]+) + (?:\B[-+]|\b)0[0-9]+\.(\B|\b[0-9]+) name invalid.illegal.numeric.octal.js match (?xi)(?:\B[-+])?(?: - 0x[0-9a-f]* # HEX + \b0x[0-9a-f]* # HEX |( \B\.[0-9]+ # EG: .999 | \b[0-9]+ (\.[0-9]*)? # EG: 999.999 or 999. or 999 )(e[-+]?[0-9]+)? # EG: e+123 or E-123 diff --git a/Tests/Javascript Syntax Test.js b/Tests/Javascript Syntax Test.js index 8187eb1..61417dd 100644 --- a/Tests/Javascript Syntax Test.js +++ b/Tests/Javascript Syntax Test.js @@ -187,6 +187,8 @@ Infinity.methodName() -999 -.999 +(-.999) +-999. == -999; -999.999 -4 -16 @@ -197,16 +199,32 @@ Infinity.methodName() -3.402823669209385e+38 -1.157920892373162e+77 -1.3407807929942597e+154 +-.3407807929942597e+154 +-.3407807929942597E-154 +-3407807929942597.E-154.5 // SYNTAX ERROR: missing ; before statement +//.....................^ -Infinity +-Infinity.propertyName +-Infinity.methodName() + -0377 // octal --0x // hex +-0377. // SYNTAX ERROR +-0377.5 // SYNTAX ERROR +-0377.propertyName // number property +-0377.methodName() // number method + +-0x // HEX +-0XFF // HEX -0xFF // hex --0377 // octal --0xFF // hex --0xff // hex +-0xff. // SYNTAX ERROR +-0xff.5 // SYNTAX ERROR +-0xff.propertyName // number property +-0xff.methodName() // number method +999 +.999 +(+.999) ++999. == +999; +999.999 +4 +16 @@ -217,13 +235,27 @@ Infinity.methodName() +3.402823669209385e+38 +1.157920892373162e+77 +1.3407807929942597e+154 ++.3407807929942597e+154 ++.3407807929942597E+154 ++3407807929942597.E+154.5 // SYNTAX ERROR: missing ; before statement +//.....................^ +Infinity ++Infinity.propertyName ++Infinity.methodName() + +0377 // octal -+0x // hex ++0377. // SYNTAX ERROR ++0377.5 // SYNTAX ERROR ++0377.propertyName // number property ++0377.methodName() // number method + ++0x // HEX ++0XFF // HEX +0xFF // hex -+0377 // octal -+0xFF // hex -+0xff // hex ++0xff. // SYNTAX ERROR ++0xff.5 // SYNTAX ERROR ++0xff.propertyName // number property ++0xff.methodName() // number method 1e5 2.5E5