class Test { static function __init__() { var i_testpackage:Dynamic = { testclass : { all : { testZor : untyped function(x) { var s = new StringBuf(); s.add(x+" freakin' "+this.shit); return s; } } // , // mysql : testpackage.testclass.all, // postgresql : testpackage.testclass.all } } var engine = untyped function(o:Dynamic) { return function(s) { var h = __dollar__hash(s.__s); var f = __dollar__objget(o,h); if( f == null ) f = __dollar__objget(o,4847905); // Hashed value of "all" this._hxm_QE = f; } } var wrap = untyped function(func, h) { return __dollar__varargs(function(a){ return func( __dollar__call( __dollar__objget(this._hxm_QE, h), this, a ) ); }); }; var p:Dynamic; p = untyped OverrideTest.prototype; p._hxm_setQueryEngine = engine( i_testpackage.testclass ); p.testZor = wrap(function(s:StringBuf) { trace("test"); trace( s.toString() ); }, untyped __dollar__hash("testZor".__s)); } static function main() { var t = new OverrideTest(); t.setConnection(); t.testZor("w00t"); } } class OverrideTest { var shit:String; public function new(){ shit = 'cool'; } public function setConnection() { untyped this._hxm_setQueryEngine("MySQL"); } public function testZor(s:String) { trace('Failed'); } } blue@dev ~/Projects/haxORMap >haxe runtest.hxml Test.hx:45: test Test.hx:46: w00t freakin' cool