making extends equivalent to the Google Closure version

This commit is contained in:
Jeremy Ashkenas 2010-01-08 09:35:02 -05:00
parent d416c184db
commit 8b3926fb0c
1 changed files with 5 additions and 2 deletions

View File

@ -269,9 +269,12 @@ module CoffeeScript
end
def compile_node(o={})
constructor = o[:scope].free_variable
sub, sup = @sub_object.compile(o), @super_object.compile(o)
"#{idt}#{sub}.__superClass__ = #{sup}.prototype;\n#{idt}" +
"#{sub}.prototype = new #{sup}();\n#{idt}" +
"#{idt}#{constructor} = function(){};\n#{idt}" +
"#{constructor}.prototype = #{sup}.prototype;\n#{idt}" +
"#{sub}.__superClass__ = #{sup}.prototype;\n#{idt}" +
"#{sub}.prototype = new #{constructor}();\n#{idt}" +
"#{sub}.prototype.constructor = #{sub};"
end