Sha256: fe0a32931a2eaa0409ff5a4643e9af53aa32e10957cfa3d87a1b66821b4fc314

Contents?: true

Size: 913 Bytes

Versions: 8

Compression:

Stored size: 913 Bytes

Contents

require 'opal/nodes'

class Opal::Nodes::CallNode
  # Rubyspec uses this call to load in language specific features at runtime.
  # We can't do this at runtime, so handle it during compilation
  add_special :language_version do
    if scope.top?
      lang_type = arglist[2][1]
      target = "rubyspec/language/versions/#{lang_type}_1.9"

      if File.exist?(target)
        compiler.requires << target
      end

      push fragment("nil")
    end
  end

  add_special :not_supported_on do
    unless arglist.flatten.include? :opal
      compile_default!
    end
  end

  add_special :not_compliant_on do
    unless arglist.flatten.include? :opal
      compile_default!
    end
  end

  add_special :platform_is_not do
    unless arglist.flatten.include? :opal
      compile_default!
    end
  end

  add_special :platform_is do
    if arglist.flatten.include? :opal
      compile_default!
    end
  end
end


Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
opal-0.9.4 tasks/testing/mspec_special_calls.rb
opal-0.9.3 tasks/testing/mspec_special_calls.rb
opal-0.9.2 tasks/testing/mspec_special_calls.rb
opal-0.9.0 tasks/testing/mspec_special_calls.rb
opal-0.9.0.rc1 tasks/testing/mspec_special_calls.rb
opal-0.9.0.beta2 tasks/testing/mspec_special_calls.rb
opal-0.9.0.beta1 tasks/testing/mspec_special_calls.rb
opal-wedge-0.9.0.dev lib/mspec/opal/special_calls.rb