Skip to content

Commit f972d4d

Browse files
committed
v0.5.0
1 parent be255ae commit f972d4d

File tree

41 files changed

+133
-94
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+133
-94
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "Scriptrjs",
33
"main": "scriptr.js",
4-
"version": "0.4.0",
4+
"version": "0.5.0",
55
"description": "Simple AMD Module Loader",
66
"moduleType": [
77
"AMD"

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "Scriptrjs",
3-
"version": "0.4.0",
3+
"version": "0.5.0",
44
"keywords": [
55
"loader",
66
"require",

scriptr-0.4.0.min.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

scriptr-0.5.0.min.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scriptr.js

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
this.children = [];
5555
}
5656

57-
Module.prototype.require = function (path,cb) {
57+
var __require = Module.prototype.require = function (path,cb) {
5858
return Module._load(path, cb, this);
5959
};
6060

@@ -103,8 +103,38 @@
103103

104104
if (isArray(args[0])) {
105105
requireList = args[0];
106+
} else if (args[0] && typeof args[0] === 'string'){
107+
requireList = [args[0]];
106108
}
107-
109+
110+
var hasExportsRequire = [];
111+
var list = [];
112+
for (var i = 0; i < requireList.length; i++){
113+
if (requireList[i] === 'require' || requireList[i] === 'exports'){
114+
hasExportsRequire[i] = requireList[i];
115+
} else {
116+
list.push(requireList[i]);
117+
}
118+
}
119+
120+
if (hasExportsRequire.length){
121+
requireList = list;
122+
var _cb = cb;
123+
cb = function(){
124+
var self = this;
125+
var args = [];
126+
Array.prototype.push.apply( args, arguments );
127+
for (var i =0; i < hasExportsRequire.length; i++){
128+
var name = hasExportsRequire[i];
129+
if (name){
130+
if ( args[i]){ args[i+1] = args[i]; }
131+
args.splice(i, 1, self[name]);
132+
}
133+
}
134+
_cb.apply(this, args);
135+
};
136+
}
137+
108138
definedObjects.push({
109139
cb : cb,
110140
list : requireList
@@ -121,7 +151,7 @@
121151
this.filename = filename;
122152

123153
var $require = function () {
124-
return self.require.apply(self, arguments);
154+
return __require.apply(self, arguments);
125155
};
126156

127157
var el = doc.createElement('script');
@@ -135,6 +165,7 @@
135165
el.onload = el.onreadystatechange = null;
136166

137167
var _run = function () {
168+
self.require = $require;
138169
var _fireNestedCb = function () {
139170
var imports = self.imports;
140171
var importLen = imports.length;
@@ -188,9 +219,10 @@
188219
Array.prototype.push.apply( e, arguments );
189220
if (list.length) {
190221
var mid = list.shift();
222+
191223
var cb = list.length ? nested : function () {
192224
Array.prototype.push.apply( e, arguments );
193-
var args = [$require, self.exports].concat(e);
225+
var args = [].concat(e);
194226
callback.apply(self, args);
195227
_fireNestedCb();
196228
};
@@ -200,7 +232,7 @@
200232
nested();
201233
return;
202234
}
203-
callback.apply(self, [$require, self.exports]);
235+
callback.apply(self);
204236
}
205237
_fireNestedCb();
206238
};
@@ -213,14 +245,11 @@
213245
} else {
214246
el.src = filename;
215247
}
216-
217248
head.insertBefore(el, head.lastChild);
218249
};
219250

220251
Module._load = function (request, cb, parent) {
221-
222252
if (!cb){ cb = function(){}; }
223-
224253
if (isArray(request)) {
225254
var e = [], nested = function () {
226255
Array.prototype.push.apply( e, arguments );

tests/Modules/Anon/a.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
define(function (require,exports) {
2-
var b = require("./sub/b.js");
1+
define(function () {
2+
var b = this.require("./sub/b.js");
33
this.exports = {
44
name: "a",
55
bName: b.f()

tests/Modules/Anon/c.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
define(function (require) {
2-
var a = require('a.js');
1+
define(function () {
2+
var a = this.require('a.js');
33
this.exports = {
44
name: 'c',
55
aName: a.name

tests/Modules/Anon/sub/b.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
define(function(require, exports) {
2-
exports.f = function () { return "sub/b" };
1+
define(function() {
2+
this.exports.f = function () { return "sub/b" };
33
});

tests/Modules/Circular/Company.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
define(["./Employee.js"], function(require,exports,Employee) {
1+
define(['exports', "./Employee.js"], function(exports, Employee) {
22

33
function Company(name) {
44
this.name = name;

tests/Modules/Circular/Employee.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
define(function(require, exports) {
1+
define("require", function(require) {
22

33
var Company;
44
require("./Company.js", function( C ){
@@ -10,5 +10,4 @@ define(function(require, exports) {
1010
this.name = name;
1111
this.company = new Company(name + "'s own company");
1212
};
13-
1413
});

0 commit comments

Comments
 (0)