class Minjs::ECMA262::ExpLogicalOr

Class of the Bitwise Logical Or operator expression element.

@see www.ecma-international.org/ecma-262 ECMA262 11.11

Public Class Methods

new(val, val2) click to toggle source
# File lib/minjs/ecma262/expression.rb, line 1841
def initialize(val, val2)
  @val = val
  @val2 = val2
end

Public Instance Methods

ecma262_typeof() click to toggle source

return results of ‘typeof’ operator.

@return [Symbol] typeof val if typeof val equals to val2

# File lib/minjs/ecma262/expression.rb, line 1877
def ecma262_typeof
  if @val.respond_to? :ecma262_typeof and @val2.respond_to? :ecma262_typeof
    if @val.ecma262_typeof == @val2.ecma262_typeof
      return @val.ecma262_typeof
    end
  end
  nil
end
priority() click to toggle source

@return [Fixnum] expression priority

# File lib/minjs/ecma262/expression.rb, line 1852
def priority
  PRIORITY_LOGICAL_OR
end
sym() click to toggle source

symbol of expression

# File lib/minjs/ecma262/expression.rb, line 1847
def sym
  "||"
end
to_ecma262_boolean() click to toggle source

Returns results of ToBoolean()

Returns true or false if trivial, otherwise nil.

@return [Boolean]

@see www.ecma-international.org/ecma-262 ECMA262 9.2

# File lib/minjs/ecma262/expression.rb, line 1864
def to_ecma262_boolean
  return nil if !(@val.respond_to? :to_ecma262_boolean)
  return nil if @val.to_ecma262_boolean == nil
  return true if @val.to_ecma262_boolean == true
  return nil if !(@val2.respond_to? :to_ecma262_boolean)
  return nil if @val2.to_ecma262_boolean == nil
  return true if @val2.to_ecma262_boolean == true
  false
end