class ExecJS::GraalJSRuntime::Context
def convert_js_to_ruby(value)
def convert_js_to_ruby(value) case value when true, false, Integer, Float value else if value.nil? nil elsif value.respond_to?(:call) nil elsif value.respond_to?(:to_str) value.to_str elsif value.respond_to?(:to_ary) value.to_ary.map do |e| if e.respond_to?(:call) nil else convert_js_to_ruby(e) end end else object = value h = {} object.instance_variables.each do |member| v = object[member] unless v.respond_to?(:call) h[member.to_s] = convert_js_to_ruby(v) end end h end end end