Sha256: 586dc3ae70c85d60b5db1ffe403f4bfdd8dc6642a88d7dcb1c1053f7643a602a
Contents?: true
Size: 1.89 KB
Versions: 8
Compression:
Stored size: 1.89 KB
Contents
/*global define*/ define(['Core/defaultValue', 'Core/DeveloperError'], function( defaultValue, DeveloperError) { "use strict"; function returnTrue() { return true; } /** * Destroys an object. Each of the object's functions, including functions in its prototype, * is replaced with a function that throws a {@link DeveloperError}, except for the object's * <code>isDestroyed</code> function, which is set to a function that returns <code>true</code>. * The object's properties are removed with <code>delete</code>. * <br /><br /> * This function is used by objects that hold native resources, e.g., WebGL resources, which * need to be explicitly released. Client code calls an object's <code>destroy</code> function, * which then releases the native resource and calls <code>destroyObject</code> to put itself * in a destroyed state. * * @exports destroyObject * * @param {Object} object The object to destroy. * @param {String} [message] The message to include in the exception that is thrown if * a destroyed object's function is called. * * @see DeveloperError * * @example * // How a texture would destroy itself. * this.destroy = function () { * _gl.deleteTexture(_texture); * return destroyObject(this); * }; */ var destroyObject = function(object, message) { message = defaultValue(message, 'This object was destroyed, i.e., destroy() was called.'); function throwOnDestroyed() { throw new DeveloperError(message); } for ( var key in object) { if (typeof object[key] === 'function') { object[key] = throwOnDestroyed; } } object.isDestroyed = returnTrue; return undefined; }; return destroyObject; });
Version data entries
8 entries across 8 versions & 1 rubygems