@@ -11,21 +11,12 @@ var Immutable = require('./Immutable');
11
11
}
12
12
if ( ! Array . isArray ( value ) ) {
13
13
if ( value && value . constructor === Object ) {
14
- var keys = Object . keys ( value ) ;
15
- var objectSequence = makeSequence ( ) ;
16
- objectSequence . length = keys . length ;
17
- objectSequence . toObject = function ( ) { return value ; } ;
18
- objectSequence . __iterate = objectIterator . bind ( null , value , keys ) ;
19
- return objectSequence ;
14
+ return new ObjectSequence ( value ) ;
20
15
}
21
16
value = [ value ] ;
22
17
}
23
18
}
24
- var arraySequence = makeIndexedSequence ( ) ;
25
- arraySequence . length = value . length ;
26
- arraySequence . toArray = function ( ) { return value ; } ;
27
- arraySequence . __iterate = arrayIterator . bind ( null , value ) ;
28
- return arraySequence ;
19
+ return new ArraySequence ( value ) ;
29
20
}
30
21
31
22
Sequence . prototype . toString = function ( ) { "use strict" ;
@@ -40,7 +31,7 @@ var Immutable = require('./Immutable');
40
31
} ;
41
32
42
33
Sequence . prototype . __toStringMapper = function ( v , k ) { "use strict" ;
43
- return quoteString ( k ) + ': ' + quoteString ( v ) ;
34
+ return k + ': ' + quoteString ( v ) ;
44
35
} ;
45
36
46
37
Sequence . prototype . toJSON = function ( ) { "use strict" ;
@@ -707,6 +698,85 @@ IndexedSequence.prototype.__toJS = IndexedSequence.prototype.toArray;
707
698
IndexedSequence . prototype . __toStringMapper = quoteString ;
708
699
709
700
701
+ for ( Sequence____Key in Sequence ) { if ( Sequence . hasOwnProperty ( Sequence____Key ) ) { ObjectSequence [ Sequence____Key ] = Sequence [ Sequence____Key ] ; } } ObjectSequence . prototype = Object . create ( ____SuperProtoOfSequence ) ; ObjectSequence . prototype . constructor = ObjectSequence ; ObjectSequence . __superConstructor__ = Sequence ;
702
+ function ObjectSequence ( object ) { "use strict" ;
703
+ var keys = Object . keys ( object ) ;
704
+ this . $ObjectSequence_object = object ;
705
+ this . $ObjectSequence_keys = keys ;
706
+ this . length = keys . length ;
707
+ }
708
+
709
+ ObjectSequence . prototype . toObject = function ( ) { "use strict" ;
710
+ return this . $ObjectSequence_object ;
711
+ } ;
712
+
713
+ ObjectSequence . prototype . get = function ( key , undefinedValue ) { "use strict" ;
714
+ if ( undefinedValue !== undefined && ! this . has ( key ) ) {
715
+ return undefinedValue ;
716
+ }
717
+ return this . $ObjectSequence_object [ key ] ;
718
+ } ;
719
+
720
+ ObjectSequence . prototype . has = function ( key ) { "use strict" ;
721
+ return this . $ObjectSequence_object . hasOwnProperty ( key ) ;
722
+ } ;
723
+
724
+ ObjectSequence . prototype . __iterate = function ( fn , reverse ) { "use strict" ;
725
+ var object = this . $ObjectSequence_object ;
726
+ var keys = this . $ObjectSequence_keys ;
727
+ var maxIndex = keys . length - 1 ;
728
+ for ( var ii = 0 ; ii <= maxIndex ; ii ++ ) {
729
+ var iteration = reverse ? maxIndex - ii : ii ;
730
+ if ( fn ( object [ keys [ iteration ] ] , keys [ iteration ] , object ) === false ) {
731
+ break ;
732
+ }
733
+ }
734
+ return ii ;
735
+ } ;
736
+
737
+
738
+
739
+ for ( var IndexedSequence____Key in IndexedSequence ) { if ( IndexedSequence . hasOwnProperty ( IndexedSequence____Key ) ) { ArraySequence [ IndexedSequence____Key ] = IndexedSequence [ IndexedSequence____Key ] ; } } var ____SuperProtoOfIndexedSequence = IndexedSequence === null ?null :IndexedSequence . prototype ; ArraySequence . prototype = Object . create ( ____SuperProtoOfIndexedSequence ) ; ArraySequence . prototype . constructor = ArraySequence ; ArraySequence . __superConstructor__ = IndexedSequence ;
740
+ function ArraySequence ( array ) { "use strict" ;
741
+ this . $ArraySequence_array = array ;
742
+ this . length = array . length ;
743
+ }
744
+
745
+ ArraySequence . prototype . toArray = function ( ) { "use strict" ;
746
+ return this . $ArraySequence_array ;
747
+ } ;
748
+
749
+ ArraySequence . prototype . __iterate = function ( fn , reverse , flipIndices ) { "use strict" ;
750
+ var array = this . $ArraySequence_array ;
751
+ var maxIndex = array . length - 1 ;
752
+ var lastIndex = - 1 ;
753
+ if ( reverse ) {
754
+ for ( var ii = maxIndex ; ii >= 0 ; ii -- ) {
755
+ if ( array . hasOwnProperty ( ii ) &&
756
+ fn ( array [ ii ] , flipIndices ? ii : maxIndex - ii , array ) === false ) {
757
+ return lastIndex + 1 ;
758
+ }
759
+ lastIndex = ii ;
760
+ }
761
+ return array . length ;
762
+ } else {
763
+ var didFinish = array . every ( function ( value , index ) {
764
+ if ( fn ( value , flipIndices ? maxIndex - index : index , array ) === false ) {
765
+ return false ;
766
+ } else {
767
+ lastIndex = index ;
768
+ return true ;
769
+ }
770
+ } ) ;
771
+ return didFinish ? array . length : lastIndex + 1 ;
772
+ }
773
+ } ;
774
+
775
+
776
+ ArraySequence . prototype . get = ObjectSequence . prototype . get ;
777
+ ArraySequence . prototype . has = ObjectSequence . prototype . has ;
778
+
779
+
710
780
function makeSequence ( ) {
711
781
return Object . create ( Sequence . prototype ) ;
712
782
}
@@ -717,42 +787,6 @@ function makeIndexedSequence(parent) {
717
787
return newSequence ;
718
788
}
719
789
720
- function arrayIterator ( array , fn , reverse , flipIndices ) {
721
- var maxIndex = array . length - 1 ;
722
- var lastIndex = - 1 ;
723
- if ( reverse ) {
724
- for ( var ii = maxIndex ; ii >= 0 ; ii -- ) {
725
- if ( array . hasOwnProperty ( ii ) &&
726
- fn ( array [ ii ] , flipIndices ? ii : maxIndex - ii , array ) === false ) {
727
- return lastIndex + 1 ;
728
- }
729
- lastIndex = ii ;
730
- }
731
- return array . length ;
732
- } else {
733
- var didFinish = array . every ( function ( value , index ) {
734
- if ( fn ( value , flipIndices ? maxIndex - index : index , array ) === false ) {
735
- return false ;
736
- } else {
737
- lastIndex = index ;
738
- return true ;
739
- }
740
- } ) ;
741
- return didFinish ? array . length : lastIndex + 1 ;
742
- }
743
- }
744
-
745
- function objectIterator ( object , keys , fn , reverse ) {
746
- var maxIndex = keys . length - 1 ;
747
- for ( var ii = 0 ; ii <= maxIndex ; ii ++ ) {
748
- var iteration = reverse ? maxIndex - ii : ii ;
749
- if ( fn ( object [ keys [ iteration ] ] , keys [ iteration ] , object ) === false ) {
750
- break ;
751
- }
752
- }
753
- return ii ;
754
- }
755
-
756
790
function getInDeepSequence ( seq , keyPath , notFoundValue , pathOffset ) {
757
791
var nested = seq . get ? seq . get ( keyPath [ pathOffset ] , __SENTINEL ) : __SENTINEL ;
758
792
if ( nested === __SENTINEL ) {
0 commit comments