@@ -19,6 +19,72 @@ export class SimpleChange {
1919 }
2020}
2121
22+ var _simpleChangesIndex = 0 ;
23+ var _simpleChanges = [
24+ new SimpleChange ( null , null ) ,
25+ new SimpleChange ( null , null ) ,
26+ new SimpleChange ( null , null ) ,
27+ new SimpleChange ( null , null ) ,
28+ new SimpleChange ( null , null ) ,
29+ new SimpleChange ( null , null ) ,
30+ new SimpleChange ( null , null ) ,
31+ new SimpleChange ( null , null ) ,
32+ new SimpleChange ( null , null ) ,
33+ new SimpleChange ( null , null ) ,
34+ new SimpleChange ( null , null ) ,
35+ new SimpleChange ( null , null ) ,
36+ new SimpleChange ( null , null ) ,
37+ new SimpleChange ( null , null ) ,
38+ new SimpleChange ( null , null ) ,
39+ new SimpleChange ( null , null ) ,
40+ new SimpleChange ( null , null ) ,
41+ new SimpleChange ( null , null ) ,
42+ new SimpleChange ( null , null ) ,
43+ new SimpleChange ( null , null )
44+ ]
45+
46+ var _changeRecordsIndex = 0 ;
47+ var _changeRecords = [
48+ new ChangeRecord ( null , null ) ,
49+ new ChangeRecord ( null , null ) ,
50+ new ChangeRecord ( null , null ) ,
51+ new ChangeRecord ( null , null ) ,
52+ new ChangeRecord ( null , null ) ,
53+ new ChangeRecord ( null , null ) ,
54+ new ChangeRecord ( null , null ) ,
55+ new ChangeRecord ( null , null ) ,
56+ new ChangeRecord ( null , null ) ,
57+ new ChangeRecord ( null , null ) ,
58+ new ChangeRecord ( null , null ) ,
59+ new ChangeRecord ( null , null ) ,
60+ new ChangeRecord ( null , null ) ,
61+ new ChangeRecord ( null , null ) ,
62+ new ChangeRecord ( null , null ) ,
63+ new ChangeRecord ( null , null ) ,
64+ new ChangeRecord ( null , null ) ,
65+ new ChangeRecord ( null , null ) ,
66+ new ChangeRecord ( null , null ) ,
67+ new ChangeRecord ( null , null )
68+ ]
69+
70+ function _simpleChange ( previousValue , currentValue ) {
71+ var index = _simpleChangesIndex ++ % 20 ;
72+ var s = _simpleChanges [ index ] ;
73+ s . previousValue = previousValue ;
74+ s . currentValue = currentValue ;
75+ return s ;
76+ }
77+
78+ function _changeRecord ( bindingMemento , change ) {
79+ var index = _changeRecordsIndex ++ % 20 ;
80+ var s = _changeRecords [ index ] ;
81+ s . bindingMemento = bindingMemento ;
82+ s . change = change ;
83+ return s ;
84+ }
85+
86+ var _singleElementList = [ null ] ;
87+
2288export class ChangeDetectionUtil {
2389 static unitialized ( ) {
2490 return uninitialized ;
@@ -128,11 +194,29 @@ export class ChangeDetectionUtil {
128194 throw new ExpressionChangedAfterItHasBeenChecked ( proto , change ) ;
129195 }
130196
197+ static simpleChange ( previousValue :any , currentValue :any ) :SimpleChange {
198+ return _simpleChange ( previousValue , currentValue ) ;
199+ }
200+
131201 static changeRecord ( memento :any , change :any ) :ChangeRecord {
132- return new ChangeRecord ( memento , change ) ;
202+ return _changeRecord ( memento , change ) ;
133203 }
134204
135205 static simpleChangeRecord ( memento :any , previousValue :any , currentValue :any ) :ChangeRecord {
136- return new ChangeRecord ( memento , new SimpleChange ( previousValue , currentValue ) ) ;
206+ return _changeRecord ( memento , _simpleChange ( previousValue , currentValue ) ) ;
137207 }
138- }
208+
209+ static addRecord ( updatedRecords :List , changeRecord :ChangeRecord ) :List {
210+ if ( isBlank ( updatedRecords ) ) {
211+ updatedRecords = _singleElementList ;
212+ updatedRecords [ 0 ] = changeRecord ;
213+
214+ } else if ( updatedRecords === _singleElementList ) {
215+ updatedRecords = [ _singleElementList [ 0 ] , changeRecord ] ;
216+
217+ } else {
218+ ListWrapper . push ( updatedRecords , changeRecord ) ;
219+ }
220+ return updatedRecords ;
221+ }
222+ }
0 commit comments