From f17feaa0d6e42a6c0ee3fc4046dfd36161c5e60a Mon Sep 17 00:00:00 2001 From: Stephan Schneider Date: Thu, 26 Jul 2018 15:37:57 +0200 Subject: [PATCH] Add 'n' suffix for BigInt numeric --- grammars/javascript.cson | 8 ++++---- spec/javascript-spec.coffee | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/grammars/javascript.cson b/grammars/javascript.cson index 147a7b80..003b36e8 100644 --- a/grammars/javascript.cson +++ b/grammars/javascript.cson @@ -1244,15 +1244,15 @@ 'numbers': 'patterns': [ { - 'match': '\\b(? {tokens} = grammar.tokenizeLine('0X1D306') expect(tokens[0]).toEqual value: '0X1D306', scopes: ['source.js', 'constant.numeric.hex.js'] + {tokens} = grammar.tokenizeLine('0x1D306n') + expect(tokens[0]).toEqual value: '0x1D306n', scopes: ['source.js', 'constant.numeric.hex.js'] + + {tokens} = grammar.tokenizeLine('0X1D306n') + expect(tokens[0]).toEqual value: '0X1D306n', scopes: ['source.js', 'constant.numeric.hex.js'] + it "tokenizes binary literals", -> {tokens} = grammar.tokenizeLine('0b011101110111010001100110') expect(tokens[0]).toEqual value: '0b011101110111010001100110', scopes: ['source.js', 'constant.numeric.binary.js'] @@ -323,6 +329,12 @@ describe "JavaScript grammar", -> {tokens} = grammar.tokenizeLine('0B011101110111010001100110') expect(tokens[0]).toEqual value: '0B011101110111010001100110', scopes: ['source.js', 'constant.numeric.binary.js'] + {tokens} = grammar.tokenizeLine('0b011101110111010001100110n') + expect(tokens[0]).toEqual value: '0b011101110111010001100110n', scopes: ['source.js', 'constant.numeric.binary.js'] + + {tokens} = grammar.tokenizeLine('0B011101110111010001100110n') + expect(tokens[0]).toEqual value: '0B011101110111010001100110n', scopes: ['source.js', 'constant.numeric.binary.js'] + it "tokenizes octal literals", -> {tokens} = grammar.tokenizeLine('0o1411') expect(tokens[0]).toEqual value: '0o1411', scopes: ['source.js', 'constant.numeric.octal.js'] @@ -330,6 +342,12 @@ describe "JavaScript grammar", -> {tokens} = grammar.tokenizeLine('0O1411') expect(tokens[0]).toEqual value: '0O1411', scopes: ['source.js', 'constant.numeric.octal.js'] + {tokens} = grammar.tokenizeLine('0o1411n') + expect(tokens[0]).toEqual value: '0o1411n', scopes: ['source.js', 'constant.numeric.octal.js'] + + {tokens} = grammar.tokenizeLine('0O1411n') + expect(tokens[0]).toEqual value: '0O1411n', scopes: ['source.js', 'constant.numeric.octal.js'] + {tokens} = grammar.tokenizeLine('0010') expect(tokens[0]).toEqual value: '0010', scopes: ['source.js', 'constant.numeric.octal.js'] @@ -337,6 +355,9 @@ describe "JavaScript grammar", -> {tokens} = grammar.tokenizeLine('1234') expect(tokens[0]).toEqual value: '1234', scopes: ['source.js', 'constant.numeric.decimal.js'] + {tokens} = grammar.tokenizeLine('123456789n') + expect(tokens[0]).toEqual value: '123456789n', scopes: ['source.js', 'constant.numeric.decimal.js'] + {tokens} = grammar.tokenizeLine('5e-10') expect(tokens[0]).toEqual value: '5e-10', scopes: ['source.js', 'constant.numeric.decimal.js']