Class: MiniRacer::Platform

Inherits:
Object
  • Object
show all
Defined in:
lib/mini_racer/shared.rb,
lib/mini_racer/truffleruby.rb,
ext/mini_racer_extension/mini_racer_extension.c

Class Method Summary collapse

Class Method Details

.set_flag_as_str!(flag) ⇒ Object

Raises:

  • (TypeError)


392
393
394
395
396
397
398
399
400
# File 'lib/mini_racer/truffleruby.rb', line 392

def self.set_flag_as_str!(flag)
  raise TypeError, "wrong type argument #{flag.class} (should be a string)" unless flag.is_a?(String)
  raise ArgumentError, "flag contains NUL byte" if flag.include?("\0")
  # the C extension normalizes flags into a 256 byte "--flag" buffer
  normalized = flag.start_with?("--") ? flag : "--#{flag}"
  raise ArgumentError, "flag too long" if normalized.bytesize >= 256
  raise MiniRacer::PlatformAlreadyInitialized, "The platform is already initialized." if Context.instance_variable_get(:@context_initialized)
  Context.instance_variable_set(:@use_strict, true) if "--use_strict" == flag
end

.set_flags!(*args) ⇒ Object



1623
1624
1625
1626
1627
1628
# File 'ext/mini_racer_extension/mini_racer_extension.c', line 1623

def set_flags!(*args, **kwargs)
  flags_to_strings([args, kwargs]).each do |flag|
    # defined in the C class
    set_flag_as_str!(flag)
  end
end