Sha256: 5055af7634d5fb4a09252013a854ec1c518dd7af19ff2ba477bc4121cfe43553

Contents?: true

Size: 1.36 KB

Versions: 33

Compression:

Stored size: 1.36 KB

Contents

require 'lib/spec_helper'
require 'support/rewriters_helper'
require 'opal/rewriters/for_rewriter'

RSpec.describe Opal::Rewriters::ReturnableLogic do
  include RewritersHelper
  extend  RewritersHelper

  include_examples 'it rewrites source-to-AST', 'true or false', s(:if,
    s(:lvasgn, "$ret_or_1", s(:true)),
    s(:js_tmp, "$ret_or_1"),
    s(:false)
  )

  include_examples 'it rewrites source-to-AST', 'true and false', s(:if,
    s(:lvasgn, "$ret_or_1", s(:true)),
    s(:false),
    s(:js_tmp, "$ret_or_1")
  )

  include_examples 'it rewrites source-to-AST', 'true or next', s(:if,
    s(:lvasgn, "$ret_or_1", s(:true)),
    s(:js_tmp, "$ret_or_1"),
    s(:next)
  )

  include_examples 'it rewrites source-to-AST', 'true and next', s(:if,
    s(:lvasgn, "$ret_or_1", s(:true)),
    s(:next),
    s(:js_tmp, "$ret_or_1")
  )

  include_examples 'it rewrites source-to-AST', 'true or false or maybe', s(:if,
    s(:lvasgn, "$ret_or_1", s(:if,
      s(:lvasgn, "$ret_or_2", s(:true)),
      s(:js_tmp, "$ret_or_2"),
      s(:false)
    )),
    s(:js_tmp, "$ret_or_1"),
    s(:send, nil, :maybe)
  )

  include_examples 'it rewrites source-to-AST', 'true and false and surely', s(:if,
    s(:lvasgn, "$ret_or_1", s(:if,
      s(:lvasgn, "$ret_or_2", s(:true)),
      s(:false),
      s(:js_tmp, "$ret_or_2")
    )),
    s(:send, nil, :surely),
    s(:js_tmp, "$ret_or_1")
  )
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
opal-1.8.3.rc1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.8.2 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.8.1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.8.0 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.8.0.beta1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.7.4 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.8.0.alpha1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.7.3 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.7.2 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.7.1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.7.0 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.7.0.rc1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.6.1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.6.0 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.6.0.rc1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.6.0.alpha1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.5.1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.5.0 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.5.0.rc1 spec/lib/rewriters/returnable_logic_spec.rb
opal-1.4.1 spec/lib/rewriters/returnable_logic_spec.rb