aboutsummaryrefslogtreecommitdiff
path: root/node_modules/istanbul-lib-instrument/dist/visitor.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-04-20 03:09:25 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-04-24 16:14:29 +0200
commit82f2b76e25a4a67e01ec67e5ebe39d14ad771ea8 (patch)
tree965f6eb89b84d65a62b49008fd972c004832ccd1 /node_modules/istanbul-lib-instrument/dist/visitor.js
parente6e0cbc387c2a77b48e4065c229daa65bf1aa0fa (diff)
Reorganize module loading.
We now use webpack instead of SystemJS, effectively bundling modules into one file (plus commons chunks) for every entry point. This results in a much smaller extension size (almost half). Furthermore we use yarn/npm even for extension run-time dependencies. This relieves us from manually vendoring and building dependencies. It's also easier to understand for new developers familiar with node.
Diffstat (limited to 'node_modules/istanbul-lib-instrument/dist/visitor.js')
-rw-r--r--node_modules/istanbul-lib-instrument/dist/visitor.js11
1 files changed, 11 insertions, 0 deletions
diff --git a/node_modules/istanbul-lib-instrument/dist/visitor.js b/node_modules/istanbul-lib-instrument/dist/visitor.js
index cae5146f5..518b1e31e 100644
--- a/node_modules/istanbul-lib-instrument/dist/visitor.js
+++ b/node_modules/istanbul-lib-instrument/dist/visitor.js
@@ -184,6 +184,15 @@ var VisitState = function () {
path.node.body.unshift(T.expressionStatement(increment));
} else if (path.isStatement()) {
path.insertBefore(T.expressionStatement(increment));
+ } else if ((path.isFunctionExpression() || path.isArrowFunctionExpression()) && T.isVariableDeclarator(path.parentPath)) {
+ // make an attempt to hoist the statement counter, so that
+ // function names are maintained.
+ var parent = path.parentPath.parentPath;
+ if (parent && (T.isProgram(parent.parentPath) || T.isBlockStatement(parent.parentPath))) {
+ parent.insertBefore(T.expressionStatement(increment));
+ } else {
+ path.replaceWith(T.sequenceExpression([increment, path.node]));
+ }
} else /* istanbul ignore else: not expected */if (path.isExpression()) {
path.replaceWith(T.sequenceExpression([increment, path.node]));
} else {
@@ -210,6 +219,7 @@ var VisitState = function () {
return;
}
var n = path.node;
+
var dloc = null;
// get location for declaration
switch (n.type) {
@@ -231,6 +241,7 @@ var VisitState = function () {
end: { line: n.loc.start.line, column: n.loc.start.column + 1 }
};
}
+
var name = path.node.id ? path.node.id.name : path.node.name;
var index = this.cov.newFunction(name, dloc, path.node.body.loc);
var increment = this.increase('f', index, null);