From e05d7cf49a43b314fe0f13c166624c88e4c0eecf Mon Sep 17 00:00:00 2001 From: Ingvar Stepanyan Date: Thu, 14 May 2015 12:47:51 +0300 Subject: [PATCH] Fix some parsing edge cases for :: operator. --- src/acorn/src/expression.js | 2 +- .../fixtures/transformation/es7.function-bind/bind/actual.js | 1 + .../fixtures/transformation/es7.function-bind/bind/expected.js | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/acorn/src/expression.js b/src/acorn/src/expression.js index 086a01c58a..08c4b26084 100755 --- a/src/acorn/src/expression.js +++ b/src/acorn/src/expression.js @@ -214,7 +214,7 @@ pp.parseExprSubscripts = function(refShorthandDefaultPos) { } pp.parseSubscripts = function(base, start, noCalls) { - if (this.eat(tt.doubleColon)) { + if (!noCalls && this.eat(tt.doubleColon)) { let node = this.startNodeAt(start) node.object = base node.callee = this.parseNoCallExpr() diff --git a/test/core/fixtures/transformation/es7.function-bind/bind/actual.js b/test/core/fixtures/transformation/es7.function-bind/bind/actual.js index 95e7aa13cd..822d9a79e9 100644 --- a/test/core/fixtures/transformation/es7.function-bind/bind/actual.js +++ b/test/core/fixtures/transformation/es7.function-bind/bind/actual.js @@ -1,2 +1,3 @@ var f = ctx::ns.obj.func; var g = ::ns.obj.func; +var h = new X::y; diff --git a/test/core/fixtures/transformation/es7.function-bind/bind/expected.js b/test/core/fixtures/transformation/es7.function-bind/bind/expected.js index 7c47a86b25..22ae9099a5 100644 --- a/test/core/fixtures/transformation/es7.function-bind/bind/expected.js +++ b/test/core/fixtures/transformation/es7.function-bind/bind/expected.js @@ -4,3 +4,4 @@ var _context; var f = (_context = ctx, ns.obj.func).bind(_context); var g = (_context = ns.obj).func.bind(_context); +var h = (_context = new X(), y).bind(_context);