mirror of
https://github.com/jashkenas/coffeescript.git
synced 2026-02-18 19:34:27 -05:00
Back four commits ... Fixing named function expressions -> function declarations for IE. (grumble grumble)
This commit is contained in:
91
lib/nodes.js
91
lib/nodes.js
@@ -21,10 +21,11 @@
|
||||
};
|
||||
exports.Base = (function() {
|
||||
Base = (function() {
|
||||
return function Base() {
|
||||
function Base() {
|
||||
this.tags = {};
|
||||
return this;
|
||||
};
|
||||
return Base;
|
||||
})();
|
||||
Base.prototype.compile = function(o) {
|
||||
var closure, code, top;
|
||||
@@ -157,11 +158,12 @@
|
||||
})();
|
||||
exports.Expressions = (function() {
|
||||
Expressions = (function() {
|
||||
return function Expressions(nodes) {
|
||||
function Expressions(nodes) {
|
||||
Expressions.__super__.constructor.call(this);
|
||||
this.expressions = compact(flatten(nodes || []));
|
||||
return this;
|
||||
};
|
||||
return Expressions;
|
||||
})();
|
||||
__extends(Expressions, Base);
|
||||
Expressions.prototype.children = ['expressions'];
|
||||
@@ -244,11 +246,12 @@
|
||||
};
|
||||
exports.Literal = (function() {
|
||||
Literal = (function() {
|
||||
return function Literal(_arg) {
|
||||
function Literal(_arg) {
|
||||
this.value = _arg;
|
||||
Literal.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Literal;
|
||||
})();
|
||||
__extends(Literal, Base);
|
||||
Literal.prototype.makeReturn = function() {
|
||||
@@ -277,11 +280,12 @@
|
||||
})();
|
||||
exports.Return = (function() {
|
||||
Return = (function() {
|
||||
return function Return(_arg) {
|
||||
function Return(_arg) {
|
||||
this.expression = _arg;
|
||||
Return.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Return;
|
||||
})();
|
||||
__extends(Return, Base);
|
||||
Return.prototype.isStatement = YES;
|
||||
@@ -311,7 +315,7 @@
|
||||
})();
|
||||
exports.Value = (function() {
|
||||
Value = (function() {
|
||||
return function Value(_arg, _arg2, tag) {
|
||||
function Value(_arg, _arg2, tag) {
|
||||
this.properties = _arg2;
|
||||
this.base = _arg;
|
||||
Value.__super__.constructor.call(this);
|
||||
@@ -321,6 +325,7 @@
|
||||
}
|
||||
return this;
|
||||
};
|
||||
return Value;
|
||||
})();
|
||||
__extends(Value, Base);
|
||||
Value.prototype.children = ['base', 'properties'];
|
||||
@@ -443,11 +448,12 @@
|
||||
}).call(this);
|
||||
exports.Comment = (function() {
|
||||
Comment = (function() {
|
||||
return function Comment(_arg) {
|
||||
function Comment(_arg) {
|
||||
this.comment = _arg;
|
||||
Comment.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Comment;
|
||||
})();
|
||||
__extends(Comment, Base);
|
||||
Comment.prototype.isStatement = YES;
|
||||
@@ -459,7 +465,7 @@
|
||||
})();
|
||||
exports.Call = (function() {
|
||||
Call = (function() {
|
||||
return function Call(variable, _arg, _arg2) {
|
||||
function Call(variable, _arg, _arg2) {
|
||||
this.exist = _arg2;
|
||||
this.args = _arg;
|
||||
Call.__super__.constructor.call(this);
|
||||
@@ -469,6 +475,7 @@
|
||||
this.args || (this.args = []);
|
||||
return this;
|
||||
};
|
||||
return Call;
|
||||
})();
|
||||
__extends(Call, Base);
|
||||
Call.prototype.children = ['variable', 'args'];
|
||||
@@ -606,12 +613,13 @@
|
||||
})();
|
||||
exports.Extends = (function() {
|
||||
Extends = (function() {
|
||||
return function Extends(_arg, _arg2) {
|
||||
function Extends(_arg, _arg2) {
|
||||
this.parent = _arg2;
|
||||
this.child = _arg;
|
||||
Extends.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Extends;
|
||||
})();
|
||||
__extends(Extends, Base);
|
||||
Extends.prototype.children = ['child', 'parent'];
|
||||
@@ -624,13 +632,14 @@
|
||||
})();
|
||||
exports.Accessor = (function() {
|
||||
Accessor = (function() {
|
||||
return function Accessor(_arg, tag) {
|
||||
function Accessor(_arg, tag) {
|
||||
this.name = _arg;
|
||||
Accessor.__super__.constructor.call(this);
|
||||
this.prototype = tag === 'prototype' ? '.prototype' : '';
|
||||
this.soakNode = tag === 'soak';
|
||||
return this;
|
||||
};
|
||||
return Accessor;
|
||||
})();
|
||||
__extends(Accessor, Base);
|
||||
Accessor.prototype.children = ['name'];
|
||||
@@ -645,11 +654,12 @@
|
||||
})();
|
||||
exports.Index = (function() {
|
||||
Index = (function() {
|
||||
return function Index(_arg) {
|
||||
function Index(_arg) {
|
||||
this.index = _arg;
|
||||
Index.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Index;
|
||||
})();
|
||||
__extends(Index, Base);
|
||||
Index.prototype.children = ['index'];
|
||||
@@ -666,7 +676,7 @@
|
||||
})();
|
||||
exports.Range = (function() {
|
||||
Range = (function() {
|
||||
return function Range(_arg, _arg2, tag) {
|
||||
function Range(_arg, _arg2, tag) {
|
||||
this.to = _arg2;
|
||||
this.from = _arg;
|
||||
Range.__super__.constructor.call(this);
|
||||
@@ -674,6 +684,7 @@
|
||||
this.equals = this.exclusive ? '' : '=';
|
||||
return this;
|
||||
};
|
||||
return Range;
|
||||
})();
|
||||
__extends(Range, Base);
|
||||
Range.prototype.children = ['from', 'to'];
|
||||
@@ -753,11 +764,12 @@
|
||||
})();
|
||||
exports.Slice = (function() {
|
||||
Slice = (function() {
|
||||
return function Slice(_arg) {
|
||||
function Slice(_arg) {
|
||||
this.range = _arg;
|
||||
Slice.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Slice;
|
||||
})();
|
||||
__extends(Slice, Base);
|
||||
Slice.prototype.children = ['range'];
|
||||
@@ -775,11 +787,12 @@
|
||||
})();
|
||||
exports.ObjectLiteral = (function() {
|
||||
ObjectLiteral = (function() {
|
||||
return function ObjectLiteral(props) {
|
||||
function ObjectLiteral(props) {
|
||||
ObjectLiteral.__super__.constructor.call(this);
|
||||
this.objects = (this.properties = props || []);
|
||||
return this;
|
||||
};
|
||||
return ObjectLiteral;
|
||||
})();
|
||||
__extends(ObjectLiteral, Base);
|
||||
ObjectLiteral.prototype.children = ['properties'];
|
||||
@@ -830,12 +843,13 @@
|
||||
})();
|
||||
exports.ArrayLiteral = (function() {
|
||||
ArrayLiteral = (function() {
|
||||
return function ArrayLiteral(_arg) {
|
||||
function ArrayLiteral(_arg) {
|
||||
this.objects = _arg;
|
||||
ArrayLiteral.__super__.constructor.call(this);
|
||||
this.objects || (this.objects = []);
|
||||
return this;
|
||||
};
|
||||
return ArrayLiteral;
|
||||
})();
|
||||
__extends(ArrayLiteral, Base);
|
||||
ArrayLiteral.prototype.children = ['objects'];
|
||||
@@ -864,7 +878,7 @@
|
||||
})();
|
||||
exports.Class = (function() {
|
||||
Class = (function() {
|
||||
return function Class(variable, _arg, _arg2) {
|
||||
function Class(variable, _arg, _arg2) {
|
||||
this.properties = _arg2;
|
||||
this.parent = _arg;
|
||||
Class.__super__.constructor.call(this);
|
||||
@@ -873,6 +887,7 @@
|
||||
this.returns = false;
|
||||
return this;
|
||||
};
|
||||
return Class;
|
||||
})();
|
||||
__extends(Class, Base);
|
||||
Class.prototype.children = ['variable', 'parent', 'properties'];
|
||||
@@ -958,13 +973,14 @@
|
||||
})();
|
||||
exports.Assign = (function() {
|
||||
Assign = (function() {
|
||||
return function Assign(_arg, _arg2, _arg3) {
|
||||
function Assign(_arg, _arg2, _arg3) {
|
||||
this.context = _arg3;
|
||||
this.value = _arg2;
|
||||
this.variable = _arg;
|
||||
Assign.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Assign;
|
||||
})();
|
||||
__extends(Assign, Base);
|
||||
Assign.prototype.METHOD_DEF = /^(?:(\S+)\.prototype\.)?([$A-Za-z_][$\w]*)$/;
|
||||
@@ -1083,7 +1099,7 @@
|
||||
})();
|
||||
exports.Code = (function() {
|
||||
Code = (function() {
|
||||
return function Code(_arg, _arg2, tag) {
|
||||
function Code(_arg, _arg2, tag) {
|
||||
this.body = _arg2;
|
||||
this.params = _arg;
|
||||
Code.__super__.constructor.call(this);
|
||||
@@ -1095,6 +1111,7 @@
|
||||
}
|
||||
return this;
|
||||
};
|
||||
return Code;
|
||||
})();
|
||||
__extends(Code, Base);
|
||||
Code.prototype.children = ['params', 'body'];
|
||||
@@ -1155,8 +1172,8 @@
|
||||
o.indent = this.idt(2);
|
||||
}
|
||||
code = this.body.expressions.length ? ("\n" + (this.body.compileWithDeclarations(o)) + "\n") : '';
|
||||
open = this.className ? ("(function() {\n" + (this.idt(1)) + "return function " + (this.className) + "(") : "function(";
|
||||
close = this.className ? ("" + (code && this.idt(1)) + "};\n" + (this.tab) + "})()") : ("" + (code && this.tab) + "}");
|
||||
open = this.className ? ("(function() {\n" + (this.idt(1)) + "function " + (this.className) + "(") : "function(";
|
||||
close = this.className ? ("" + (code && this.idt(1)) + "};\n" + (this.idt(1)) + "return " + (this.className) + ";\n" + (this.tab) + "})()") : ("" + (code && this.tab) + "}");
|
||||
func = ("" + open + (params.join(', ')) + ") {" + code + close);
|
||||
o.scope.endLevel();
|
||||
if (this.bound) {
|
||||
@@ -1172,7 +1189,7 @@
|
||||
})();
|
||||
exports.Param = (function() {
|
||||
Param = (function() {
|
||||
return function Param(_arg, _arg2, _arg3) {
|
||||
function Param(_arg, _arg2, _arg3) {
|
||||
this.splat = _arg3;
|
||||
this.attach = _arg2;
|
||||
this.name = _arg;
|
||||
@@ -1180,6 +1197,7 @@
|
||||
this.value = new Literal(this.name);
|
||||
return this;
|
||||
};
|
||||
return Param;
|
||||
})();
|
||||
__extends(Param, Base);
|
||||
Param.prototype.children = ['name'];
|
||||
@@ -1201,7 +1219,7 @@
|
||||
})();
|
||||
exports.Splat = (function() {
|
||||
Splat = (function() {
|
||||
return function Splat(name) {
|
||||
function Splat(name) {
|
||||
Splat.__super__.constructor.call(this);
|
||||
if (!name.compile) {
|
||||
name = new Literal(name);
|
||||
@@ -1209,6 +1227,7 @@
|
||||
this.name = name;
|
||||
return this;
|
||||
};
|
||||
return Splat;
|
||||
})();
|
||||
__extends(Splat, Base);
|
||||
Splat.prototype.children = ['name'];
|
||||
@@ -1271,12 +1290,13 @@
|
||||
}).call(this);
|
||||
exports.While = (function() {
|
||||
While = (function() {
|
||||
return function While(condition, opts) {
|
||||
function While(condition, opts) {
|
||||
While.__super__.constructor.call(this);
|
||||
this.condition = ((opts != null) ? opts.invert : undefined) ? condition.invert() : condition;
|
||||
this.guard = ((opts != null) ? opts.guard : undefined);
|
||||
return this;
|
||||
};
|
||||
return While;
|
||||
})();
|
||||
__extends(While, Base);
|
||||
While.prototype.children = ['condition', 'guard', 'body'];
|
||||
@@ -1322,7 +1342,7 @@
|
||||
})();
|
||||
exports.Op = (function() {
|
||||
Op = (function() {
|
||||
return function Op(_arg, _arg2, _arg3, flip) {
|
||||
function Op(_arg, _arg2, _arg3, flip) {
|
||||
this.second = _arg3;
|
||||
this.first = _arg2;
|
||||
this.operator = _arg;
|
||||
@@ -1340,6 +1360,7 @@
|
||||
}
|
||||
return this;
|
||||
};
|
||||
return Op;
|
||||
})();
|
||||
__extends(Op, Base);
|
||||
Op.prototype.CONVERSIONS = {
|
||||
@@ -1433,12 +1454,13 @@
|
||||
})();
|
||||
exports.In = (function() {
|
||||
In = (function() {
|
||||
return function In(_arg, _arg2) {
|
||||
function In(_arg, _arg2) {
|
||||
this.array = _arg2;
|
||||
this.object = _arg;
|
||||
In.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return In;
|
||||
})();
|
||||
__extends(In, Base);
|
||||
In.prototype.children = ['object', 'array'];
|
||||
@@ -1477,7 +1499,7 @@
|
||||
})();
|
||||
exports.Try = (function() {
|
||||
Try = (function() {
|
||||
return function Try(_arg, _arg2, _arg3, _arg4) {
|
||||
function Try(_arg, _arg2, _arg3, _arg4) {
|
||||
this.ensure = _arg4;
|
||||
this.recovery = _arg3;
|
||||
this.error = _arg2;
|
||||
@@ -1485,6 +1507,7 @@
|
||||
Try.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Try;
|
||||
})();
|
||||
__extends(Try, Base);
|
||||
Try.prototype.children = ['attempt', 'recovery', 'ensure'];
|
||||
@@ -1512,11 +1535,12 @@
|
||||
})();
|
||||
exports.Throw = (function() {
|
||||
Throw = (function() {
|
||||
return function Throw(_arg) {
|
||||
function Throw(_arg) {
|
||||
this.expression = _arg;
|
||||
Throw.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Throw;
|
||||
})();
|
||||
__extends(Throw, Base);
|
||||
Throw.prototype.children = ['expression'];
|
||||
@@ -1529,11 +1553,12 @@
|
||||
})();
|
||||
exports.Existence = (function() {
|
||||
Existence = (function() {
|
||||
return function Existence(_arg) {
|
||||
function Existence(_arg) {
|
||||
this.expression = _arg;
|
||||
Existence.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Existence;
|
||||
})();
|
||||
__extends(Existence, Base);
|
||||
Existence.prototype.children = ['expression'];
|
||||
@@ -1547,11 +1572,12 @@
|
||||
})();
|
||||
exports.Parens = (function() {
|
||||
Parens = (function() {
|
||||
return function Parens(_arg) {
|
||||
function Parens(_arg) {
|
||||
this.expression = _arg;
|
||||
Parens.__super__.constructor.call(this);
|
||||
return this;
|
||||
};
|
||||
return Parens;
|
||||
})();
|
||||
__extends(Parens, Base);
|
||||
Parens.prototype.children = ['expression'];
|
||||
@@ -1582,7 +1608,7 @@
|
||||
})();
|
||||
exports.For = (function() {
|
||||
For = (function() {
|
||||
return function For(_arg, source, _arg2, _arg3) {
|
||||
function For(_arg, source, _arg2, _arg3) {
|
||||
var _ref2, _ref3;
|
||||
this.index = _arg3;
|
||||
this.name = _arg2;
|
||||
@@ -1601,6 +1627,7 @@
|
||||
this.returns = false;
|
||||
return this;
|
||||
};
|
||||
return For;
|
||||
})();
|
||||
__extends(For, Base);
|
||||
For.prototype.children = ['body', 'source', 'guard'];
|
||||
@@ -1717,7 +1744,7 @@
|
||||
})();
|
||||
exports.Switch = (function() {
|
||||
Switch = (function() {
|
||||
return function Switch(_arg, _arg2, _arg3) {
|
||||
function Switch(_arg, _arg2, _arg3) {
|
||||
this.otherwise = _arg3;
|
||||
this.cases = _arg2;
|
||||
this.subject = _arg;
|
||||
@@ -1726,6 +1753,7 @@
|
||||
this.subject || (this.subject = new Literal('true'));
|
||||
return this;
|
||||
};
|
||||
return Switch;
|
||||
})();
|
||||
__extends(Switch, Base);
|
||||
Switch.prototype.children = ['subject', 'cases', 'otherwise'];
|
||||
@@ -1772,7 +1800,7 @@
|
||||
})();
|
||||
exports.If = (function() {
|
||||
If = (function() {
|
||||
return function If(condition, _arg, _arg2) {
|
||||
function If(condition, _arg, _arg2) {
|
||||
this.tags = _arg2;
|
||||
this.body = _arg;
|
||||
this.tags || (this.tags = {});
|
||||
@@ -1781,6 +1809,7 @@
|
||||
this.isChain = false;
|
||||
return this;
|
||||
};
|
||||
return If;
|
||||
})();
|
||||
__extends(If, Base);
|
||||
If.prototype.children = ['condition', 'body', 'elseBody', 'assigner'];
|
||||
|
||||
Reference in New Issue
Block a user