Merge pull request #257 from adamjmcgrath/esprima-2-aliased-imports
Fix Import variable binding for esprima 2
diff --git a/escodegen.js b/escodegen.js
index c695776..8f98fbc 100644
--- a/escodegen.js
+++ b/escodegen.js
@@ -2262,9 +2262,11 @@
},
ExportSpecifier: function (expr, precedence, flags) {
- var result = [ (expr.id || expr.local).name ];
- if (expr.name) {
- result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(expr.name));
+ var exported = (expr.id || expr.imported).name;
+ var result = [ exported ];
+ var id = expr.name || expr.local;
+ if (id && id.name !== exported) {
+ result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(id));
}
return result;
},
diff --git a/test/compare-esprima2/import-with-default.expected.js b/test/compare-esprima2/import-with-default.expected.js
index 75d9a1f..5e55c4f 100644
--- a/test/compare-esprima2/import-with-default.expected.js
+++ b/test/compare-esprima2/import-with-default.expected.js
@@ -2,7 +2,7 @@
import foo, * as foo from 'foo';
import * as foo from 'foo';
import ok, {
- foo,
- test,
+ foo as bar,
+ test as testing,
logging
} from 'foo';
diff --git a/test/compare-esprima2/import-with-default.expected.min.js b/test/compare-esprima2/import-with-default.expected.min.js
index 9541f43..6b6105f 100644
--- a/test/compare-esprima2/import-with-default.expected.min.js
+++ b/test/compare-esprima2/import-with-default.expected.min.js
@@ -1 +1 @@
-import foo from'foo';import foo,*as foo from'foo';import*as foo from'foo';import ok,{foo,test,logging}from'foo'
+import foo from'foo';import foo,*as foo from'foo';import*as foo from'foo';import ok,{foo as bar,test as testing,logging}from'foo'
diff --git a/test/compare-esprima2/import-with-default.js b/test/compare-esprima2/import-with-default.js
index 75d9a1f..5e55c4f 100644
--- a/test/compare-esprima2/import-with-default.js
+++ b/test/compare-esprima2/import-with-default.js
@@ -2,7 +2,7 @@
import foo, * as foo from 'foo';
import * as foo from 'foo';
import ok, {
- foo,
- test,
+ foo as bar,
+ test as testing,
logging
} from 'foo';