<script> Constants:
00: "Base"
01: Fn(foo)
02: Fn(foo(_))
03: Fn(foo(_,_))
04: "Derived"
05: Fn(init new())
06: Fn()
07: Fn(foo(_))
08: 1
<script> Code:
00 (ln 1): Constant(0: "Base")
01 (ln 1): Load(Module, Class("Object"))
02 (ln 1): Class(0 fields)
03 (ln 1): Store(Module)
04 (ln 1): Pop
05 (ln 2): Closure(1, [])
06 (ln 2): Load(Module, Null)
07 (ln 2): Method(instance, foo)
08 (ln 3): Closure(2, [])
09 (ln 3): Load(Module, Null)
10 (ln 3): Method(instance, foo(_))
11 (ln 4): Closure(3, [])
12 (ln 4): Load(Module, Null)
13 (ln 4): Method(instance, foo(_,_))
14 (ln 7): Constant(4: "Derived")
15 (ln 7): Load(Module, Null)
16 (ln 7): Class(0 fields)
17 (ln 7): Store(Module)
18 (ln 7): Pop
19 (ln 8): Closure(5, [])
20 (ln 8): Load(Module, Null)
21 (ln 8): Method(instance, init new())
22 (ln 8): Closure(6, [])
23 (ln 8): Load(Module, Null)
24 (ln 8): Method(static, new())
25 (ln 15): Closure(7, [])
26 (ln 15): Load(Module, Null)
27 (ln 15): Method(instance, foo(_))
28 (ln 18): Load(Module, Null)
29 (ln 18): Call(new())
30 (ln 18): Constant(8: 1)
31 (ln 18): Call(foo(_))
32 (ln 18): Pop
33 (ln 23): EndModule
34 (ln 23): Return
35 (ln 23): End
foo Constants:
00: "Base.foo"
foo Code:
00 (ln 2): Load(Module, Class("System"))
01 (ln 2): Constant(0: "Base.foo")
02 (ln 2): Call(print(_))
03 (ln 2): Return
04 (ln 2): End
foo(_) Constants:
00: "Base.foo(a)"
foo(_) Code:
00 (ln 3): Load(Module, Class("System"))
01 (ln 3): Constant(0: "Base.foo(a)")
02 (ln 3): Call(print(_))
03 (ln 3): Return
04 (ln 3): End
foo(_,_) Constants:
00: "Base.foo(a, b)"
foo(_,_) Code:
00 (ln 4): Load(Module, Class("System"))
01 (ln 4): Constant(0: "Base.foo(a, b)")
02 (ln 4): Call(print(_))
03 (ln 4): Return
04 (ln 4): End
init new() Code:
00 (ln 8): Load(Local, 0)
01 (ln 8): Return
02 (ln 8): End
 Code:
00 (ln 8): Construct
01 (ln 8): Call(init new())
02 (ln 8): Return
03 (ln 8): End
foo(_) Constants:
00: "Derived.bar(a)"
01: Null
02: 1
03: Null
04: 2
05: Null
foo(_) Code:
00 (ln 11): Load(Module, Class("System"))
01 (ln 11): Constant(0: "Derived.bar(a)")
02 (ln 11): Call(print(_))
03 (ln 11): Pop
04 (ln 12): Load(Local, 0)
05 (ln 12): CallSuper(foo)
06 (ln 12): Pop
07 (ln 13): Load(Local, 0)
08 (ln 13): Constant(2: 1)
09 (ln 13): CallSuper(foo(_))
10 (ln 13): Pop
11 (ln 14): Load(Local, 0)
12 (ln 14): Constant(2: 1)
13 (ln 14): Constant(4: 2)
14 (ln 14): CallSuper(foo(_,_))
15 (ln 14): Pop
16 (ln 15): Null
17 (ln 15): Return
18 (ln 15): End
