[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 0e64e85 055/271: Simplify to 2 arrays.
From: |
Jackson Ray Hamilton |
Subject: |
[elpa] master 0e64e85 055/271: Simplify to 2 arrays. |
Date: |
Thu, 05 Feb 2015 18:29:44 +0000 |
branch: master
commit 0e64e85892d391131d027f9001eae3bd53b63ad9
Author: Jackson Ray Hamilton <address@hidden>
Commit: Jackson Ray Hamilton <address@hidden>
Simplify to 2 arrays.
---
scopifier.js | 39 ++++++++++-----------------------------
test/fixtures/monad.js | 1 +
2 files changed, 11 insertions(+), 29 deletions(-)
diff --git a/scopifier.js b/scopifier.js
index 0f980c2..a9c65d6 100644
--- a/scopifier.js
+++ b/scopifier.js
@@ -38,9 +38,8 @@ module.exports = function (code) {
}
analyzedScopes.forEach(function (scope) {
- var scopeDefinitions,
- variables,
- globalReferences;
+ var definitions,
+ references;
if (scope.level !== undefined) {
// Having its level set implies it was already annotated.
return;
@@ -67,11 +66,8 @@ module.exports = function (code) {
scope.block.range[0],
scope.block.range[1]
]]);
- scopeDefinitions = [];
- variables = scope.variables.reduce(function (symbols, variable) {
- var definitions,
- references;
- definitions = variable.defs
+ definitions = scope.variables.reduce(function (definitions, variable) {
+ return definitions.concat(variable.defs
.map(function (definition) {
var range = definition.name.range;
return [
@@ -79,36 +75,21 @@ module.exports = function (code) {
range[0],
range[1]
];
- });
- references = variable.references
- .reduce(function (references, reference) {
- var range = reference.identifier.range;
- if (isDefined(definitions, range)) {
- return references;
- }
- // Double array required to concat just the inner array.
- return references.concat([[
- scope.level,
- range[0],
- range[1]
- ]]);
- }, []);
- scopeDefinitions = scopeDefinitions.concat(definitions);
- return symbols.concat(definitions).concat(references);
+ }));
}, []);
- globalReferences = scope.references.reduce(function (references,
reference) {
+ references = scope.references.reduce(function (references, reference) {
var range = reference.identifier.range;
- if (reference.resolved || isDefined(scopeDefinitions, range)) {
+ if (isDefined(definitions, range)) {
return references;
}
- // Handle global references.
return references.concat([[
- 0,
+ // Handle global references too.
+ reference.resolved ? reference.resolved.scope.level : 0,
range[0],
range[1]
]]);
}, []);
- symbols = symbols.concat(variables).concat(globalReferences);
+ symbols = symbols.concat(definitions).concat(references);
});
comments = ast.comments
diff --git a/test/fixtures/monad.js b/test/fixtures/monad.js
index 7a90405..6366fad 100644
--- a/test/fixtures/monad.js
+++ b/test/fixtures/monad.js
@@ -1,5 +1,6 @@
/* A monad. */
function MONAD() {
+ abc = 3;
return function unit(value) {
// Some details.
var monad = Object.create(null);
- [elpa] master f4e075f 047/271: Readme updates., (continued)
- [elpa] master f4e075f 047/271: Readme updates., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 6cd2827 044/271: Cleanup old scopifier., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 2b8bc05 052/271: Remove buggy tail optimization. Move stdin cruft to cli., Jackson Ray Hamilton, 2015/02/05
- [elpa] master f75af43 036/271: Fix installation instructions., Jackson Ray Hamilton, 2015/02/05
- [elpa] master d881130 049/271: Rename test., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 40c9d93 048/271: Readme updates., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 348b4ca 056/271: Teeny., Jackson Ray Hamilton, 2015/02/05
- [elpa] master c9a7a2d 050/271: Add tail-end optimization., Jackson Ray Hamilton, 2015/02/05
- [elpa] master d2114ae 053/271: Remove indentation level., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 028370d 054/271: Refactor to be more functional., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 0e64e85 055/271: Simplify to 2 arrays.,
Jackson Ray Hamilton <=
- [elpa] master ff988f3 051/271: Fix duplicate tokens and tail-end bug., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 0143a29 058/271: Leverage .jslintrc files., Jackson Ray Hamilton, 2015/02/05
- [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