From bfd8203a7a0b889cc796e6f145b67fe8bde9af4c Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Tue, 2 Feb 2016 21:11:50 -0500 Subject: [PATCH] use strict --- js/examples/smoketest/index.js | 2 + js/src/ground.js | 2 + js/src/main.js | 2 + js/src/mux.js | 2 + js/src/patch.js | 2 + js/src/reflect.js | 2 + js/src/route.js | 75 +++++++++++++++++++--------------- js/src/syndicate.js | 2 + js/src/util.js | 2 + js/test/test-mux.js | 2 + js/test/test-patch.js | 2 + js/test/test-route.js | 2 + js/test/test-syndicate.js | 2 + 13 files changed, 65 insertions(+), 34 deletions(-) diff --git a/js/examples/smoketest/index.js b/js/examples/smoketest/index.js index 8c9dcc5..f4f90e4 100644 --- a/js/examples/smoketest/index.js +++ b/js/examples/smoketest/index.js @@ -1,3 +1,5 @@ +"use strict"; + var G; $(document).ready(function () { var Network = Syndicate.Network; diff --git a/js/src/ground.js b/js/src/ground.js index c5e5d41..7841c50 100644 --- a/js/src/ground.js +++ b/js/src/ground.js @@ -1,3 +1,5 @@ +"use strict"; + var Immutable = require('immutable'); var Syndicate = require('./syndicate.js'); var Network = Syndicate.Network; diff --git a/js/src/main.js b/js/src/main.js index fd5bd3d..b494805 100644 --- a/js/src/main.js +++ b/js/src/main.js @@ -1,3 +1,5 @@ +"use strict"; + function copyKeys(keys, to, from) { for (var i = 0; i < keys.length; i++) { to[keys[i]] = from[keys[i]]; diff --git a/js/src/mux.js b/js/src/mux.js index 6247235..fd0e52a 100644 --- a/js/src/mux.js +++ b/js/src/mux.js @@ -1,3 +1,5 @@ +"use strict"; + var Immutable = require('immutable'); var Route = require('./route.js'); var Patch = require('./patch.js'); diff --git a/js/src/patch.js b/js/src/patch.js index 1a3b838..925a73d 100644 --- a/js/src/patch.js +++ b/js/src/patch.js @@ -1,3 +1,5 @@ +"use strict"; + var Route = require("./route.js"); var Immutable = require("immutable"); diff --git a/js/src/reflect.js b/js/src/reflect.js index 8afafef..43ef62b 100644 --- a/js/src/reflect.js +++ b/js/src/reflect.js @@ -1,3 +1,5 @@ +"use strict"; + // Reflection on function formal parameter lists. // This module is based on Angular's "injector" code, // https://github.com/angular/angular.js/blob/master/src/auto/injector.js, diff --git a/js/src/route.js b/js/src/route.js index 30a44a9..1cca107 100644 --- a/js/src/route.js +++ b/js/src/route.js @@ -1,3 +1,5 @@ +"use strict"; + var Immutable = require("immutable"); function $Special(name) { @@ -240,37 +242,40 @@ function union(o1, o2, unionSuccessesOpt) { } var w = merge(rlookup(r1, __), rlookup(r2, __)); + var target; + + function examineKey(rA, key, rB) { + if ((key !== __) && !target.has(key)) { + var k = merge(rlookup(rA, key), rlookup(rB, key)); + if (is_keyOpen(key)) { + target = rupdate(target, key, merge(rwildseq(w), k)); + } else if (is_keyClose(key)) { + if (w instanceof $WildcardSequence) { + target = rupdate(target, key, merge(w.trie, k)); + } else { + target = rupdate(target, key, k); + } + } else { + target = rupdate(target, key, merge(w, k)); + } + } + } + if (is_emptyTrie(w)) { var smaller = r1.size < r2.size ? r1 : r2; var larger = r1.size < r2.size ? r2 : r1; - var target = larger; + target = larger; smaller.forEach(function (val, key) { var k = merge(rlookup(smaller, key), rlookup(larger, key)); target = rupdate(target, key, k); }); - return target; } else { - var target = rwild(w); - function examineKey(rA, key, rB) { - if ((key !== __) && !target.has(key)) { - var k = merge(rlookup(rA, key), rlookup(rB, key)); - if (is_keyOpen(key)) { - target = rupdate(target, key, merge(rwildseq(w), k)); - } else if (is_keyClose(key)) { - if (w instanceof $WildcardSequence) { - target = rupdate(target, key, merge(w.trie, k)); - } else { - target = rupdate(target, key, k); - } - } else { - target = rupdate(target, key, merge(w, k)); - } - } - } + target = rwild(w); r1.forEach(function (val, key) { examineKey(r1, key, r2) }); r2.forEach(function (val, key) { examineKey(r2, key, r1) }); - return target; } + + return target; } } @@ -786,8 +791,9 @@ function project(m, compiledProjection) { m.forEach(function (mk, key) { if (key !== __) { if (is_keyOpen(key)) { - function cont(mk2) { return walk(isCapturing, mk2, nextIndex); } - target = rupdate(target, key, captureNested(mk, cont)); + target = rupdate(target, key, captureNested(mk, function (mk2) { + return walk(isCapturing, mk2, nextIndex); + })); } else if (is_keyClose(key)) { // do nothing } else { @@ -800,8 +806,9 @@ function project(m, compiledProjection) { m.forEach(function (mk, key) { if (key !== __) { if (is_keyOpen(key)) { - function cont(mk2) { return walk(isCapturing, mk2, nextIndex); } - target = union(target, skipNested(mk, cont)); + target = union(target, skipNested(mk, function (mk2) { + return walk(isCapturing, mk2, nextIndex); + })); } else if (is_keyClose(key)) { // do nothing } else { @@ -854,8 +861,9 @@ function project(m, compiledProjection) { m.forEach(function (mk, key) { if (key !== __) { if (is_keyOpen(key)) { - function cont2(mk2) { return captureNested(mk2, cont); } - target = rupdate(target, key, captureNested(mk, cont2)); + target = rupdate(target, key, captureNested(mk, function (mk2) { + return captureNested(mk2, cont); + })); } else if (is_keyClose(key)) { target = rupdate(target, key, cont(mk)); } else { @@ -879,8 +887,9 @@ function project(m, compiledProjection) { m.forEach(function (mk, key) { if (key !== __) { if (is_keyOpen(key)) { - function cont2(mk2) { return skipNested(mk2, cont); } - target = union(target, skipNested(mk, cont2)); + target = union(target, skipNested(mk, function (mk2) { + return skipNested(mk2, cont) + })); } else if (is_keyClose(key)) { target = union(target, cont(mk)); } else { @@ -906,15 +915,14 @@ function trieKeys(m) { m.forEach(function (mk, key) { var piece; if (is_keyOpen(key)) { - function seqK(vss, vsk) { + piece = walkSeq(mk, function (vss, vsk) { var acc = []; for (var i = 0; i < vss.length; i++) { var vs = vss[i]; acc = acc.concat(k(transformSeqs(vs, key), vsk)); } return acc; - } - piece = walkSeq(mk, seqK); + }); } else if (is_keyClose(key)) { die("trieKeys: internal error: unexpected key-close"); } else { @@ -936,7 +944,7 @@ function trieKeys(m) { if (is_keyClose(key)) { piece = k([Immutable.List()], mk); } else { - function outerK(v, vk) { + piece = walk(rseq(key, mk), function (v, vk) { return walkSeq(vk, function (vss, vsk) { var acc = []; for (var i = 0; i < vss.length; i++) { @@ -944,8 +952,7 @@ function trieKeys(m) { } return k(acc, vsk); }); - } - piece = walk(rseq(key, mk), outerK); + }); } if (piece === null) return null; acc = acc.concat(piece); diff --git a/js/src/syndicate.js b/js/src/syndicate.js index 9939bc0..c63f95c 100644 --- a/js/src/syndicate.js +++ b/js/src/syndicate.js @@ -1,3 +1,5 @@ +"use strict"; + var Immutable = require('immutable'); var Route = require('./route.js'); var Patch = require('./patch.js'); diff --git a/js/src/util.js b/js/src/util.js index af781ee..0961ca9 100644 --- a/js/src/util.js +++ b/js/src/util.js @@ -1,3 +1,5 @@ +"use strict"; + var Reflect = require("./reflect.js"); module.exports.extend = function (what, _with) { diff --git a/js/test/test-mux.js b/js/test/test-mux.js index 661f0b5..416258f 100644 --- a/js/test/test-mux.js +++ b/js/test/test-mux.js @@ -1,3 +1,5 @@ +"use strict"; + var expect = require('expect.js'); var Immutable = require('immutable'); diff --git a/js/test/test-patch.js b/js/test/test-patch.js index ec083a1..ff4722e 100644 --- a/js/test/test-patch.js +++ b/js/test/test-patch.js @@ -1,3 +1,5 @@ +"use strict"; + var expect = require('expect.js'); var Immutable = require('immutable'); diff --git a/js/test/test-route.js b/js/test/test-route.js index 889f736..36cd714 100644 --- a/js/test/test-route.js +++ b/js/test/test-route.js @@ -1,3 +1,5 @@ +"use strict"; + var Immutable = require('immutable'); var expect = require('expect.js'); var util = require('util'); diff --git a/js/test/test-syndicate.js b/js/test/test-syndicate.js index ce23118..b71f037 100644 --- a/js/test/test-syndicate.js +++ b/js/test/test-syndicate.js @@ -1,3 +1,5 @@ +"use strict"; + var expect = require('expect.js'); var Syndicate = require('../src/main.js');