         rv += "Math.pow(#{left_code}, #{@right.left.js()}) #{@right.js(yes)}"
       else
         rv += "#{left_code} #{opjs} #{@right.js()}"
-    rv = @conditional.js(rv) if @conditional?
+    rv = @conditional.js(rv, yes) if @conditional?
     return rv
     
     

      rv = "#{KEYWORD_TRANSLATE[@preop.value]}(#{rv})"
    return rv

  @WhenExpression::js = (true_block_js) ->
    conditional_js = @condition.js()
    conditional_js = "!(#{conditional_js})" if @specifier.value is 'unless' or @specifier.value is 'except'
    if @false_expr?
      return "(#{conditional_js}) ? #{true_block_js} : #{@false_expr.js()}"
    else
      indented_js = '  ' + true_block_js.replace /\n/g, '\n  '
      return "if (#{conditional_js}) {\n#{indented_js}\n#{i}}"
    return rv
  
  @ExisentialCheck::js = ->

    op = @assignOp.value
    op += '=' if op isnt '='
    rv = "#{@lvalue.js()} #{op} #{@rvalue.js()};"
    rv = @conditional.js(rv, no) if @conditional?
    return rv
    
  @NumberConstant::js = ->
