element foo implements JavascriptConstructor { public function js() { return jsprintf('new FooController(%d, %d)', 1, 2); } protected function render() { $root =
; onloadRegister('%O.init(%O)', $this, $root); return $root; } } $foo = ; onloadRegister('GiveMeAFoo(%O)', $foo); echo $foo; --- JSCC={ ctors: [function() { return new FooController(1, 2); }], refs: {}, get: function(key) { if (refs[key]) { return refs[key]; } else { refs[key] = ctors[key](); delete ctors[key]; return refs[key]; } } }