Skip to content

Commit

Permalink
0.1.5 with requirejs 2.1.6
Browse files Browse the repository at this point in the history
  • Loading branch information
jrburke committed May 11, 2013
1 parent 7e76cc8 commit 6eb7451
Show file tree
Hide file tree
Showing 5 changed files with 1,020 additions and 265 deletions.
74 changes: 50 additions & 24 deletions cajon.js
@@ -1,5 +1,5 @@
/** vim: et:ts=4:sw=4:sts=4
* @license RequireJS 2.1.5 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
* @license RequireJS 2.1.6 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/jrburke/requirejs for details
*/
Expand All @@ -12,7 +12,7 @@ var requirejs, require, define;
(function (global) {
var req, s, head, baseElement, dataMain, src,
interactiveScript, currentlyAddingScript, mainScript, subPath,
version = '2.1.5',
version = '2.1.6',
commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
jsSuffixRegExp = /\.js$/,
Expand All @@ -22,7 +22,7 @@ var requirejs, require, define;
hasOwn = op.hasOwnProperty,
ap = Array.prototype,
apsp = ap.splice,
isBrowser = !!(typeof window !== 'undefined' && navigator && document),
isBrowser = !!(typeof window !== 'undefined' && navigator && window.document),
isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
//PS3 indicates loaded and complete, but need to wait for complete
//specifically. Sequence is 'loading', 'loaded', execution,
Expand Down Expand Up @@ -134,6 +134,10 @@ var requirejs, require, define;
return document.getElementsByTagName('script');
}

function defaultOnError(err) {
throw err;
}

//Allow getting a global that expressed in
//dot notation, like 'a.b.c'.
function getGlobal(value) {
Expand Down Expand Up @@ -500,7 +504,12 @@ var requirejs, require, define;
fn(defined[id]);
}
} else {
getModule(depMap).on(name, fn);
mod = getModule(depMap);
if (mod.error && name === 'error') {
fn(mod.error);
} else {
mod.on(name, fn);
}
}
}

Expand Down Expand Up @@ -571,7 +580,13 @@ var requirejs, require, define;
id: mod.map.id,
uri: mod.map.url,
config: function () {
return (config.config && getOwn(config.config, mod.map.id)) || {};
var c,
pkg = getOwn(config.pkgs, mod.map.id);
// For packages, only support config targeted
// at the main module.
c = pkg ? getOwn(config.config, mod.map.id + '/' + pkg.main) :
getOwn(config.config, mod.map.id);
return c || {};
},
exports: defined[mod.map.id]
});
Expand Down Expand Up @@ -840,8 +855,13 @@ var requirejs, require, define;
if (this.depCount < 1 && !this.defined) {
if (isFunction(factory)) {
//If there is an error listener, favor passing
//to that instead of throwing an error.
if (this.events.error) {
//to that instead of throwing an error. However,
//only do it for define()'d modules. require
//errbacks should not be called for failures in
//their callbacks (#699). However if a global
//onError is set, use that.
if ((this.events.error && this.map.isDefine) ||
req.onError !== defaultOnError) {
try {
exports = context.execCb(id, factory, depExports, exports);
} catch (e) {
Expand Down Expand Up @@ -869,8 +889,8 @@ var requirejs, require, define;

if (err) {
err.requireMap = this.map;
err.requireModules = [this.map.id];
err.requireType = 'define';
err.requireModules = this.map.isDefine ? [this.map.id] : null;
err.requireType = this.map.isDefine ? 'define' : 'require';
return onError((this.error = err));
}

Expand Down Expand Up @@ -1093,7 +1113,7 @@ var requirejs, require, define;
}));

if (this.errback) {
on(depMap, 'error', this.errback);
on(depMap, 'error', bind(this, this.errback));
}
}

Expand Down Expand Up @@ -1605,7 +1625,7 @@ var requirejs, require, define;
},

