@@ -19,6 +19,72 @@ if (__DEV__) {
1919 Object . freeze ( emptyObject ) ;
2020}
2121
22+ class Updater {
23+ constructor ( renderer ) {
24+ this . _renderer = renderer ;
25+ this . _callbacks = [ ] ;
26+ }
27+
28+ _enqueueCallback ( callback , publicInstance ) {
29+ if ( typeof callback === 'function' && publicInstance ) {
30+ this . _callbacks . push ( {
31+ callback,
32+ publicInstance,
33+ } ) ;
34+ }
35+ }
36+
37+ _invokeCallbacks ( ) {
38+ const callbacks = this . _callbacks ;
39+ this . _callbacks = [ ] ;
40+
41+ callbacks . forEach ( ( { callback, publicInstance} ) => {
42+ callback . call ( publicInstance ) ;
43+ } ) ;
44+ }
45+
46+ isMounted ( publicInstance ) {
47+ return ! ! this . _renderer . _element ;
48+ }
49+
50+ enqueueForceUpdate ( publicInstance , callback , callerName ) {
51+ this . _enqueueCallback ( callback , publicInstance ) ;
52+ this . _renderer . _forcedUpdate = true ;
53+ this . _renderer . render ( this . _renderer . _element , this . _renderer . _context ) ;
54+ }
55+
56+ enqueueReplaceState ( publicInstance , completeState , callback , callerName ) {
57+ this . _enqueueCallback ( callback , publicInstance ) ;
58+ this . _renderer . _newState = completeState ;
59+ this . _renderer . render ( this . _renderer . _element , this . _renderer . _context ) ;
60+ }
61+
62+ enqueueSetState ( publicInstance , partialState , callback , callerName ) {
63+ this . _enqueueCallback ( callback , publicInstance ) ;
64+ const currentState = this . _renderer . _newState || publicInstance . state ;
65+
66+ if ( typeof partialState === 'function' ) {
67+ partialState = partialState . call (
68+ publicInstance ,
69+ currentState ,
70+ publicInstance . props ,
71+ ) ;
72+ }
73+
74+ // Null and undefined are treated as no-ops.
75+ if ( partialState === null || partialState === undefined ) {
76+ return ;
77+ }
78+
79+ this . _renderer . _newState = {
80+ ...currentState ,
81+ ...partialState ,
82+ } ;
83+
84+ this . _renderer . render ( this . _renderer . _element , this . _renderer . _context ) ;
85+ }
86+ }
87+
2288class ReactShallowRenderer {
2389 static createRenderer = function ( ) {
2490 return new ReactShallowRenderer ( ) ;
@@ -263,72 +329,6 @@ class ReactShallowRenderer {
263329 }
264330}
265331
266- class Updater {
267- constructor ( renderer ) {
268- this . _renderer = renderer ;
269- this . _callbacks = [ ] ;
270- }
271-
272- _enqueueCallback ( callback , publicInstance ) {
273- if ( typeof callback === 'function' && publicInstance ) {
274- this . _callbacks . push ( {
275- callback,
276- publicInstance,
277- } ) ;
278- }
279- }
280-
281- _invokeCallbacks ( ) {
282- const callbacks = this . _callbacks ;
283- this . _callbacks = [ ] ;
284-
285- callbacks . forEach ( ( { callback, publicInstance} ) => {
286- callback . call ( publicInstance ) ;
287- } ) ;
288- }
289-
290- isMounted ( publicInstance ) {
291- return ! ! this . _renderer . _element ;
292- }
293-
294- enqueueForceUpdate ( publicInstance , callback , callerName ) {
295- this . _enqueueCallback ( callback , publicInstance ) ;
296- this . _renderer . _forcedUpdate = true ;
297- this . _renderer . render ( this . _renderer . _element , this . _renderer . _context ) ;
298- }
299-
300- enqueueReplaceState ( publicInstance , completeState , callback , callerName ) {
301- this . _enqueueCallback ( callback , publicInstance ) ;
302- this . _renderer . _newState = completeState ;
303- this . _renderer . render ( this . _renderer . _element , this . _renderer . _context ) ;
304- }
305-
306- enqueueSetState ( publicInstance , partialState , callback , callerName ) {
307- this . _enqueueCallback ( callback , publicInstance ) ;
308- const currentState = this . _renderer . _newState || publicInstance . state ;
309-
310- if ( typeof partialState === 'function' ) {
311- partialState = partialState . call (
312- publicInstance ,
313- currentState ,
314- publicInstance . props ,
315- ) ;
316- }
317-
318- // Null and undefined are treated as no-ops.
319- if ( partialState === null || partialState === undefined ) {
320- return ;
321- }
322-
323- this . _renderer . _newState = {
324- ...currentState ,
325- ...partialState ,
326- } ;
327-
328- this . _renderer . render ( this . _renderer . _element , this . _renderer . _context ) ;
329- }
330- }
331-
332332let currentlyValidatingElement = null ;
333333
334334function getDisplayName ( element ) {
0 commit comments