var functionHash;\r
\r
X.Callback = {\r
- \r
NONE : X_Callback_NONE,\r
UN_LISTEN : X_Callback_UN_LISTEN,\r
STOP_PROPAGATION : X_Callback_STOP_PROPAGATION,\r
STOP_NOW : X_Callback_STOP_NOW,\r
PREVENT_DEFAULT : X_Callback_PREVENT_DEFAULT,\r
- MONOPOLY : X_Callback_MONOPOLY,\r
- \r
- create : X_Callback_create,\r
- \r
- sys_monitor : function(){\r
- return {\r
- 'Live callback' : X_Callback_LIVE_LIST.length,\r
- 'Pool callback' : X_Callback_POOL_LIST.length\r
- };\r
- },\r
- \r
- sys_gc : function(){\r
- var list = X_Callback_POOL_LIST,\r
- f;\r
- while( 0 < list.length ){\r
- f = list.shift();\r
- X_Callback_correct( f );\r
- delete f[ 'kill' ];\r
- delete f[ 'same' ];\r
- };\r
- }\r
+ MONOPOLY : X_Callback_MONOPOLY\r
};\r
\r
-X_TEMP.onSystemReady.push( X_Callback_handleSystemEvent );\r
-\r
// ------------------------------------------------------------------------- //\r
// --- implements ---------------------------------------------------------- //\r
// ------------------------------------------------------------------------- //\r
\r
-function X_Callback_handleSystemEvent( e ){\r
- switch( e ){\r
- case '':\r
- };\r
-};\r
-\r
function X_Callback_create( thisObject, opt_callback, opt_args /* [ listener || ( context + function ) || function ][ args... ] */ ){\r
var obj = X_Callback_classifyCallbackArgs( thisObject, opt_callback, opt_args ),\r
l, ret, _obj;\r
_obj.s = obj.s;\r
} else {\r
ret = X_Closure_actualClosure( obj );\r
- ret.kill = X_Callback_kill;\r
- ret.same = X_Callback_same;\r
};\r
X_Callback_LIVE_LIST[ X_Callback_LIVE_LIST.length ] = ret;\r
- return ret; \r
+ return ret;\r
};\r
\r
function X_Closure_actualClosure( obj ){\r
return X_Callback_NONE;\r
};\r
\r
-function X_Callback_same( arg1, arg2, arg3 ){\r
- var hash;\r
- \r
- if( arg1 && arg1[ 'kill' ] === X_Callback_kill ) return this === arg1;\r
- \r
- hash = X_Callback_classifyCallbackArgs( arg1, arg2, arg3 );\r
- \r
- return hash && this.k === hash.k && this.x === hash.x && this.f === hash.f && this.s === hash.s;\r
-};\r
-\r
-function X_Callback_kill(){\r
- X_Callback_correct( this );\r
-};\r
-\r
function X_Callback_correct( f ){\r
var i = X_Callback_LIVE_LIST.indexOf( f ),\r
obj;\r
};\r
\r
\r
+// sys\r
+X_TEMP.X_Callback_onSystemReady = function( sys ){\r
+ delete X_TEMP.X_Callback_onSystemReady;\r
+ sys.monitor( X_Callback_monitor );\r
+ sys.gc( X_Callback_gc );\r
+};\r
+\r
+function X_Callback_monitor(){\r
+ return {\r
+ 'Callback:Live' : X_Callback_LIVE_LIST.length,\r
+ 'Callback:Pool' : X_Callback_POOL_LIST.length\r
+ };\r
+};\r
+function X_Callback_gc(){\r
+ X_Callback_POOL_LIST.length = 0; // ?\r
+};\r
+\r
+X_TEMP.onSystemReady.push( X_TEMP.X_Callback_onSystemReady );\r
\r
\r
console.log( 'X.Core.Callback' );\r