Skip to content
This repository was archived by the owner on Jul 13, 2020. It is now read-only.

Commit 95420b7

Browse files
committed
Merge pull request #141 from ModuleLoader/trace
add simple tracing API
2 parents 65ed9e4 + 48de8cd commit 95420b7

File tree

6 files changed

+109
-2
lines changed

6 files changed

+109
-2
lines changed

dist/es6-module-loader-sans-promises.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ function logloads(loads) {
350350
// 15.2.4.6 ProcessLoadDependencies
351351
load.dependencies = [];
352352
load.depsList = depsList;
353+
353354
var loadPromises = [];
354355
for (var i = 0, l = depsList.length; i < l; i++) (function(request) {
355356
loadPromises.push(
@@ -526,6 +527,26 @@ function logloads(loads) {
526527
return;
527528

528529
var startingLoad = linkSet.loads[0];
530+
531+
// non-executing link variation for loader tracing
532+
// on the server
533+
if (linkSet.loader.loaderObj.execute === false) {
534+
var loads = [].concat(linkSet.loads);
535+
for (var i = 0; i < loads.length; i++) {
536+
var load = loads[i];
537+
load.module = load.kind == 'dynamic' ? {
538+
module: Module({})
539+
} : {
540+
name: load.name,
541+
module: Module({}),
542+
evaluated: true
543+
};
544+
load.status = 'linked';
545+
finishLoad(linkSet.loader, load);
546+
}
547+
return linkSet.resolve(startingLoad);
548+
}
549+
529550
try {
530551
link(linkSet);
531552
}
@@ -557,6 +578,19 @@ function logloads(loads) {
557578

558579
// 15.2.5.2.5
559580
function finishLoad(loader, load) {
581+
// add to global trace if tracing
582+
if (loader.loaderObj.trace) {
583+
if (!loader.loaderObj.loads)
584+
loader.loaderObj.loads = {};
585+
loader.loaderObj.loads[load.name] = {
586+
name: load.name,
587+
dependencies: load.dependencies,
588+
address: load.address,
589+
metadata: load.metadata,
590+
source: load.source,
591+
kind: load.kind
592+
};
593+
}
560594
// if not anonymous, add to the module table
561595
if (load.name) {
562596
console.assert(!loader.modules[load.name], 'load not in module table');

dist/es6-module-loader-sans-promises.min.js

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

dist/es6-module-loader.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,6 +1034,7 @@ function logloads(loads) {
10341034
// 15.2.4.6 ProcessLoadDependencies
10351035
load.dependencies = [];
10361036
load.depsList = depsList;
1037+
10371038
var loadPromises = [];
10381039
for (var i = 0, l = depsList.length; i < l; i++) (function(request) {
10391040
loadPromises.push(
@@ -1210,6 +1211,26 @@ function logloads(loads) {
12101211
return;
12111212

12121213
var startingLoad = linkSet.loads[0];
1214+
1215+
// non-executing link variation for loader tracing
1216+
// on the server
1217+
if (linkSet.loader.loaderObj.execute === false) {
1218+
var loads = [].concat(linkSet.loads);
1219+
for (var i = 0; i < loads.length; i++) {
1220+
var load = loads[i];
1221+
load.module = load.kind == 'dynamic' ? {
1222+
module: Module({})
1223+
} : {
1224+
name: load.name,
1225+
module: Module({}),
1226+
evaluated: true
1227+
};
1228+
load.status = 'linked';
1229+
finishLoad(linkSet.loader, load);
1230+
}
1231+
return linkSet.resolve(startingLoad);
1232+
}
1233+
12131234
try {
12141235
link(linkSet);
12151236
}
@@ -1241,6 +1262,19 @@ function logloads(loads) {
12411262

12421263
// 15.2.5.2.5
12431264
function finishLoad(loader, load) {
1265+
// add to global trace if tracing
1266+
if (loader.loaderObj.trace) {
1267+
if (!loader.loaderObj.loads)
1268+
loader.loaderObj.loads = {};
1269+
loader.loaderObj.loads[load.name] = {
1270+
name: load.name,
1271+
dependencies: load.dependencies,
1272+
address: load.address,
1273+
metadata: load.metadata,
1274+
source: load.source,
1275+
kind: load.kind
1276+
};
1277+
}
12441278
// if not anonymous, add to the module table
12451279
if (load.name) {
12461280
console.assert(!loader.modules[load.name], 'load not in module table');

0 commit comments

Comments
 (0)