Skip to content
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

EmberCLI and ES6 Support #44

Open
alem0lars opened this issue Jun 28, 2014 · 7 comments
Open

EmberCLI and ES6 Support #44

alem0lars opened this issue Jun 28, 2014 · 7 comments

Comments

@alem0lars
Copy link

If I try to use ember script with EmberCLI (which uses ES6 style import modules) it doesn't work anymore (e.g. with EmberCLI 0.37).

This problem is always reproducible when using ES6 because of the lack of global namespaces. Now Ember is not globally available so I have to import it (import Ember from "ember").

The problem is that the substitution of import Ember from "ember" is after the generated getters and setters generated lines, so I always get the TypeError: undefined Ember in any project using both EmberScript and ES6.

I think that the problem is more generic because somehow the EmberScript compiler is twisting the rows (which is generally bad).
As a programmer if I write

`import Ember from "ember"`
class IndexRoute extends Ember.Route

I expect that the import thing happens before the class definition thing.

Instead, this is what has been generated:

var IndexRoute;
var get$ = Ember.get;
var set$ = Ember.set;
import Ember from "ember";
IndexRoute = Ember.Route.extend();
export default IndexRoute;

As you can see the fourth line should happen before to the first three lines, in order to have the same semantics has the EmberScript defined code.

@alem0lars alem0lars changed the title ES6 Support EmberCLI and ES6 Support Jun 28, 2014
@huafu
Copy link

huafu commented Jul 5, 2014

Yeah that's why there is #42

@stefanpenner
Copy link

honestly doing:

var get$ = Ember.get;
var set$ = Ember.set;

would break bindings in cycle situations anyways, so i would discourage the re-aliasing, once full es6 syntax is supported + ember finally finishes that migration we will have.

import { get, set } from 'ember/accessors';`

no need to re-alias, and cycle safe bindings are preserved.

@kristianmandrup
Copy link

👍

@NedgoIO
Copy link

NedgoIO commented Sep 9, 2014

So, is this safe to use with ember-cli 0.40 or will it break?

@kristianmandrup
Copy link

I think we should motivate/encourage @ghempton to make a new release that fixes this and other blocking issues. Until such fixes are made, I don't think it will work for the latest ember/cli releases.

@kristianmandrup
Copy link

Fixed and tested here ;)

#49

With room for improvements...

@mszoernyi
Copy link

What's the status on this one? Should we use @kristianmandrup's PR? Or is there another way to fix this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants