1
0
Fork 0
mirror of https://github.com/jashkenas/coffeescript.git synced 2022-11-09 12:23:24 -05:00

coco b82de20: removed Base::idt

This commit is contained in:
Jeremy Ashkenas 2010-11-08 23:20:11 -05:00
parent 9c5eca9131
commit e882af9f8d
2 changed files with 25 additions and 33 deletions

View file

@ -70,9 +70,6 @@
}
return [src, tmp];
};
Base.prototype.idt = function(tabs) {
return (this.tab || '') + Array((tabs || 0) + 1).join(TAB);
};
Base.prototype.makeReturn = function() {
return new Return(this);
};
@ -637,7 +634,7 @@
}
return "" + fun + ".apply(" + ref + ", " + splatArgs + ")";
}
idt = this.idt(1);
idt = this.tab + TAB;
return "(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args);\n" + idt + "return typeof result === \"object\" ? result : child;\n" + this.tab + "})(" + (this.variable.compile(o, LEVEL_LIST)) + ", " + splatArgs + ", function() {})";
};
return Call;
@ -716,7 +713,7 @@
break;
}
}
o.indent = idt = this.idt(1);
idt = o.indent += TAB;
nonComments = ((function() {
_ref2 = this.properties;
_result = [];
@ -811,7 +808,7 @@
Arr.prototype.children = ['objects'];
Arr.prototype.compileNode = function(o) {
var code, i, obj, objects, _len, _ref;
o.indent = this.idt(1);
o.indent += TAB;
if (code = Splat.compileSplattedArray(o, this.objects)) {
return code;
}
@ -1097,7 +1094,7 @@
var close, code, comm, exprs, func, i, idt, lit, open, p, param, ref, scope, sharedScope, splats, v, val, vars, wasEmpty, _i, _j, _len, _len2, _len3, _ref, _ref2, _result, _this;
sharedScope = del(o, 'sharedScope');
o.scope = scope = sharedScope || new Scope(o.scope, this.body, this);
o.indent = this.idt(1);
o.indent += TAB;
delete o.bare;
delete o.globals;
vars = [];
@ -1157,10 +1154,10 @@
}
}
comm = this.comment ? this.comment.compile(o) + '\n' : '';
idt = o.indent;
if (this.className) {
o.indent = this.idt(2);
o.indent += TAB;
}
idt = this.idt(1);
code = this.body.isEmpty() ? '' : "\n" + (this.body.compileWithDeclarations(o)) + "\n";
if (this.className) {
open = "(function() {\n" + comm + idt + "function " + this.className + "(";
@ -1317,7 +1314,7 @@
};
While.prototype.compileNode = function(o) {
var body, code, rvar, set;
o.indent = this.idt(1);
o.indent += TAB;
set = '';
body = this.body;
if (body.isEmpty()) {
@ -1540,7 +1537,7 @@
};
Try.prototype.compileNode = function(o) {
var catchPart, errorPart;
o.indent = this.idt(1);
o.indent += TAB;
errorPart = this.error ? " (" + (this.error.compile(o)) + ") " : ' ';
catchPart = this.recovery ? " catch" + errorPart + "{\n" + (this.recovery.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}" : !(this.ensure || this.recovery) ? ' catch (_e) {}' : void 0;
return ("" + this.tab + "try {\n" + (this.attempt.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}" + (catchPart || '')) + (this.ensure ? " finally {\n" + (this.ensure.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}" : '');
@ -1668,7 +1665,7 @@
index = (_ref2 = this.index) != null ? _ref2.compile(o) : void 0;
ivar = !index ? scope.freeVariable('i') : index;
varPart = guardPart = defPart = retPart = '';
idt = this.idt(1);
idt = o.indent + TAB;
if (!hasCode) {
if (name) {
scope.find(name, true);
@ -1838,8 +1835,8 @@
};
Switch.prototype.compileNode = function(o) {
var block, body, code, cond, conditions, expr, i, idt1, idt2, _i, _j, _len, _len2, _ref, _ref2, _ref3, _ref4;
idt1 = this.idt(1);
idt2 = o.indent = this.idt(2);
idt1 = o.indent + TAB;
idt2 = o.indent = idt1 + TAB;
code = this.tab + ("switch (" + (((_ref = this.subject) != null ? _ref.compile(o, LEVEL_PAREN) : void 0) || false) + ") {\n");
for (i = 0, _len = this.cases.length; i < _len; i++) {
_ref2 = this.cases[i], conditions = _ref2[0], block = _ref2[1];
@ -1934,7 +1931,7 @@
var body, child, cond, ifPart;
child = del(o, 'chainChild');
cond = this.condition.compile(o, LEVEL_PAREN);
o.indent = this.idt(1);
o.indent += TAB;
body = this.ensureExpressions(this.body).compile(o);
if (body) {
body = "\n" + body + "\n" + this.tab;

View file

@ -71,10 +71,6 @@ exports.Base = class Base
src = "#{ tmp = o.scope.freeVariable name } = #{src}"
[src, tmp]
# Convenience method to grab the current indentation level, plus tabbing in.
idt: (tabs) ->
(@tab or '') + Array((tabs or 0) + 1).join TAB
# Construct a node that returns the current node's result.
# Note that this is overridden for smarter behavior for
# many statement nodes (eg If, For)...
@ -506,7 +502,7 @@ exports.Call = class Call extends Base
fun = ref = base.compile o, LEVEL_ACCESS
fun += name.compile o if name
return "#{fun}.apply(#{ref}, #{splatArgs})"
idt = @idt 1
idt = @tab + TAB
"""
(function(func, args, ctor) {
#{idt}ctor.prototype = func.prototype;
@ -577,7 +573,7 @@ exports.Obj = class Obj extends Base
for prop, i in @properties when (prop.variable or prop).base instanceof Parens
rest = @properties.splice i
break
o.indent = idt = @idt 1
idt = o.indent += TAB
nonComments = (prop for prop in @properties when prop not instanceof Comment)
lastNoncom = last nonComments
props = for prop, i in @properties
@ -635,7 +631,7 @@ exports.Arr = class Arr extends Base
@objects = objs or []
compileNode: (o) ->
o.indent = @idt 1
o.indent += TAB
return code if code = Splat.compileSplattedArray o, @objects
objects = []
for obj, i in @objects
@ -876,7 +872,7 @@ exports.Code = class Code extends Base
compileNode: (o) ->
sharedScope = del o, 'sharedScope'
o.scope = scope = sharedScope or new Scope o.scope, @body, this
o.indent = @idt 1
o.indent += TAB
delete o.bare
delete o.globals
vars = []
@ -904,10 +900,9 @@ exports.Code = class Code extends Base
@body.makeReturn() unless wasEmpty or @noReturn
scope.parameter vars[i] = v.compile o for v, i in vars unless splats
comm = if @comment then @comment.compile(o) + '\n' else ''
o.indent = @idt 2 if @className
idt = @idt 1
code = if @body.isEmpty() then ''
else "\n#{ @body.compileWithDeclarations o }\n"
idt = o.indent
o.indent += TAB if @className
code = if @body.isEmpty() then '' else "\n#{ @body.compileWithDeclarations o }\n"
if @className
open = "(function() {\n#{comm}#{idt}function #{@className}("
close = "#{ code and idt }}\n#{idt}return #{@className};\n#{@tab}})()"
@ -1021,7 +1016,7 @@ exports.While = class While extends Base
# *while* can be used as a part of a larger expression -- while loops may
# return an array containing the computed result of each iteration.
compileNode: (o) ->
o.indent = @idt 1
o.indent += TAB
set = ''
{body} = this
if body.isEmpty()
@ -1183,7 +1178,7 @@ exports.Try = class Try extends Base
# Compilation is more or less as you would expect -- the *finally* clause
# is optional, the *catch* is not.
compileNode: (o) ->
o.indent = @idt 1
o.indent += TAB
errorPart = if @error then " (#{ @error.compile o }) " else ' '
catchPart = if @recovery
" catch#{errorPart}{\n#{ @recovery.compile o, LEVEL_TOP }\n#{@tab}}"
@ -1311,7 +1306,7 @@ exports.For = class For extends Base
index = @index?.compile o
ivar = if not index then scope.freeVariable 'i' else index
varPart = guardPart = defPart = retPart = ''
idt = @idt 1
idt = o.indent + TAB
unless hasCode
scope.find(name, yes) if name
scope.find(index, yes) if index
@ -1422,8 +1417,8 @@ exports.Switch = class Switch extends Base
this
compileNode: (o) ->
idt1 = @idt 1
idt2 = o.indent = @idt 2
idt1 = o.indent + TAB
idt2 = o.indent = idt1 + TAB
code = @tab + "switch (#{ @subject?.compile(o, LEVEL_PAREN) or false }) {\n"
for [conditions, block], i in @cases
for cond in flatten [conditions]
@ -1488,7 +1483,7 @@ exports.If = class If extends Base
compileStatement: (o) ->
child = del o, 'chainChild'
cond = @condition.compile o, LEVEL_PAREN
o.indent = @idt 1
o.indent += TAB
body = @ensureExpressions(@body).compile o
body = "\n#{body}\n#{@tab}" if body
ifPart = "if (#{cond}) {#{body}}"