merged in master branch again

This commit is contained in:
Jeremy Ashkenas
2009-12-30 13:38:50 -05:00
3 changed files with 14 additions and 23 deletions

View File

@@ -20,9 +20,7 @@ checkForErrors: coffeeProcess =>
# Run a simple REPL, round-tripping to the CoffeeScript compiler for every
# command.
exports.run: args =>
if args.length
exports.evalCS(File.read(path)) for path in args
return true
return true if args.length
while true
try

View File

@@ -18,15 +18,8 @@
// Run a simple REPL, round-tripping to the CoffeeScript compiler for every
// command.
exports.run = function(args) {
var __a, __b, __c, __d, path, result;
var result;
if (args.length) {
__a = args;
__d = [];
for (__b=0, __c=__a.length; __b<__c; __b++) {
path = __a[__b];
__d[__b] = exports.evalCS(File.read(path));
}
__d;
return true;
}
while (true) {

View File

@@ -390,22 +390,22 @@ module CoffeeScript
# CoffeeScript operations into their JavaScript equivalents.
class OpNode < Node
CONVERSIONS = {
"==" => "===",
"!=" => "!==",
'and' => '&&',
'or' => '||',
'is' => '===',
"isnt" => "!==",
'not' => '!'
:== => "===",
:'!=' => "!==",
:and => '&&',
:or => '||',
:is => '===',
:isnt => "!==",
:not => '!'
}
CONDITIONALS = ['||=', '&&=']
PREFIX_OPERATORS = ['typeof', 'delete']
CONDITIONALS = [:'||=', :'&&=']
PREFIX_OPERATORS = [:typeof, :delete]
attr_reader :operator, :first, :second
def initialize(operator, first, second=nil, flip=false)
@first, @second, @flip = first, second, flip
@operator = CONVERSIONS[operator] || operator
@operator = CONVERSIONS[operator.to_sym] || operator
end
def unary?
@@ -414,7 +414,7 @@ module CoffeeScript
def compile(o={})
o = super(o)
return write(compile_conditional(o)) if CONDITIONALS.include?(@operator)
return write(compile_conditional(o)) if CONDITIONALS.include?(@operator.to_sym)
return write(compile_unary(o)) if unary?
write("#{@first.compile(o)} #{@operator} #{@second.compile(o)}")
end
@@ -426,7 +426,7 @@ module CoffeeScript
end
def compile_unary(o)
space = PREFIX_OPERATORS.include?(@operator.to_s) ? ' ' : ''
space = PREFIX_OPERATORS.include?(@operator.to_sym) ? ' ' : ''
parts = [@operator.to_s, space, @first.compile(o)]
parts.reverse! if @flip
parts.join('')