/**
* Executes a module callack function. Broken out as a separate function
* Executes a module callback function. Broken out as a separate function
* solely to allow the build system to sequence the files in the built
* layer in the right sequence.
*
Expand Down Expand Up @@ -1643,7 +1663,7 @@ var requirejs, require, define;
onScriptError: function (evt) {
var data = getScriptData(evt);
if (!hasPathFallback(data.id)) {
return onError(makeError('scripterror', 'Script error', evt, [data.id]));
return onError(makeError('scripterror', 'Script error for: ' + data.id, evt, [data.id]));
}
}
};
Expand Down Expand Up @@ -1772,9 +1792,7 @@ var requirejs, require, define;
* function. Intercept/override it if you want custom error handling.
* @param {Error} err the error object.
*/
req.onError = function (err) {
throw err;
};
req.onError = defaultOnError;

/**
* Does the request to load a module for the browser case.
Expand Down Expand Up @@ -1879,7 +1897,7 @@ var requirejs, require, define;
};

/**
* @license cajon 0.1.4 Copyright (c) 2012, The Dojo Foundation All Rights Reserved.
* @license cajon 0.1.5 Copyright (c) 2012, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/requirejs/cajon for details
*/
Expand Down Expand Up @@ -1912,7 +1930,7 @@ java, requirejs, document */
return eval(content);
}

requirejs.cajonVersion = '0.1.4';
requirejs.cajonVersion = '0.1.5';
requirejs.createXhr = function () {
//Would love to dump the ActiveX crap in here. Need IE 6 to die first.
var xhr, i, progId;
Expand Down Expand Up @@ -2118,24 +2136,31 @@ function getInteractiveScript() {
//baseUrl, if it is not already set.
dataMain = script.getAttribute('data-main');
if (dataMain) {
//Preserve dataMain in case it is a path (i.e. contains '?')
mainScript = dataMain;

//Set final baseUrl if there is not already an explicit one.
if (!cfg.baseUrl) {
//Pull off the directory of data-main for use as the
//baseUrl.
src = dataMain.split('/');
src = mainScript.split('/');
mainScript = src.pop();
subPath = src.length ? src.join('/') + '/' : './';

cfg.baseUrl = subPath;
dataMain = mainScript;
}

//Strip off any trailing .js since dataMain is now
//Strip off any trailing .js since mainScript is now
//like a module name.
dataMain = dataMain.replace(jsSuffixRegExp, '');
mainScript = mainScript.replace(jsSuffixRegExp, '');

//If mainScript is still a path, fall back to dataMain
if (req.jsExtRegExp.test(mainScript)) {
mainScript = dataMain;
}

//Put the data-main script in the files to load.
cfg.deps = cfg.deps ? cfg.deps.concat(dataMain) : [dataMain];
cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [mainScript];

return true;
}
Expand Down Expand Up @@ -2163,12 +2188,13 @@ function getInteractiveScript() {
//This module may not have dependencies
if (!isArray(deps)) {
callback = deps;
deps = [];
deps = null;
}

//If no name, and callback is a function, then figure out if it a
//CommonJS thing with dependencies.
if (!deps.length && isFunction(callback)) {
if (!deps && isFunction(callback)) {
deps = [];
//Remove comments from the callback string,
//look for require calls, and pull them into the dependencies,
//but only if there are function args.
Expand Down
7 changes: 6 additions & 1 deletion package.json
@@ -1,7 +1,7 @@
{
"name": "cajon",
"description": "A browser module loader that can load CommonJS/node and AMD modules. Built on top of RequireJS.",
"version": "0.1.4",
"version": "0.1.5",
"homepage": "http://github.com/requirejs/cajon",
"author": "James Burke <jrburke@gmail.com> (http://github.com/jrburke)",

Expand All @@ -16,6 +16,11 @@
}
],

"repository": {
"type": "git",
"url": "https://github.com/requirejs/cajon.git"
},

"main": "cajon.js",

"volo": {
Expand Down
4 changes: 2 additions & 2 deletions tools/c.js
@@ -1,5 +1,5 @@
/**
* @license cajon 0.1.4 Copyright (c) 2012, The Dojo Foundation All Rights Reserved.
* @license cajon 0.1.5 Copyright (c) 2012, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/requirejs/cajon for details
*/
Expand Down Expand Up @@ -32,7 +32,7 @@ java, requirejs, document */
return eval(content);
}

requirejs.cajonVersion = '0.1.4';
requirejs.cajonVersion = '0.1.5';
requirejs.createXhr = function () {
//Would love to dump the ActiveX crap in here. Need IE 6 to die first.
var xhr, i, progId;
Expand Down

0 comments on commit 6eb7451

Please sign in to comment.