Commit 298ff6ad authored by Laszlo Domoszlai's avatar Laszlo Domoszlai
Browse files

unboxable let bindings

parent e8fd4279
......@@ -896,15 +896,19 @@ void exec(Code* expr, int frame_ptr, int root_frame_ptr)
{
LetBindingEntry* binding = ((LetEntry*) expr)->bindings[i];
// Normal
if(binding->type == 0)
switch(binding->type)
{
binding->body->create_thunk(binding->body, &stack_a[stack_top_a++], frame_ptr);
}
else // strict (including unboxed))
{
push_a(NULL);
exec(binding->body, frame_ptr, stack_top_a);
case 0: // normal
binding->body->create_thunk(binding->body, &stack_a[stack_top_a++], frame_ptr);
break;
case 1: // strict
push_a(NULL);
exec(binding->body, frame_ptr, stack_top_a);
break;
case 2: // unboxable
push_a(alloc_b());
exec(binding->body, frame_ptr, stack_top_a);
break;
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment