Skip to content

Commit 7acd895

Browse files
committed
Added deprecate utility, and reintroduced deprecated methods for this version.
1 parent 607d3fc commit 7acd895

File tree

4 files changed

+118
-0
lines changed

4 files changed

+118
-0
lines changed

build/config.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"../src/preloadjs/version.js",
44
"../src/createjs/utils/extend.js",
55
"../src/createjs/utils/promote.js",
6+
"../src/createjs/utils/deprecate.js",
67
"../src/createjs/utils/proxy.js",
78
"../src/createjs/utils/indexOf.js",
89
"../src/createjs/events/Event.js",

src/createjs/utils/deprecate.js

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/*
2+
* extend
3+
* Visit http://createjs.com/ for documentation, updates and examples.
4+
*
5+
* Copyright (c) 2010 gskinner.com, inc.
6+
*
7+
* Permission is hereby granted, free of charge, to any person
8+
* obtaining a copy of this software and associated documentation
9+
* files (the "Software"), to deal in the Software without
10+
* restriction, including without limitation the rights to use,
11+
* copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* copies of the Software, and to permit persons to whom the
13+
* Software is furnished to do so, subject to the following
14+
* conditions:
15+
*
16+
* The above copyright notice and this permission notice shall be
17+
* included in all copies or substantial portions of the Software.
18+
*
19+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21+
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23+
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24+
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26+
* OTHER DEALINGS IN THE SOFTWARE.
27+
*/
28+
29+
/**
30+
* @module CreateJS
31+
*/
32+
33+
// namespace:
34+
this.createjs = this.createjs||{};
35+
36+
/**
37+
* @class Utility Methods
38+
*/
39+
40+
/**
41+
* Wraps deprecated methods so they still be used, but throw warnings to developers.
42+
*
43+
* obj.deprecatedMethod = createjs.deprecate("Old Method Name", obj._fallbackMethod);
44+
*
45+
* The recommended approach for deprecated properties is:
46+
*
47+
* try {
48+
* Obj ect.defineProperties(object, {
49+
* readyOnlyProp: { get: createjs.deprecate("readOnlyProp", function() { return this.alternateProp; }) },
50+
* readWriteProp: {
51+
* get: createjs.deprecate("readOnlyProp", function() { return this.alternateProp; }),
52+
* set: createjs.deprecate("readOnlyProp", function(val) { this.alternateProp = val; })
53+
* });
54+
* } catch (e) {}
55+
*
56+
* @method deprecate
57+
* @param {Function} [fallbackMethod=null] A method to call when the deprecated method is used. See the example for how
58+
* @param {String} [name=null] The name of the method or property to display in the console warning.
59+
* to deprecate properties.
60+
* @return {Function} If a fallbackMethod is supplied, returns a closure that will call the fallback method after
61+
* logging the warning in the console.
62+
*/
63+
createjs.deprecate = function(fallbackMethod, name) {
64+
"use strict";
65+
return function() {
66+
console && (console.warn || console.log)("Deprecated property or method '"+name+"'. See docs for info.");
67+
return fallbackMethod && fallbackMethod.apply(this, arguments);
68+
}
69+
};

src/preloadjs/LoadQueue.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,30 @@ this.createjs = this.createjs || {};
406406
var p = createjs.extend(LoadQueue, createjs.AbstractLoader);
407407
var s = LoadQueue;
408408

