diff --git a/lib/lexer.js b/lib/lexer.js index 1523fd68..1263d714 100644 --- a/lib/lexer.js +++ b/lib/lexer.js @@ -595,7 +595,7 @@ STRING_NEWLINES = /\n[ \t]*/g; NO_NEWLINE = /^([+\*&|\/\-%=<>!.\\][<>=&|]*|and|or|is|isnt|not|delete|typeof|instanceof)$/; HEREDOC_INDENT = /(\n+([ \t]*)|^([ \t]+))/g; - ASSIGNED = /^\s*(([a-zA-Z\$_@]\w*|["'][^\r\n]+?["'])[ \t]*?[:=][^=])/; + ASSIGNED = /^\s*(([a-zA-Z\$_@]\w*|["'][^\r\n]+?["']|\d+)[ \t]*?[:=][^=])/; NEXT_CHARACTER = /^\s*(\S)/; NOT_REGEX = ['NUMBER', 'REGEX', '++', '--', 'FALSE', 'NULL', 'TRUE', ']']; CALLABLE = ['IDENTIFIER', 'SUPER', ')', ']', '}', 'STRING', '@', 'THIS', '?', '::']; diff --git a/src/lexer.coffee b/src/lexer.coffee index a1d1066b..21045472 100644 --- a/src/lexer.coffee +++ b/src/lexer.coffee @@ -531,7 +531,7 @@ MULTILINER = /\n/g STRING_NEWLINES = /\n[ \t]*/g NO_NEWLINE = /^([+\*&|\/\-%=<>!.\\][<>=&|]*|and|or|is|isnt|not|delete|typeof|instanceof)$/ HEREDOC_INDENT = /(\n+([ \t]*)|^([ \t]+))/g -ASSIGNED = /^\s*(([a-zA-Z\$_@]\w*|["'][^\r\n]+?["'])[ \t]*?[:=][^=])/ +ASSIGNED = /^\s*(([a-zA-Z\$_@]\w*|["'][^\r\n]+?["']|\d+)[ \t]*?[:=][^=])/ NEXT_CHARACTER = /^\s*(\S)/ # Tokens which a regular expression will never immediately follow, but which diff --git a/test/test_literals.coffee b/test/test_literals.coffee index 93b9b856..5c1d3c57 100644 --- a/test/test_literals.coffee +++ b/test/test_literals.coffee @@ -197,11 +197,12 @@ ok obj.misdent.toString() is ',,,' second = (x, y) -> y obj = then second 'the', - one: 1 + 1: 1 two: three: -> four five, six: seven three: 3 +ok obj[1] is 1 ok obj.three is 3 \ No newline at end of file