[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 65e4763 065/271: Just push to a single tokens array.
From: |
Jackson Ray Hamilton |
Subject: |
[elpa] master 65e4763 065/271: Just push to a single tokens array. |
Date: |
Thu, 05 Feb 2015 18:29:49 +0000 |
branch: master
commit 65e476358503a99d668b1c8a0a0ec1a20881d52e
Author: Jackson Ray Hamilton <address@hidden>
Commit: Jackson Ray Hamilton <address@hidden>
Just push to a single tokens array.
---
scopifier-microoptimized.js | 29 ++++++++++++-----------------
test/specs.js | 3 +++
2 files changed, 15 insertions(+), 17 deletions(-)
diff --git a/scopifier-microoptimized.js b/scopifier-microoptimized.js
index 0c8a0d6..6248b60 100644
--- a/scopifier-microoptimized.js
+++ b/scopifier-microoptimized.js
@@ -9,20 +9,18 @@ module.exports = function (code) {
var analyzedScopes,
ast,
comment,
- comments,
definition,
- definitions,
+ definitionsCount,
+ definitionsIndex,
i,
isDefined,
j,
k,
- mappedDefinitions,
range,
reference,
- references,
scope,
scopes = [],
- symbols = [],
+ tokens = [],
variable;
// Gracefully handle parse errors by doing nothing.
@@ -61,22 +59,21 @@ module.exports = function (code) {
range[0] + 1,
range[1] + 1
]);
- definitions = [];
+ definitionsIndex = tokens.length;
+ definitionsCount = 0;
for (j = 0; j < scope.variables.length; j += 1) {
variable = scope.variables[j];
- mappedDefinitions = [];
+ definitionsCount += variable.defs.length;
for (k = 0; k < variable.defs.length; k += 1) {
definition = variable.defs[k];
range = definition.name.range;
- mappedDefinitions.push([
+ tokens.push([
scope.level,
range[0] + 1,
range[1] + 1
]);
}
- definitions = definitions.concat(mappedDefinitions);
}
- references = [];
for (j = 0; j < scope.references.length; j += 1) {
reference = scope.references[j];
range = reference.identifier.range;
@@ -85,8 +82,8 @@ module.exports = function (code) {
// range. (escope detects variables twice if they are
// declared and initialized simultaneously; this filters
// them.)
- for (k = 0; k < definitions.length; k += 1) {
- definition = definitions[k];
+ for (k = 0; k < definitionsCount; k += 1) {
+ definition = tokens[definitionsIndex + k];
if (definition[1] === range[0] + 1 &&
definition[2] === range[1] + 1) {
isDefined = true;
@@ -94,7 +91,7 @@ module.exports = function (code) {
}
}
if (!isDefined) {
- references.push([
+ tokens.push([
// Handle global references too.
reference.resolved ?
reference.resolved.scope.level : 0,
range[0] + 1,
@@ -102,21 +99,19 @@ module.exports = function (code) {
]);
}
}
- symbols = symbols.concat(definitions).concat(references);
}
}
}
- comments = [];
for (i = 0; i < ast.comments.length; i += 1) {
comment = ast.comments[i];
range = comment.range;
- comments.push([
+ tokens.push([
-1,
range[0] + 1,
range[1] + 1
]);
}
- return scopes.concat(symbols).concat(comments);
+ return scopes.concat(tokens);
};
diff --git a/test/specs.js b/test/specs.js
index c015ddb..7634fc0 100644
--- a/test/specs.js
+++ b/test/specs.js
@@ -42,6 +42,9 @@ describe('scopifier', function () {
[scopifier, scopifierMicrooptimized].forEach(function (scopifier, index) {
var message = '';
+ if (!scopifier) {
+ return;
+ }
if (index === 1) {
message = ' (microoptimized)';
}
- [elpa] master 38f0821 059/271: Perf with ugly for loops., (continued)
- [elpa] master 38f0821 059/271: Perf with ugly for loops., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 148e55b 046/271: Readme updates., Jackson Ray Hamilton, 2015/02/05
- [elpa] master a02fe9f 064/271: Switch to microoptimized., Jackson Ray Hamilton, 2015/02/05
- [elpa] master f07ce20 061/271: Revert back to functions., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 0ab3ed5 060/271: And it still made no difference., Jackson Ray Hamilton, 2015/02/05
- [elpa] master c2114e9 040/271: Uglify tokenizer now working., Jackson Ray Hamilton, 2015/02/05
- [elpa] master b1e7a1d 076/271: Switch to 1-dimensional array., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 7c8e32c 062/271: Restore microooptimized, add more benchmarks, add tests., Jackson Ray Hamilton, 2015/02/05
- [elpa] master eb2e6b3 070/271: Formalize italic support., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 67637bf 072/271: Update test fixture., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 65e4763 065/271: Just push to a single tokens array.,
Jackson Ray Hamilton <=
- [elpa] master cb8b1f2 066/271: Add light color scheme., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 7a49f9f 067/271: Make comments italic., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 07fe42c 078/271: Vconcat., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 28667b8 075/271: Move microoptimized scopifier into the limelight., Jackson Ray Hamilton, 2015/02/05
- [elpa] master c1f9f11 063/271: Switch to concat., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 183ac4e 081/271: Add emacs benchmark., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 59b1c99 074/271: Documentation and cleanup., Jackson Ray Hamilton, 2015/02/05
- [elpa] master c81c3fd 068/271: Make declarations bold., Jackson Ray Hamilton, 2015/02/05
- [elpa] master f9eb4a1 080/271: Revert "Use alist of faces.", Jackson Ray Hamilton, 2015/02/05
- [elpa] master ea3fd79 071/271: Make implicit global variables bold., Jackson Ray Hamilton, 2015/02/05