-
Notifications
You must be signed in to change notification settings - Fork 581
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug: "import <Module File Path>" doesn't execute the module body as expected. #2130
Comments
We do have tests for this: https://github.com/google/traceur-compiler/blob/master/test/feature/Modules/ImportNoImportClause.js What options are you using? |
The traceur command is as such: node_modules/.bin/traceur --module=www/js/main.bbjs --out=_build/www/js/main.js --arrow-functions=true --block-binding=true --classes=true --computed-property-names=true --default-parameters=true --destructuring=true --for-of=true --generators=true --numeric-literals=true --property-methods=true --property-name-shorthand=true --rest-parameters=true --spread=true --symbols=true --template-literals=true --unicode-escape-sequences=true --unicode-expressions=true --proper-tail-calls=true --annotations=true --array-comprehension=true --async-functions=true --async-generators=true --exponentiation=true --export-from-extended=true --for-on=true --generator-comprehension=true --member-variables=true --spread-properties=true --types=true --source-maps=file Through the above command, I'd like to compile "www/js/main.bbjs" to "_build/www/js/main.js" In the "www/js/main.bbjs" file, a dozen of ES6 modules are imported by the ES6 module directives: import common from './common.bbjs'; If the importing statement includes the import variable, the body of the imported module will be executed, even though only an empty string is exported from the target module. In the corresponding compilation output (i.e. the ES5 file), the below statement is present: var common = $traceurRuntime.getModule($traceurRuntime.normalizeModuleName("./common.bbjs", "../../../www/js/main.bbjs")).default; On the contrary, if the import variable is absent (e.g. as the below) in the importing statement, the body of the imported module won't be executed and the importing statement seems to be ignored in the main module "www/js/main.bbjs" by the Google Traceur. import './common.bbjs'; |
Has there been a fix or solution to this? It's currently breaking up my development flow. |
I'm really not sure why this isn't working for you. The following works as expected: http://google.github.io/traceur-compiler/demo/repl.html#import%20'.%2Fgenerators.js'%3B%0A Also, what version are you using? |
I'd like to report a bug for the ES6 module importing.
According to the ES6 spec., the ES6-Module statement "import " merely executes the JavaScript routine inside the module body but doesn't really import any external variables or functions into the current context.
However, accompanying the latest Google Traceur, the statement "import " doesn't execute the module body as expected. On the contrary, I feel that the importing statement is directly ignored.
Only the statement "import ... from ..." does run the ES6 module body. Nevertheless, in my use case, I only intend to execute a piece of JavaScript program by importing its module, without any of the importing variables.
I anticipate the incorrect ES6 compilation behavior can be renovated.
The text was updated successfully, but these errors were encountered: