implementing grayrest's suggested cleanup for object comprehensions
This commit is contained in:
parent
e110042275
commit
7667e16732
|
@ -522,26 +522,24 @@
|
|||
bnf = {};
|
||||
tokens = [];
|
||||
__a = grammar;
|
||||
for (name in __a) {
|
||||
for (name in __a) if (__hasProp.call(__a, name)) {
|
||||
non_terminal = __a[name];
|
||||
if (__hasProp.call(__a, name)) {
|
||||
bnf[name] = (function() {
|
||||
__b = []; __c = non_terminal;
|
||||
for (__d = 0; __d < __c.length; __d++) {
|
||||
option = __c[__d];
|
||||
__b.push((function() {
|
||||
__e = option[0].split(" ");
|
||||
for (__f = 0; __f < __e.length; __f++) {
|
||||
part = __e[__f];
|
||||
!grammar[part] ? tokens.push(part) : null;
|
||||
}
|
||||
name === "Root" ? (option[1] = "return " + option[1]) : null;
|
||||
return option;
|
||||
}).call(this));
|
||||
}
|
||||
return __b;
|
||||
}).call(this);
|
||||
}
|
||||
bnf[name] = (function() {
|
||||
__b = []; __c = non_terminal;
|
||||
for (__d = 0; __d < __c.length; __d++) {
|
||||
option = __c[__d];
|
||||
__b.push((function() {
|
||||
__e = option[0].split(" ");
|
||||
for (__f = 0; __f < __e.length; __f++) {
|
||||
part = __e[__f];
|
||||
!grammar[part] ? tokens.push(part) : null;
|
||||
}
|
||||
name === "Root" ? (option[1] = "return " + option[1]) : null;
|
||||
return option;
|
||||
}).call(this));
|
||||
}
|
||||
return __b;
|
||||
}).call(this);
|
||||
}
|
||||
tokens = tokens.join(" ");
|
||||
parser = new Parser({
|
||||
|
|
|
@ -38,11 +38,9 @@
|
|||
klass.prototype = new __a();
|
||||
klass.prototype.constructor = klass;
|
||||
__b = props;
|
||||
for (name in __b) {
|
||||
for (name in __b) if (__hasProp.call(__b, name)) {
|
||||
prop = __b[name];
|
||||
if (__hasProp.call(__b, name)) {
|
||||
((klass.prototype[name] = prop));
|
||||
}
|
||||
((klass.prototype[name] = prop));
|
||||
}
|
||||
return klass;
|
||||
};
|
||||
|
@ -1060,7 +1058,7 @@
|
|||
return true;
|
||||
},
|
||||
compile_node: function compile_node(o) {
|
||||
var body, body_dent, call, for_part, index, index_found, index_var, ivar, name, name_found, range, return_result, rvar, scope, set_result, source, source_part, step_part, svar, top_level, var_part, vars;
|
||||
var body, body_dent, for_part, index, index_found, index_var, ivar, name, name_found, range, return_result, rvar, scope, set_result, source, source_part, step_part, svar, top_level, var_part, vars;
|
||||
top_level = del(o, 'top') && !o.returns;
|
||||
range = this.source instanceof ValueNode && this.source.base instanceof RangeNode && !this.source.properties.length;
|
||||
source = range ? this.source.base : this.source;
|
||||
|
@ -1088,7 +1086,7 @@
|
|||
index_var = null;
|
||||
source_part = svar + ' = ' + this.source.compile(o) + ';\n' + this.idt();
|
||||
step_part = this.step ? ivar + ' += ' + this.step.compile(o) : ivar + '++';
|
||||
for_part = this.object ? ivar + ' in ' + svar : ivar + ' = 0; ' + ivar + ' < ' + svar + '.length; ' + step_part;
|
||||
for_part = ivar + ' = 0; ' + ivar + ' < ' + svar + '.length; ' + step_part;
|
||||
if (name) {
|
||||
var_part = body_dent + name + ' = ' + svar + '[' + ivar + '];\n';
|
||||
}
|
||||
|
@ -1116,11 +1114,7 @@
|
|||
}
|
||||
if (this.object) {
|
||||
o.scope.assign('__hasProp', 'Object.prototype.hasOwnProperty', true);
|
||||
call = new CallNode(new ValueNode(new LiteralNode('__hasProp'), [new AccessorNode(new LiteralNode('call'))]), [new LiteralNode(svar), new LiteralNode(ivar)]);
|
||||
body = Expressions.wrap([new IfNode(call, Expressions.wrap([body]), null, {
|
||||
statement: true
|
||||
})
|
||||
]);
|
||||
for_part = ivar + ' in ' + svar + ') if (__hasProp.call(' + svar + ', ' + ivar + ')';
|
||||
}
|
||||
if (!(top_level)) {
|
||||
return_result = '\n' + this.idt() + return_result + ';';
|
||||
|
|
|
@ -297,12 +297,10 @@
|
|||
})(this));
|
||||
unclosed = (function() {
|
||||
__i = []; __j = levels;
|
||||
for (key in __j) {
|
||||
for (key in __j) if (__hasProp.call(__j, key)) {
|
||||
value = __j[key];
|
||||
if (__hasProp.call(__j, key)) {
|
||||
if (value > 0) {
|
||||
__i.push(key);
|
||||
}
|
||||
if (value > 0) {
|
||||
__i.push(key);
|
||||
}
|
||||
}
|
||||
return __i;
|
||||
|
@ -329,11 +327,9 @@
|
|||
stack = [];
|
||||
debt = {};
|
||||
__i = INVERSES;
|
||||
for (key in __i) {
|
||||
for (key in __i) if (__hasProp.call(__i, key)) {
|
||||
val = __i[key];
|
||||
if (__hasProp.call(__i, key)) {
|
||||
((debt[key] = 0));
|
||||
}
|
||||
((debt[key] = 0));
|
||||
}
|
||||
return this.scan_tokens((function(__this) {
|
||||
var __func = function(prev, token, post, i) {
|
||||
|
|
|
@ -79,12 +79,10 @@
|
|||
var __a, __b, key, val;
|
||||
return ((function() {
|
||||
__a = []; __b = this.variables;
|
||||
for (key in __b) {
|
||||
for (key in __b) if (__hasProp.call(__b, key)) {
|
||||
val = __b[key];
|
||||
if (__hasProp.call(__b, key)) {
|
||||
if (val === 'var') {
|
||||
__a.push(key);
|
||||
}
|
||||
if (val === 'var') {
|
||||
__a.push(key);
|
||||
}
|
||||
}
|
||||
return __a;
|
||||
|
@ -96,12 +94,10 @@
|
|||
var __a, __b, key, val;
|
||||
return ((function() {
|
||||
__a = []; __b = this.variables;
|
||||
for (key in __b) {
|
||||
for (key in __b) if (__hasProp.call(__b, key)) {
|
||||
val = __b[key];
|
||||
if (__hasProp.call(__b, key)) {
|
||||
if (val.assigned) {
|
||||
__a.push([key, val.value]);
|
||||
}
|
||||
if (val.assigned) {
|
||||
__a.push([key, val.value]);
|
||||
}
|
||||
}
|
||||
return __a;
|
||||
|
|
|
@ -54,11 +54,9 @@
|
|||
return __a;
|
||||
}
|
||||
__f = obj;
|
||||
for (key in __f) {
|
||||
for (key in __f) if (__hasProp.call(__f, key)) {
|
||||
val = __f[key];
|
||||
if (__hasProp.call(__f, key)) {
|
||||
iterator.call(context, val, key, obj);
|
||||
}
|
||||
iterator.call(context, val, key, obj);
|
||||
}
|
||||
} catch (e) {
|
||||
if (e !== breaker) {
|
||||
|
@ -180,12 +178,10 @@
|
|||
return _.indexOf(obj, target) !== -1;
|
||||
}
|
||||
__a = obj;
|
||||
for (key in __a) {
|
||||
for (key in __a) if (__hasProp.call(__a, key)) {
|
||||
val = __a[key];
|
||||
if (__hasProp.call(__a, key)) {
|
||||
if (val === target) {
|
||||
return true;
|
||||
}
|
||||
if (val === target) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
@ -528,11 +524,9 @@
|
|||
return _.range(0, obj.length);
|
||||
}
|
||||
__a = []; __b = obj;
|
||||
for (key in __b) {
|
||||
for (key in __b) if (__hasProp.call(__b, key)) {
|
||||
val = __b[key];
|
||||
if (__hasProp.call(__b, key)) {
|
||||
__a.push(key);
|
||||
}
|
||||
__a.push(key);
|
||||
}
|
||||
return __a;
|
||||
};
|
||||
|
@ -550,11 +544,9 @@
|
|||
_.extend = function extend(destination, source) {
|
||||
var __a, key, val;
|
||||
__a = source;
|
||||
for (key in __a) {
|
||||
for (key in __a) if (__hasProp.call(__a, key)) {
|
||||
val = __a[key];
|
||||
if (__hasProp.call(__a, key)) {
|
||||
destination[key] = val;
|
||||
}
|
||||
destination[key] = val;
|
||||
}
|
||||
return destination;
|
||||
};
|
||||
|
|
|
@ -896,7 +896,7 @@ ForNode: exports.ForNode: inherit Node, {
|
|||
index_var: null
|
||||
source_part: svar + ' = ' + @source.compile(o) + ';\n' + @idt()
|
||||
step_part: if @step then ivar + ' += ' + @step.compile(o) else ivar + '++'
|
||||
for_part: if @object then ivar + ' in ' + svar else ivar + ' = 0; ' + ivar + ' < ' + svar + '.length; ' + step_part
|
||||
for_part: ivar + ' = 0; ' + ivar + ' < ' + svar + '.length; ' + step_part
|
||||
var_part: body_dent + name + ' = ' + svar + '[' + ivar + '];\n' if name
|
||||
set_result: if rvar then @idt() + rvar + ' = []; ' else @idt()
|
||||
return_result: rvar or ''
|
||||
|
@ -910,13 +910,7 @@ ForNode: exports.ForNode: inherit Node, {
|
|||
body: Expressions.wrap([new IfNode(@filter, body)])
|
||||
if @object
|
||||
o.scope.assign('__hasProp', 'Object.prototype.hasOwnProperty', true)
|
||||
call: new CallNode(
|
||||
new ValueNode(new LiteralNode('__hasProp'), [new AccessorNode(new LiteralNode('call'))])
|
||||
[new LiteralNode(svar), new LiteralNode(ivar)]
|
||||
)
|
||||
body: Expressions.wrap([new IfNode(
|
||||
call, Expressions.wrap([body]), null, {statement: true}
|
||||
)])
|
||||
for_part: ivar + ' in ' + svar + ') if (__hasProp.call(' + svar + ', ' + ivar + ')'
|
||||
return_result: '\n' + @idt() + return_result + ';' unless top_level
|
||||
body: body.compile(merge(o, {indent: body_dent, top: true}))
|
||||
vars: if range then name else name + ', ' + ivar
|
||||
|
|
Loading…
Reference in New Issue