mirror of
https://github.com/jashkenas/coffeescript.git
synced 2026-05-03 03:00:14 -04:00
fixes #1009: classes with reserved words as determined names
This commit is contained in:
@@ -1114,6 +1114,9 @@
|
||||
var decl, klass, lname, name;
|
||||
decl = this.determineName();
|
||||
name = decl || this.name || '_Class';
|
||||
if (name.reserved) {
|
||||
name = "_" + name;
|
||||
}
|
||||
lname = new Literal(name);
|
||||
this.setContext(name);
|
||||
this.walkBody(name, o);
|
||||
|
||||
@@ -892,6 +892,7 @@ exports.Class = class Class extends Base
|
||||
compileNode: (o) ->
|
||||
decl = @determineName()
|
||||
name = decl or @name or '_Class'
|
||||
name = "_#{name}" if name.reserved
|
||||
lname = new Literal name
|
||||
|
||||
@setContext name
|
||||
|
||||
@@ -500,3 +500,6 @@ test "#1464: bound class methods should keep context", ->
|
||||
@boundStaticEqual= => new this(nonce2)
|
||||
eq nonce, C.boundStaticColon().id
|
||||
eq nonce2, C.boundStaticEqual().id
|
||||
|
||||
test "#1009: classes with reserved words as determined names", ->
|
||||
eq 'function', typeof (-> class @for).call {}
|
||||
|
||||
Reference in New Issue
Block a user