Using global symbol does not work anymore


#1

Hi,

I am moving from ember@1.13.0-beta.1+canary.e60116d4 to ember@2.0.0-canary+4b74503e. I have been using some old modules with success like this:

app.import('vendor/js/generated/libphonenumber.js');  // provides i18n

Which includes the libphonenumber.js module into vendor.js, as expected, and makes it available for use in my application. From any module in my application I just need to:

/* global i18n */

// Now I can use the global symbol i18n

As said, this worked fine in ember@1.13.0-beta.1+canary.e60116d4, but with ember@2.0.0-canary+4b74503e I get:

Uncaught ReferenceError: i18n is not defined

I have verified the vendor.js file, and the module providing the i18n symbol is still there. Why is it not defined?

It could be that the application starts faster, before vendor.js has been evaluated (vendor.js is more than double in size). I am not sure when the code starts running, but in the Chrome Network Tab I see that indeed the app.js is downloaded much earlier than the vendor.js.

But I have verified that with ember@1.13.0-beta.1+canary.e60116d4 that was also the case: vendor.js is downloaded later. Could it be that the startup semantics of ember has changed between 1.13.0 and 2.0.0?

When does the code in app.js (the Ember application) start running? Why is it not waiting for vendor.js to be evaulated? It is not possible to run the application without vendor.js!

Thanks, gonvaled