409+
// Remove these @deprecated properties after 1.0
410+
try {
411+
Object.defineProperties(s, {
412+
POST: { get: createjs.deprecate(function() { return createjs.Methods.POST; }, "AbstractLoader.POST") },
413+
GET: { get: createjs.deprecate(function() { return createjs.Methods.GET; }, "AbstractLoader.GET") },
414+
415+
BINARY: { get: createjs.deprecate(function() { return createjs.Types.BINARY; }, "AbstractLoader.BINARY") },
416+
CSS: { get: createjs.deprecate(function() { return createjs.Types.CSS; }, "AbstractLoader.CSS") },
417+
FONT: { get: createjs.deprecate(function() { return createjs.Types.FONT; }, "AbstractLoader.FONT") },
418+
FONTCSS: { get: createjs.deprecate(function() { return createjs.Types.FONTCSS; }, "AbstractLoader.FONTCSS") },
419+
IMAGE: { get: createjs.deprecate(function() { return createjs.Types.IMAGE; }, "AbstractLoader.IMAGE") },
420+
JAVASCRIPT: { get: createjs.deprecate(function() { return createjs.Types.JAVASCRIPT; }, "AbstractLoader.JAVASCRIPT") },
421+
JSON: { get: createjs.deprecate(function() { return createjs.Types.JSON; }, "AbstractLoader.JSON") },
422+
JSONP: { get: createjs.deprecate(function() { return createjs.Types.JSONP; }, "AbstractLoader.JSONP") },
423+
MANIFEST: { get: createjs.deprecate(function() { return createjs.Types.MANIFEST; }, "AbstractLoader.MANIFEST") },
424+
SOUND: { get: createjs.deprecate(function() { return createjs.Types.SOUND; }, "AbstractLoader.SOUND") },
425+
VIDEO: { get: createjs.deprecate(function() { return createjs.Types.VIDEO; }, "AbstractLoader.VIDEO") },
426+
SPRITESHEET: { get: createjs.deprecate(function() { return createjs.Types.SPRITESHEET; }, "AbstractLoader.SPRITESHEET") },
427+
SVG: { get: createjs.deprecate(function() { return createjs.Types.SVG; }, "AbstractLoader.SVG") },
428+
TEXT: { get: createjs.deprecate(function() { return createjs.Types.TEXT; }, "AbstractLoader.TEXT") },
429+
XML: { get: createjs.deprecate(function() { return createjs.Types.XML; }, "AbstractLoader.XML") }
430+
});
431+
} catch (e) {}
432+
409433
/**
410434
* An internal initialization method, which is used for initial set up, but also to reset the LoadQueue.
411435
* @method init

src/preloadjs/loaders/AbstractLoader.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,30 @@ this.createjs = this.createjs || {};
194194
var p = createjs.extend(AbstractLoader, createjs.EventDispatcher);
195195
var s = AbstractLoader;
196196

197+
// Remove these @deprecated properties after 1.0
198+
try {
199+
Object.defineProperties(s, {
200+
POST: { get: createjs.deprecate(function() { return createjs.Methods.POST; }, "AbstractLoader.POST") },
201+
GET: { get: createjs.deprecate(function() { return createjs.Methods.GET; }, "AbstractLoader.GET") },
202+
203+
BINARY: { get: createjs.deprecate(function() { return createjs.Types.BINARY; }, "AbstractLoader.BINARY") },
204+
CSS: { get: createjs.deprecate(function() { return createjs.Types.CSS; }, "AbstractLoader.CSS") },
205+
FONT: { get: createjs.deprecate(function() { return createjs.Types.FONT; }, "AbstractLoader.FONT") },
206+
FONTCSS: { get: createjs.deprecate(function() { return createjs.Types.FONTCSS; }, "AbstractLoader.FONTCSS") },
207+
IMAGE: { get: createjs.deprecate(function() { return createjs.Types.IMAGE; }, "AbstractLoader.IMAGE") },
208+
JAVASCRIPT: { get: createjs.deprecate(function() { return createjs.Types.JAVASCRIPT; }, "AbstractLoader.JAVASCRIPT") },
209+
JSON: { get: createjs.deprecate(function() { return createjs.Types.JSON; }, "AbstractLoader.JSON") },
210+
JSONP: { get: createjs.deprecate(function() { return createjs.Types.JSONP; }, "AbstractLoader.JSONP") },
211+
MANIFEST: { get: createjs.deprecate(function() { return createjs.Types.MANIFEST; }, "AbstractLoader.MANIFEST") },
212+
SOUND: { get: createjs.deprecate(function() { return createjs.Types.SOUND; }, "AbstractLoader.SOUND") },
213+
VIDEO: { get: createjs.deprecate(function() { return createjs.Types.VIDEO; }, "AbstractLoader.VIDEO") },
214+
SPRITESHEET: { get: createjs.deprecate(function() { return createjs.Types.SPRITESHEET; }, "AbstractLoader.SPRITESHEET") },
215+
SVG: { get: createjs.deprecate(function() { return createjs.Types.SVG; }, "AbstractLoader.SVG") },
216+
TEXT: { get: createjs.deprecate(function() { return createjs.Types.TEXT; }, "AbstractLoader.TEXT") },
217+
XML: { get: createjs.deprecate(function() { return createjs.Types.XML; }, "AbstractLoader.XML") }
218+
});
219+
} catch (e) {}
220+
197221
// Events
198222
/**
199223
* The {{#crossLink "ProgressEvent"}}{{/crossLink}} that is fired when the overall progress changes. Prior to

0 commit comments

Comments
 (0)