Browse Source

Add support for the nullish-coalesce operator

Sebastian Pahnke 5 years ago
parent
commit
aff86cc64c

+ 27 - 0
src/javascript/javascript.test.ts

@@ -725,6 +725,33 @@ testTokenization('javascript', [
 	}],
 
 
+	[{
+		line: 'test ? 1 : 2',
+		tokens: [
+			{ startIndex: 0, type: 'identifier.js' },
+			{ startIndex: 4, type: '' },
+			{ startIndex: 5, type: 'delimiter.js' },
+			{ startIndex: 6, type: '' },
+			{ startIndex: 7, type: 'number.js' },
+			{ startIndex: 8, type: '' },
+			{ startIndex: 9, type: 'delimiter.js' },
+			{ startIndex: 10, type: '' },
+			{ startIndex: 11, type: 'number.js' },
+		]
+	}],
+
+	[{
+		line: 'couldBeNullish ?? 1',
+		tokens: [
+			{ startIndex: 0, type: 'identifier.js' },
+			{ startIndex: 14, type: '' },
+			{ startIndex: 15, type: 'delimiter.js' },
+			{ startIndex: 17, type: '' },
+			{ startIndex: 18, type: 'number.js' }
+		]
+	}],
+
+
 	[{
 		line: '`${5 + \'x\' + 3}a${4}`',
 		tokens: [

+ 27 - 0
src/typescript/typescript.test.ts

@@ -745,6 +745,33 @@ testTokenization('typescript', [
 	}],
 
 
+	[{
+		line: 'test ? 1 : 2',
+		tokens: [
+			{ startIndex: 0, type: 'identifier.ts' },
+			{ startIndex: 4, type: '' },
+			{ startIndex: 5, type: 'delimiter.ts' },
+			{ startIndex: 6, type: '' },
+			{ startIndex: 7, type: 'number.ts' },
+			{ startIndex: 8, type: '' },
+			{ startIndex: 9, type: 'delimiter.ts' },
+			{ startIndex: 10, type: '' },
+			{ startIndex: 11, type: 'number.ts' },
+		]
+	}],
+
+	[{
+		line: 'couldBeNullish ?? 1',
+		tokens: [
+			{ startIndex: 0, type: 'identifier.ts' },
+			{ startIndex: 14, type: '' },
+			{ startIndex: 15, type: 'delimiter.ts' },
+			{ startIndex: 17, type: '' },
+			{ startIndex: 18, type: 'number.ts' }
+		]
+	}],
+
+
 	[{
 		line: '`${5 + \'x\' + (<any>)3}a${4}`',
 		tokens: [

+ 1 - 1
src/typescript/typescript.ts

@@ -91,7 +91,7 @@ export const language = {
 	operators: [
 		'<=', '>=', '==', '!=', '===', '!==', '=>', '+', '-', '**',
 		'*', '/', '%', '++', '--', '<<', '</', '>>', '>>>', '&',
-		'|', '^', '!', '~', '&&', '||', '?', ':', '=', '+=', '-=',
+		'|', '^', '!', '~', '&&', '||', '??', '?', ':', '=', '+=', '-=',
 		'*=', '**=', '/=', '%=', '<<=', '>>=', '>>>=', '&=', '|=',
 		'^=', '@',
 	],