typescript-dotnet-core
Version:
A the core classes and utilities of a JavaScript-Friendly .NET Based TypeScript Library.
7 lines (6 loc) • 1.64 kB
JavaScript
;
/*!
* @author electricessence / https://github.com/electricessence/
* Licensing: MIT https://github.com/electricessence/TypeScript.NET-Core/blob/master/LICENSE.md
*/Object.defineProperty(exports,"__esModule",{value:!0});var Types_1=require("../Types");function dispose(){for(var e=[],s=0;s<arguments.length;s++)e[s]=arguments[s];disposeTheseInternal(e,!1)}function using(e,s){try{return s(e)}finally{disposeSingle(e,!1)}}function disposeSingle(e,s){if(e&&typeof e==Types_1.default.OBJECT&&"function"==typeof e.dispose)if(s)try{e.dispose()}catch(e){return e}else e.dispose();return null}function disposeTheseInternal(e,s,n){var i;void 0===n&&(n=0);for(var t=e?e.length:0;n<t;n++){var o=e[n];if(o)if(s){var r=disposeSingle(o,!0);r&&(i=i||[]).push(r)}else{var d=!1;try{disposeSingle(o,!1),d=!0}finally{!d&&n+1<t&&disposeTheseInternal(e,!1,n+1)}if(!d)break}}return i}exports.dispose=dispose,function(e){function n(e,s){return e&&e.length?disposeTheseInternal(e.slice(),s):void 0}var s;e.single=function(e,s){void 0===s&&(s=!1),e&&disposeSingle(e,s)},e.deferred=function(){for(var e=[],s=0;s<arguments.length;s++)e[s]=arguments[s];n.deferred(e)},e.withoutException=function(){for(var e=[],s=0;s<arguments.length;s++)e[s]=arguments[s];return disposeTheseInternal(e,!0)},e.these=n,(s=n=e.these||(e.these={})).deferred=function(e,s){void 0===s&&(s=0),e&&e.length&&(0<=s||(s=0),setTimeout(disposeTheseInternal,s,e.slice(),!0))},s.noCopy=function(e,s){return e&&e.length?disposeTheseInternal(e,s):void 0}}(dispose=exports.dispose||(exports.dispose={})),exports.using=using,exports.default=dispose;
//# sourceMappingURL=dispose.js.map