broke the flag for --no-wrap, fixed.
This commit is contained in:
parent
026e7649d5
commit
9eceab667c
|
@ -209,7 +209,7 @@
|
||||||
o = {
|
o = {
|
||||||
source: source
|
source: source
|
||||||
};
|
};
|
||||||
o['no-wrap'] = options['no-wrap'];
|
o['no_wrap'] = options['no-wrap'];
|
||||||
return o;
|
return o;
|
||||||
};
|
};
|
||||||
// Print the `--help` usage message and exit.
|
// Print the `--help` usage message and exit.
|
||||||
|
|
26
lib/nodes.js
26
lib/nodes.js
|
@ -1009,7 +1009,7 @@ idt += TAB
|
||||||
}).call(this);
|
}).call(this);
|
||||||
//### SplatNode
|
//### SplatNode
|
||||||
// A splat, either as a parameter to a function, an argument to a call,
|
// A splat, either as a parameter to a function, an argument to a call,
|
||||||
// or in a destructuring assignment.
|
// or as part of a destructuring assignment.
|
||||||
exports.SplatNode = (function() {
|
exports.SplatNode = (function() {
|
||||||
SplatNode = function SplatNode(name) {
|
SplatNode = function SplatNode(name) {
|
||||||
if (!(name.compile)) {
|
if (!(name.compile)) {
|
||||||
|
@ -1024,19 +1024,25 @@ idt += TAB
|
||||||
var _a;
|
var _a;
|
||||||
return (typeof (_a = this.index) !== "undefined" && _a !== null) ? this.compile_param(o) : this.name.compile(o);
|
return (typeof (_a = this.index) !== "undefined" && _a !== null) ? this.compile_param(o) : this.name.compile(o);
|
||||||
};
|
};
|
||||||
|
// Compiling a parameter splat means recovering the parameters that succeed
|
||||||
|
// the splat in the parameter list, by slicing the arguments object.
|
||||||
SplatNode.prototype.compile_param = function compile_param(o) {
|
SplatNode.prototype.compile_param = function compile_param(o) {
|
||||||
var name;
|
var name;
|
||||||
name = this.name.compile(o);
|
name = this.name.compile(o);
|
||||||
o.scope.find(name);
|
o.scope.find(name);
|
||||||
return name + " = Array.prototype.slice.call(arguments, " + this.index + ")";
|
return name + " = Array.prototype.slice.call(arguments, " + this.index + ")";
|
||||||
};
|
};
|
||||||
|
// A compiling a splat as a destructuring assignment means slicing arguments
|
||||||
|
// from the right-hand-side's corresponding array.
|
||||||
SplatNode.prototype.compile_value = function compile_value(o, name, index) {
|
SplatNode.prototype.compile_value = function compile_value(o, name, index) {
|
||||||
return "Array.prototype.slice.call(" + name + ", " + index + ")";
|
return "Array.prototype.slice.call(" + name + ", " + index + ")";
|
||||||
};
|
};
|
||||||
return SplatNode;
|
return SplatNode;
|
||||||
}).call(this);
|
}).call(this);
|
||||||
|
//### WhileNode
|
||||||
// A while loop, the only sort of low-level loop exposed by CoffeeScript. From
|
// A while loop, the only sort of low-level loop exposed by CoffeeScript. From
|
||||||
// it, all other loops can be manufactured.
|
// it, all other loops can be manufactured. Useful in cases where you need more
|
||||||
|
// flexibility or more speed than a comprehension can provide.
|
||||||
exports.WhileNode = (function() {
|
exports.WhileNode = (function() {
|
||||||
WhileNode = function WhileNode(condition, opts) {
|
WhileNode = function WhileNode(condition, opts) {
|
||||||
this.children = [(this.condition = condition)];
|
this.children = [(this.condition = condition)];
|
||||||
|
@ -1052,6 +1058,9 @@ idt += TAB
|
||||||
WhileNode.prototype.top_sensitive = function top_sensitive() {
|
WhileNode.prototype.top_sensitive = function top_sensitive() {
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
// The main difference from a JavaScript *while* is that the CoffeeScript
|
||||||
|
// *while* can be used as a part of a larger expression -- while loops may
|
||||||
|
// return an array containing the computed result of each iteration.
|
||||||
WhileNode.prototype.compile_node = function compile_node(o) {
|
WhileNode.prototype.compile_node = function compile_node(o) {
|
||||||
var cond, post, pre, returns, rvar, set, top;
|
var cond, post, pre, returns, rvar, set, top;
|
||||||
returns = del(o, 'returns');
|
returns = del(o, 'returns');
|
||||||
|
@ -1080,6 +1089,7 @@ idt += TAB
|
||||||
return WhileNode;
|
return WhileNode;
|
||||||
}).call(this);
|
}).call(this);
|
||||||
statement(WhileNode);
|
statement(WhileNode);
|
||||||
|
//### OpNode
|
||||||
// Simple Arithmetic and logical operations. Performs some conversion from
|
// Simple Arithmetic and logical operations. Performs some conversion from
|
||||||
// CoffeeScript operations into their JavaScript equivalents.
|
// CoffeeScript operations into their JavaScript equivalents.
|
||||||
exports.OpNode = (function() {
|
exports.OpNode = (function() {
|
||||||
|
@ -1092,6 +1102,7 @@ idt += TAB
|
||||||
};
|
};
|
||||||
__extends(OpNode, BaseNode);
|
__extends(OpNode, BaseNode);
|
||||||
OpNode.prototype.type = 'Op';
|
OpNode.prototype.type = 'Op';
|
||||||
|
// The map of conversions from CoffeeScript to JavaScript symbols.
|
||||||
OpNode.prototype.CONVERSIONS = {
|
OpNode.prototype.CONVERSIONS = {
|
||||||
'==': '===',
|
'==': '===',
|
||||||
'!=': '!==',
|
'!=': '!==',
|
||||||
|
@ -1101,8 +1112,12 @@ idt += TAB
|
||||||
'isnt': '!==',
|
'isnt': '!==',
|
||||||
'not': '!'
|
'not': '!'
|
||||||
};
|
};
|
||||||
|
// The list of operators for which we perform
|
||||||
|
// [Python-style comparison chaining](http://docs.python.org/reference/expressions.html#notin).
|
||||||
OpNode.prototype.CHAINABLE = ['<', '>', '>=', '<=', '===', '!=='];
|
OpNode.prototype.CHAINABLE = ['<', '>', '>=', '<=', '===', '!=='];
|
||||||
|
// Our assignment operators that have no JavaScript equivalent.
|
||||||
OpNode.prototype.ASSIGNMENT = ['||=', '&&=', '?='];
|
OpNode.prototype.ASSIGNMENT = ['||=', '&&=', '?='];
|
||||||
|
// Operators must come before their operands with a space.
|
||||||
OpNode.prototype.PREFIX_OPERATORS = ['typeof', 'delete'];
|
OpNode.prototype.PREFIX_OPERATORS = ['typeof', 'delete'];
|
||||||
OpNode.prototype.is_unary = function is_unary() {
|
OpNode.prototype.is_unary = function is_unary() {
|
||||||
return !this.second;
|
return !this.second;
|
||||||
|
@ -1126,8 +1141,8 @@ idt += TAB
|
||||||
}
|
}
|
||||||
return [this.first.compile(o), this.operator, this.second.compile(o)].join(' ');
|
return [this.first.compile(o), this.operator, this.second.compile(o)].join(' ');
|
||||||
};
|
};
|
||||||
// Mimic Python's chained comparisons. See:
|
// Mimic Python's chained comparisons when multiple comparison operators are
|
||||||
// http://docs.python.org/reference/expressions.html#notin
|
// used sequentially. For example: `50 < 65 > 10`
|
||||||
OpNode.prototype.compile_chain = function compile_chain(o) {
|
OpNode.prototype.compile_chain = function compile_chain(o) {
|
||||||
var _a, _b, first, second, shared;
|
var _a, _b, first, second, shared;
|
||||||
shared = this.first.unwrap().second;
|
shared = this.first.unwrap().second;
|
||||||
|
@ -1142,6 +1157,9 @@ idt += TAB
|
||||||
shared = _b[2];
|
shared = _b[2];
|
||||||
return "(" + first + ") && (" + shared + " " + this.operator + " " + second + ")";
|
return "(" + first + ") && (" + shared + " " + this.operator + " " + second + ")";
|
||||||
};
|
};
|
||||||
|
// When compiling a conditional assignment, take care to ensure that the
|
||||||
|
// operands are only evaluated once, even though we have to reference them
|
||||||
|
// more than once.
|
||||||
OpNode.prototype.compile_assignment = function compile_assignment(o) {
|
OpNode.prototype.compile_assignment = function compile_assignment(o) {
|
||||||
var _a, first, second;
|
var _a, first, second;
|
||||||
_a = [this.first.compile(o), this.second.compile(o)];
|
_a = [this.first.compile(o), this.second.compile(o)];
|
||||||
|
|
|
@ -146,7 +146,7 @@ parse_options: ->
|
||||||
# The compile-time options to pass to the CoffeeScript compiler.
|
# The compile-time options to pass to the CoffeeScript compiler.
|
||||||
compile_options: (source) ->
|
compile_options: (source) ->
|
||||||
o: {source: source}
|
o: {source: source}
|
||||||
o['no-wrap']: options['no-wrap']
|
o['no_wrap']: options['no-wrap']
|
||||||
o
|
o
|
||||||
|
|
||||||
# Print the `--help` usage message and exit.
|
# Print the `--help` usage message and exit.
|
||||||
|
|
Loading…
Reference in New Issue