From 8e836dd0cf42ee47d400940ffcc901d626d6b692 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 19 Sep 2019 01:47:57 +0200 Subject: [PATCH] Better error message for top-level private names --- packages/babel-parser/src/tokenizer/index.js | 10 ++-------- .../undeclared-top-level/options.json | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/babel-parser/src/tokenizer/index.js b/packages/babel-parser/src/tokenizer/index.js index c8773f9bbe2a..54e9919fb0aa 100644 --- a/packages/babel-parser/src/tokenizer/index.js +++ b/packages/babel-parser/src/tokenizer/index.js @@ -381,14 +381,8 @@ export default class Tokenizer extends LocationParser { } if ( - (this.hasPlugin("classPrivateProperties") || - this.hasPlugin("classPrivateMethods")) && - this.state.classLevel > 0 - ) { - ++this.state.pos; - this.finishToken(tt.hash); - return; - } else if ( + this.hasPlugin("classPrivateProperties") || + this.hasPlugin("classPrivateMethods") || this.getPluginOption("pipelineOperator", "proposal") === "smart" ) { this.finishOp(tt.hash, 1); diff --git a/packages/babel-parser/test/fixtures/experimental/class-private-properties/undeclared-top-level/options.json b/packages/babel-parser/test/fixtures/experimental/class-private-properties/undeclared-top-level/options.json index 9682fa229092..1a24d82b0b75 100644 --- a/packages/babel-parser/test/fixtures/experimental/class-private-properties/undeclared-top-level/options.json +++ b/packages/babel-parser/test/fixtures/experimental/class-private-properties/undeclared-top-level/options.json @@ -1,4 +1,4 @@ { "plugins": ["classPrivateProperties"], - "throws": "Unexpected character '#' (1:15)" + "throws": "Private name #priv is not defined (1:15)" } \ No newline at end of file