diff --git a/src/tokenizer/index.js b/src/tokenizer/index.js index e116cc1cca..73388d8485 100644 --- a/src/tokenizer/index.js +++ b/src/tokenizer/index.js @@ -391,8 +391,8 @@ export default class Tokenizer extends LocationParser { let width = 1; let next = this.input.charCodeAt(this.state.pos + 1); - if (next === 42) { - // '*' + // Exponentiation operator ** + if (code === 42 && next === 42) { width++; next = this.input.charCodeAt(this.state.pos + 2); type = tt.exponent; diff --git a/test/fixtures/es2016/exponentiation-operator/13/actual.js b/test/fixtures/es2016/exponentiation-operator/13/actual.js new file mode 100644 index 0000000000..109dfad526 --- /dev/null +++ b/test/fixtures/es2016/exponentiation-operator/13/actual.js @@ -0,0 +1 @@ +1 %* 1; diff --git a/test/fixtures/es2016/exponentiation-operator/13/options.json b/test/fixtures/es2016/exponentiation-operator/13/options.json new file mode 100644 index 0000000000..05dbd26b33 --- /dev/null +++ b/test/fixtures/es2016/exponentiation-operator/13/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} diff --git a/test/fixtures/es2016/exponentiation-operator/14/actual.js b/test/fixtures/es2016/exponentiation-operator/14/actual.js new file mode 100644 index 0000000000..a32ddba1b3 --- /dev/null +++ b/test/fixtures/es2016/exponentiation-operator/14/actual.js @@ -0,0 +1 @@ +a %*= 1; diff --git a/test/fixtures/es2016/exponentiation-operator/14/options.json b/test/fixtures/es2016/exponentiation-operator/14/options.json new file mode 100644 index 0000000000..05dbd26b33 --- /dev/null +++ b/test/fixtures/es2016/exponentiation-operator/14/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +}