Tone.js/grunt/fragments/before.frag
Yotam Mann 666d8f96c1 removed reference to global 'define' with build
gets rid of the problem of having the global ‘define’ left defined in
the window which may have adverse effects on other AMD shim modules.
2014-10-02 18:55:24 -04:00

29 lines
1 KiB
JavaScript

(function (root) {
// Tone.js can run with or without requirejs
//
// this anonymous function checks to see if the 'define'
// method exists, if it does not (and there is not already
// a function called Tone) it will create a function called
// 'define'. 'define' will invoke the 'core' module and attach
// its return value to the root. for all other modules
// Tone will be passed in as the argument.
if (typeof define !== "function" &&
typeof root.Tone !== "function") {
//define 'define' to invoke the callbacks with Tone
root.ToneDefinedDefine = true;
root.define = function(){
//the last argument is the callback
var lastArg = arguments[arguments.length - 1];
//the first argument is the dependencies or name
var firstArg = arguments[0];
if (firstArg === "Tone/core/Tone"){
//create the root object
root.Tone = lastArg();
} else if (typeof lastArg === "function"){
//if it's not the root, pass in the root
//as the parameter
lastArg(root.Tone);
}
};
}
} (this));