From 4bdd12c17d2681e525c5ca419bedbc61d6d19ab3 Mon Sep 17 00:00:00 2001 From: Vitaly Magerya Date: Sun, 21 Jun 2015 19:27:03 +0300 Subject: [PATCH] Fix MemberExpression's end token when importing from Mozilla AST --- lib/mozilla-ast.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/mozilla-ast.js b/lib/mozilla-ast.js index 749d3179..def42b68 100644 --- a/lib/mozilla-ast.js +++ b/lib/mozilla-ast.js @@ -110,7 +110,7 @@ MemberExpression: function(M) { return new (M.computed ? AST_Sub : AST_Dot)({ start : my_start_token(M), - end : my_end_token(M), + end : M.computed ? my_end_token(M) : my_full_token(M.property), property : M.computed ? from_moz(M.property) : M.property.name, expression : from_moz(M.object) }); @@ -417,6 +417,22 @@ }); }; + function my_full_token(moznode) { + var loc = moznode.loc, + start = loc && loc.start, + end = loc && loc.end; + var range = moznode.range; + return new AST_Token({ + file : loc && loc.source, + line : start && start.line, + col : start && start.column, + pos : range ? range[0] : moznode.start, + endline : end && end.line, + endcol : end && end.column, + endpos : range ? range[1] : moznode.end + }); + }; + function map(moztype, mytype, propmap) { var moz_to_me = "function From_Moz_" + moztype + "(M){\n"; moz_to_me += "return new " + mytype.name + "({\n" +