Skip to content

problem with minified version of ember #733

Closed
maffoo opened this Issue Apr 24, 2012 · 6 comments

3 participants

@maffoo
maffoo commented Apr 24, 2012

Ember's jison-generated parser contains the function:

performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {

which minifies to:

performAction:function d(a,b,c,d,e,f,g){

where the function name 'd' matches the name of the fourth parameter. This seems to work in most cases (e.g. browsers) but when I try to precompile ember templates on the server using rhino I get errors because the variable name 'd' resolves to the function itself, rather than the argument. It would seem that this minification is incorrect, because a collision between the function and argument name is probably undesired.

@wagenet
Ember.js member
wagenet commented Apr 24, 2012

@maffoo This is either a bug in uglifyjs, which we use for minification, or in Rhino.

@maffoo
maffoo commented Apr 25, 2012

@wagenet I tried piping ember-0.9.7.1.js through uglifyjs here: http://marijnhaverbeke.nl/uglifyjs

The offending parser function comes out as

performAction:function(b,c,d,e,f,g,h){

with the function name removed entirely, as I would expect. So I think there still might be an issue with the way the minified ember file is being produced. It may also be the case that rhino has a bug with handling functions whose argument names collide with the function name, but it would still appear there's a problem with the minification.

@eishay
eishay commented Apr 25, 2012

To be specific is this line:
https://github.com/emberjs/ember.js/blob/master/packages/handlebars/lib/main.js#L104

@wagenet doesn't it need to be:

performAction: function performAction(yytext,yyleng,yylineno,yy,yystate,$$,_$) ...

or

performAction: function(yytext,yyleng,yylineno,yy,yystate,$$,_$) ...

I don't understand the syntax:

methodName: function anonymous(){}

What does it mean?

@wagenet
Ember.js member
wagenet commented Apr 25, 2012

@eishay That line is generated by jison. It's not something we have direct control over.

@wagenet wagenet closed this in e018447 Apr 25, 2012
@wagenet
Ember.js member
wagenet commented Apr 25, 2012

Looks like it was a uglifier bug that's been fixed in newer versions.

@maffoo
maffoo commented Apr 25, 2012

great! thanks for the quick fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.