diff --git a/corelib/class.rb b/corelib/class.rb
index <HASH>..<HASH> 100644
--- a/corelib/class.rb
+++ b/corelib/class.rb
@@ -20,8 +20,7 @@ class Class
 
   def new(*args, &block)
     obj = allocate()
-    #obj.initialize *args, &block
-    obj.initialize *args
+    obj.initialize *args, &block
     obj
   end
 
diff --git a/lib/opal/parser/processor.rb b/lib/opal/parser/processor.rb
index <HASH>..<HASH> 100644
--- a/lib/opal/parser/processor.rb
+++ b/lib/opal/parser/processor.rb
@@ -601,7 +601,7 @@ module Opal
         if @scope.uses_block?
           scope_name = (@scope.name ||= unique_temp)
           blk = "var $yield = #{scope_name}.proc || $noproc, $yself = $yield.$S, "
-          blk += "#{block_name} = #{scope_name}.proc, " if block_name
+          blk += "#{block_name} = #{scope_name}.proc || nil, " if block_name
           blk += "$break = $bjump; #{scope_name}.proc = null;"
 
           code = blk + code
Re-add block passing to Class#new