From d83505d9ca78b7ade19f3d486a4c58a41042f351 Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Fri, 12 Feb 2016 23:16:01 +0100 Subject: [PATCH] [snapshot] --- lib/opal/nodes/def.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/opal/nodes/def.rb b/lib/opal/nodes/def.rb index 54ab70ad7c..f13c4af3a2 100644 --- a/lib/opal/nodes/def.rb +++ b/lib/opal/nodes/def.rb @@ -176,15 +176,20 @@ def compile_opt_args is_undefined = arg[2][2] == :undefined var_name = variable(arg[1]) - line "console.log('#{var_name}', #{var_name}, arguments)" - line "if (#{var_name} == null || #{var_name}.$$p) {" + line "if (#{var_name} == null || (typeof(#{var_name}) === 'object' && '$$p' in #{var_name})) {" if scope.uses_block? line " if (#{var_name} && #{var_name}.$$p) {" line " $iter = #{var_name}.$$p;" line " $args_len -= 1;" line " }" end - line " #{var_name} = ", expr(arg[2]) unless is_undefined + + if is_undefined + line " #{var_name} = void(0);" + else + line " console.log('#{var_name} => #{expr(arg[2]).to_s.tr("'", '"')}')" + line " #{var_name} = ", expr(arg[2]) + end line "}" end end