lib/jsrb/js_statement_context.rb in jsrb-0.2.1 vs lib/jsrb/js_statement_context.rb in jsrb-0.3.0
- old
+ new
@@ -35,14 +35,14 @@
# rubocop:disable Metrics/CyclomaticComplexity
# rubocop:disable Metrics/AbcSize
def ruby_to_js_ast(rbv)
case rbv
when ExprChain
- rbv.unwrap!
+ rbv.object
when Proc
chainables = rbv.parameters.map do |_type, name|
- new_expression.member!(name.to_s)
+ new_expression[name.to_s]
end
result, statements = in_new_context { rbv.call(*chainables) }
if result
statements.push(
type: 'ReturnStatement',
@@ -61,26 +61,26 @@
when Hash
var_name = gen_var_name!
statements = rbv.map do |key, v|
{
type: 'ExpressionStatement',
- expression: new_expression.member!(var_name).member!(key).assign!(v).unwrap!
+ expression: new_expression[var_name][key].set(v).object
}
end
{
type: 'CallExpression',
callee: {
type: 'FunctionExpression',
id: nil,
- params: [new_expression.member!(var_name).unwrap!],
+ params: [new_expression[var_name].object],
body: {
type: 'BlockStatement',
body: statements.concat(
[
{
type: 'ReturnStatement',
- argument: new_expression.member!(var_name).unwrap!
+ argument: new_expression[var_name].object
}
]
)
}
},
@@ -97,15 +97,15 @@
elements: rbv.map { |v| ruby_to_js_ast(v) }
}
when TrueClass, FalseClass, String, NilClass
build_literal_ast(rbv)
when Float::INFINITY
- new_expression.member!('Number').member!('POSITIVE_INFINITY').unwrap!
+ new_expression[:Number][:POSITIVE_INFINITY].object
when -Float::INFINITY
- new_expression.member!('Number').member!('NEGATIVE_INFINITY').unwrap!
+ new_expression[:Number][:NEGATIVE_INFINITY].object
when Float
if rbv.nan?
- new_expression.member!('Number').member!('NaN').unwrap!
+ new_expression[:Number][:NaN].object
else
build_finite_number_ast(rbv)
end
when Integer
build_finite_number_ast(rbv)