func init // adds using namespace sys.add_use('System') // initialize instance this.setfield('obj', sys.get_typed_field(this.codename, 'Instance', 20)) if(this.obj == this.codename) sys.add_object(this.obj, 'Object') end // makes implementation of methods as properties sys._mtd_as_prop_init('GetHashCode()') sys._mtd_as_prop_init('GetType()') sys._mtd_as_prop_init('ToString()') sys._mtd_as_prop_init('Object') end func doConstructor() blk.println(this.obj, ' = new Object();') end func doObject(data) blk.println(this.obj, ' = ', d("objA"), ';') end func doEquals(data) if(linked("onEquals")) event("onEquals", this.obj + '.Equals(' + d("objA") + ')') else blk.println(this.obj, '.Equals(', d("objA"), ');') end end func doEquals2(data) if(linked("onEquals")) event("onEquals", 'Object.Equals(' + d("objA") + ', ' + d("objB") + ')') else blk.println('Object.Equals(', d("objA"), ', ', d("objB"), ');') end end func doReferenceEquals(data) if(linked("onReferenceEquals")) event("onReferenceEquals", 'Object.ReferenceEquals(' + d("objA") + ', ' + d("objB") + ')') else blk.println('Object.ReferenceEquals(', d("objA"), ', ', d("objB"), ');') end end