esperanto-source 0.6.33 → 0.6.34
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/esperanto/source/version.rb +1 -1
- data/vendor/esperanto.browser.js +11 -6
- data/vendor/esperanto.js +66 -38
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0bd2e0fafcd3cd4249ae16bc134725936890f37
|
4
|
+
data.tar.gz: d9b4db58f14d64c6b06603592c905afc751cbdc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9aead4edb4ba8a2e3f16e72989328c88b1a4773085f56995a22da370602d6c31759f35c47446f1fdd99a2bcf5eb76ba8c64d3da6edb8f88e81d6c3eb4499bc81
|
7
|
+
data.tar.gz: fe1477afdfe8f6474739aeabec3d366f35d5844d774ada097c2b8af198d539979ab61c461090a8ffe7e27d888d58e3052e7502ab2a48901b7887ebf02eacf430
|
data/vendor/esperanto.browser.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
esperanto.js v0.6.
|
2
|
+
esperanto.js v0.6.34 - 2015-05-12
|
3
3
|
http://esperantojs.org
|
4
4
|
|
5
5
|
Released under the MIT License.
|
@@ -930,12 +930,17 @@
|
|
930
930
|
|
931
931
|
var magic_string = MagicString;
|
932
932
|
|
933
|
+
var ast_walk__shouldSkip;
|
934
|
+
var ast_walk__shouldAbort;
|
935
|
+
|
933
936
|
function walk ( ast, leave) {var enter = leave.enter, leave = leave.leave;
|
937
|
+
ast_walk__shouldAbort = false;
|
934
938
|
visit( ast, null, enter, leave );
|
935
939
|
}
|
936
940
|
|
937
941
|
var ast_walk__context = {
|
938
|
-
skip: function() {return
|
942
|
+
skip: function() {return ast_walk__shouldSkip = true},
|
943
|
+
abort: function() {return ast_walk__shouldAbort = true}
|
939
944
|
};
|
940
945
|
|
941
946
|
var ast_walk__childKeys = {};
|
@@ -947,12 +952,12 @@
|
|
947
952
|
}
|
948
953
|
|
949
954
|
function visit ( node, parent, enter, leave ) {
|
950
|
-
if ( !node ) return;
|
955
|
+
if ( !node || ast_walk__shouldAbort ) return;
|
951
956
|
|
952
957
|
if ( enter ) {
|
953
|
-
|
958
|
+
ast_walk__shouldSkip = false;
|
954
959
|
enter.call( ast_walk__context, node, parent );
|
955
|
-
if (
|
960
|
+
if ( ast_walk__shouldSkip || ast_walk__shouldAbort ) return;
|
956
961
|
}
|
957
962
|
|
958
963
|
var keys = ast_walk__childKeys[ node.type ] || (
|
@@ -978,7 +983,7 @@
|
|
978
983
|
}
|
979
984
|
}
|
980
985
|
|
981
|
-
if ( leave ) {
|
986
|
+
if ( leave && !ast_walk__shouldAbort ) {
|
982
987
|
leave( node, parent );
|
983
988
|
}
|
984
989
|
}
|
data/vendor/esperanto.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*
|
2
|
-
esperanto.js v0.6.
|
2
|
+
esperanto.js v0.6.34 - 2015-05-12
|
3
3
|
http://esperantojs.org
|
4
4
|
|
5
5
|
Released under the MIT License.
|
@@ -32,12 +32,17 @@ function hasNamedExports ( mod ) {
|
|
32
32
|
}
|
33
33
|
}
|
34
34
|
|
35
|
+
var ast_walk__shouldSkip = void 0;
|
36
|
+
var ast_walk__shouldAbort = void 0;
|
37
|
+
|
35
38
|
function walk ( ast, leave) {var enter = leave.enter, leave = leave.leave;
|
39
|
+
ast_walk__shouldAbort = false;
|
36
40
|
visit( ast, null, enter, leave );
|
37
41
|
}
|
38
42
|
|
39
43
|
var ast_walk__context = {
|
40
|
-
skip: function() {return
|
44
|
+
skip: function() {return ast_walk__shouldSkip = true},
|
45
|
+
abort: function() {return ast_walk__shouldAbort = true}
|
41
46
|
};
|
42
47
|
|
43
48
|
var ast_walk__childKeys = {};
|
@@ -49,12 +54,12 @@ function isArray ( thing ) {
|
|
49
54
|
}
|
50
55
|
|
51
56
|
function visit ( node, parent, enter, leave ) {
|
52
|
-
if ( !node ) return;
|
57
|
+
if ( !node || ast_walk__shouldAbort ) return;
|
53
58
|
|
54
59
|
if ( enter ) {
|
55
|
-
|
60
|
+
ast_walk__shouldSkip = false;
|
56
61
|
enter.call( ast_walk__context, node, parent );
|
57
|
-
if (
|
62
|
+
if ( ast_walk__shouldSkip || ast_walk__shouldAbort ) return;
|
58
63
|
}
|
59
64
|
|
60
65
|
var keys = ast_walk__childKeys[ node.type ] || (
|
@@ -80,7 +85,7 @@ function visit ( node, parent, enter, leave ) {
|
|
80
85
|
}
|
81
86
|
}
|
82
87
|
|
83
|
-
if ( leave ) {
|
88
|
+
if ( leave && !ast_walk__shouldAbort ) {
|
84
89
|
leave( node, parent );
|
85
90
|
}
|
86
91
|
}
|
@@ -755,61 +760,87 @@ function resolveAgainst ( importerPath ) {
|
|
755
760
|
function sortModules ( entry ) {
|
756
761
|
var seen = {};
|
757
762
|
var ordered = [];
|
758
|
-
var
|
763
|
+
var hasCycles;
|
764
|
+
|
765
|
+
var strongDeps = {};
|
766
|
+
var stronglyDependsOn = {};
|
759
767
|
|
760
768
|
function visit ( mod ) {
|
761
|
-
|
769
|
+
var id = mod.id;
|
770
|
+
|
771
|
+
seen[ id ] = true;
|
772
|
+
|
773
|
+
strongDeps[ id ] = [];
|
774
|
+
stronglyDependsOn[ id ] = {};
|
762
775
|
|
763
776
|
mod.imports.forEach( function(x ) {
|
764
777
|
var imported = x.module;
|
765
778
|
|
766
779
|
if ( imported.isExternal || imported.isSkipped ) return;
|
767
780
|
|
768
|
-
//
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
781
|
+
// if `mod` references a binding from `imported` at the top
|
782
|
+
// level (i.e. outside function bodies), we say that `mod`
|
783
|
+
// strongly depends on `imported. If two modules depend on
|
784
|
+
// each other, this helps us order them such that if a
|
785
|
+
// strongly depends on b, and b weakly depends on a, b
|
786
|
+
// goes first
|
787
|
+
if ( referencesAtTopLevel( mod, imported ) ) {
|
788
|
+
strongDeps[ id ].push( imported );
|
789
|
+
}
|
773
790
|
|
791
|
+
if ( utils_hasOwnProp.call( seen, imported.id ) ) {
|
792
|
+
// we need to prevent an infinite loop, and note that
|
793
|
+
// we need to check for strong/weak dependency relationships
|
794
|
+
hasCycles = true;
|
774
795
|
return;
|
775
796
|
}
|
776
797
|
|
777
798
|
visit( imported );
|
778
799
|
});
|
779
800
|
|
801
|
+
// add second (and third...) order dependencies
|
802
|
+
function addStrongDependencies ( dependency ) {
|
803
|
+
if ( utils_hasOwnProp.call( stronglyDependsOn[ id ], dependency.id ) ) return;
|
804
|
+
|
805
|
+
stronglyDependsOn[ id ][ dependency.id ] = true;
|
806
|
+
strongDeps[ dependency.id ].forEach( addStrongDependencies );
|
807
|
+
}
|
808
|
+
|
809
|
+
strongDeps[ id ].forEach( addStrongDependencies );
|
810
|
+
|
780
811
|
ordered.push( mod );
|
781
812
|
}
|
782
813
|
|
783
814
|
visit( entry );
|
784
815
|
|
785
|
-
|
786
|
-
var aIndex = ordered.indexOf( a );
|
787
|
-
var bIndex = ordered.indexOf( b );
|
816
|
+
var unordered;
|
788
817
|
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
return ordered;
|
794
|
-
}
|
818
|
+
if ( hasCycles ) {
|
819
|
+
unordered = ordered;
|
820
|
+
ordered = [];
|
795
821
|
|
796
|
-
|
797
|
-
|
798
|
-
|
822
|
+
// unordered is actually semi-ordered, as [ fewer dependencies ... more dependencies ]
|
823
|
+
unordered.forEach( function(x ) {
|
824
|
+
// ensure strong dependencies of x that don't strongly depend on x go first
|
825
|
+
strongDeps[ x.id ].forEach( place );
|
799
826
|
|
800
|
-
|
801
|
-
|
827
|
+
function place ( dep ) {
|
828
|
+
if ( !stronglyDependsOn[ dep.id ][ x.id ] && !~ordered.indexOf( dep ) ) {
|
829
|
+
strongDeps[ dep.id ].forEach( place );
|
830
|
+
ordered.push( dep );
|
831
|
+
}
|
832
|
+
}
|
802
833
|
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
return true;
|
808
|
-
}
|
834
|
+
if ( !~ordered.indexOf( x ) ) {
|
835
|
+
ordered.push( x );
|
836
|
+
}
|
837
|
+
});
|
809
838
|
}
|
839
|
+
|
840
|
+
return ordered;
|
810
841
|
}
|
811
842
|
|
812
|
-
function
|
843
|
+
function referencesAtTopLevel ( a, b ) {
|
813
844
|
var bindings = [];
|
814
845
|
|
815
846
|
// find out which bindings a imports from b
|
@@ -825,16 +856,13 @@ function usesAtTopLevel ( a, b ) {
|
|
825
856
|
|
826
857
|
walk( a.ast, {
|
827
858
|
enter: function ( node ) {
|
828
|
-
if ( referencedAtTopLevel ) {
|
829
|
-
return this.skip();
|
830
|
-
}
|
831
|
-
|
832
859
|
if ( /^Import/.test( node.type ) || ( node._scope && node._scope.parent ) ) {
|
833
860
|
return this.skip();
|
834
861
|
}
|
835
862
|
|
836
863
|
if ( node.type === 'Identifier' && ~bindings.indexOf( node.name ) ) {
|
837
864
|
referencedAtTopLevel = true;
|
865
|
+
this.abort();
|
838
866
|
}
|
839
867
|
}
|
840
868
|
});
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: esperanto-source
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryunosuke SATO
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|