Best JavaScript code snippet using playwright-internal
c576cd6bed54e7fc21552dda7dfd4684887f04ReactMultiChild.js
Source:c576cd6bed54e7fc21552dda7dfd4684887f04ReactMultiChild.js  
...7var ReactChildReconciler = require('ReactChildReconciler');8var emptyFunction = require('fbjs/lib/emptyFunction');9var flattenChildren = require('flattenChildren');10var invariant = require('fbjs/lib/invariant');11function makeInsertMarkup(markup, afterNode, toIndex) {12  return {13    type: 'INSERT_MARKUP',14    content: markup,15    fromIndex: null,16    fromNode: null,17    toIndex: toIndex,18    afterNode: afterNode19  };20}21function makeMove(child, afterNode, toIndex) {22  return {23    type: 'MOVE_EXISTING',24    content: null,25    fromIndex: child._mountIndex,26    fromNode: ReactReconciler.getHostNode(child),27    toIndex: toIndex,28    afterNode: afterNode29  };30}31function makeRemove(child, node) {32  return {33    type: 'REMOVE_NODE',34    content: null,35    fromIndex: child._mountIndex,36    fromNode: node,37    toIndex: null,38    afterNode: null39  };40}41function makeSetMarkup(markup) {42  return {43    type: 'SET_MARKUP',44    content: markup,45    fromIndex: null,46    fromNode: null,47    toIndex: null,48    afterNode: null49  };50}51function makeTextContent(textContent) {52  return {53    type: 'TEXT_CONTENT',54    content: textContent,55    fromIndex: null,56    fromNode: null,57    toIndex: null,58    afterNode: null59  };60}61function enqueue(queue, update) {62  if (update) {63    queue = queue || [];64    queue.push(update);65  }66  return queue;67}68function processQueue(inst, updateQueue) {69  ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);70}71var setChildrenForInstrumentation = emptyFunction;72if (__DEV__) {73  var getDebugID = function getDebugID(inst) {74    if (!inst._debugID) {75      var internal;76      if (internal = ReactInstanceMap.get(inst)) {77        inst = internal;78      }79    }80    return inst._debugID;81  };82  setChildrenForInstrumentation = function setChildrenForInstrumentation(children) {83    var debugID = getDebugID(this);84    if (debugID !== 0) {85      ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {86        return children[key]._debugID;87      }) : []);88    }89  };90}91var ReactMultiChild = {92  _reconcilerInstantiateChildren: function _reconcilerInstantiateChildren(nestedChildren, transaction, context) {93    if (__DEV__) {94      var selfDebugID = getDebugID(this);95      if (this._currentElement) {96        try {97          ReactCurrentOwner.current = this._currentElement._owner;98          return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);99        } finally {100          ReactCurrentOwner.current = null;101        }102      }103    }104    return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);105  },106  _reconcilerUpdateChildren: function _reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {107    var nextChildren;108    var selfDebugID = 0;109    if (__DEV__) {110      selfDebugID = getDebugID(this);111      if (this._currentElement) {112        try {113          ReactCurrentOwner.current = this._currentElement._owner;114          nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);115        } finally {116          ReactCurrentOwner.current = null;117        }118        ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);119        return nextChildren;120      }121    }122    nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);123    ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);124    return nextChildren;125  },126  mountChildren: function mountChildren(nestedChildren, transaction, context) {127    var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);128    this._renderedChildren = children;129    var mountImages = [];130    var index = 0;131    for (var name in children) {132      if (children.hasOwnProperty(name)) {133        var child = children[name];134        var selfDebugID = 0;135        if (__DEV__) {136          selfDebugID = getDebugID(this);137        }138        var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);139        child._mountIndex = index++;140        mountImages.push(mountImage);141      }142    }143    if (__DEV__) {144      setChildrenForInstrumentation.call(this, children);145    }146    return mountImages;147  },148  updateTextContent: function updateTextContent(nextContent) {149    var prevChildren = this._renderedChildren;150    ReactChildReconciler.unmountChildren(prevChildren, false, false);151    for (var name in prevChildren) {152      if (prevChildren.hasOwnProperty(name)) {153        invariant(false, 'updateTextContent called on non-empty component.');154      }155    }156    var updates = [makeTextContent(nextContent)];157    processQueue(this, updates);158  },159  updateMarkup: function updateMarkup(nextMarkup) {160    var prevChildren = this._renderedChildren;161    ReactChildReconciler.unmountChildren(prevChildren, false, false);162    for (var name in prevChildren) {163      if (prevChildren.hasOwnProperty(name)) {164        invariant(false, 'updateTextContent called on non-empty component.');165      }166    }167    var updates = [makeSetMarkup(nextMarkup)];168    processQueue(this, updates);169  },170  updateChildren: function updateChildren(nextNestedChildrenElements, transaction, context) {171    this._updateChildren(nextNestedChildrenElements, transaction, context);172  },173  _updateChildren: function _updateChildren(nextNestedChildrenElements, transaction, context) {174    var prevChildren = this._renderedChildren;175    var removedNodes = {};176    var mountImages = [];177    var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);178    if (!nextChildren && !prevChildren) {179      return;180    }181    var updates = null;182    var name;183    var nextIndex = 0;184    var lastIndex = 0;185    var nextMountIndex = 0;186    var lastPlacedNode = null;187    for (name in nextChildren) {188      if (!nextChildren.hasOwnProperty(name)) {189        continue;190      }191      var prevChild = prevChildren && prevChildren[name];192      var nextChild = nextChildren[name];193      if (prevChild === nextChild) {194        updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));195        lastIndex = Math.max(prevChild._mountIndex, lastIndex);196        prevChild._mountIndex = nextIndex;197      } else {198        if (prevChild) {199          lastIndex = Math.max(prevChild._mountIndex, lastIndex);200        }201        updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));202        nextMountIndex++;203      }204      nextIndex++;205      lastPlacedNode = ReactReconciler.getHostNode(nextChild);206    }207    for (name in removedNodes) {208      if (removedNodes.hasOwnProperty(name)) {209        updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));210      }211    }212    if (updates) {213      processQueue(this, updates);214    }215    this._renderedChildren = nextChildren;216    if (__DEV__) {217      setChildrenForInstrumentation.call(this, nextChildren);218    }219  },220  unmountChildren: function unmountChildren(safely, skipLifecycle) {221    var renderedChildren = this._renderedChildren;222    ReactChildReconciler.unmountChildren(renderedChildren, safely, skipLifecycle);223    this._renderedChildren = null;224  },225  moveChild: function moveChild(child, afterNode, toIndex, lastIndex) {226    if (child._mountIndex < lastIndex) {227      return makeMove(child, afterNode, toIndex);228    }229  },230  createChild: function createChild(child, afterNode, mountImage) {231    return makeInsertMarkup(mountImage, afterNode, child._mountIndex);232  },233  removeChild: function removeChild(child, node) {234    return makeRemove(child, node);235  },236  _mountChildAtIndex: function _mountChildAtIndex(child, mountImage, afterNode, index, transaction, context) {237    child._mountIndex = index;238    return this.createChild(child, afterNode, mountImage);239  },240  _unmountChild: function _unmountChild(child, node) {241    var update = this.removeChild(child, node);242    child._mountIndex = null;243    return update;244  }245};...1b89a9ReactMultiChild.js
Source:1b89a9ReactMultiChild.js  
...7var ReactChildReconciler = require('ReactChildReconciler');8var emptyFunction = require('fbjs/lib/emptyFunction');9var flattenChildren = require('flattenChildren');10var invariant = require('fbjs/lib/invariant');11function makeInsertMarkup(markup, afterNode, toIndex) {12  return {13    type: 'INSERT_MARKUP',14    content: markup,15    fromIndex: null,16    fromNode: null,17    toIndex: toIndex,18    afterNode: afterNode19  };20}21function makeMove(child, afterNode, toIndex) {22  return {23    type: 'MOVE_EXISTING',24    content: null,25    fromIndex: child._mountIndex,26    fromNode: ReactReconciler.getHostNode(child),27    toIndex: toIndex,28    afterNode: afterNode29  };30}31function makeRemove(child, node) {32  return {33    type: 'REMOVE_NODE',34    content: null,35    fromIndex: child._mountIndex,36    fromNode: node,37    toIndex: null,38    afterNode: null39  };40}41function makeSetMarkup(markup) {42  return {43    type: 'SET_MARKUP',44    content: markup,45    fromIndex: null,46    fromNode: null,47    toIndex: null,48    afterNode: null49  };50}51function makeTextContent(textContent) {52  return {53    type: 'TEXT_CONTENT',54    content: textContent,55    fromIndex: null,56    fromNode: null,57    toIndex: null,58    afterNode: null59  };60}61function enqueue(queue, update) {62  if (update) {63    queue = queue || [];64    queue.push(update);65  }66  return queue;67}68function processQueue(inst, updateQueue) {69  ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);70}71var setChildrenForInstrumentation = emptyFunction;72if (__DEV__) {73  var getDebugID = function getDebugID(inst) {74    if (!inst._debugID) {75      var internal;76      if (internal = ReactInstanceMap.get(inst)) {77        inst = internal;78      }79    }80    return inst._debugID;81  };82  setChildrenForInstrumentation = function setChildrenForInstrumentation(children) {83    var debugID = getDebugID(this);84    if (debugID !== 0) {85      ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {86        return children[key]._debugID;87      }) : []);88    }89  };90}91var ReactMultiChild = {92  _reconcilerInstantiateChildren: function _reconcilerInstantiateChildren(nestedChildren, transaction, context) {93    if (__DEV__) {94      var selfDebugID = getDebugID(this);95      if (this._currentElement) {96        try {97          ReactCurrentOwner.current = this._currentElement._owner;98          return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);99        } finally {100          ReactCurrentOwner.current = null;101        }102      }103    }104    return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);105  },106  _reconcilerUpdateChildren: function _reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {107    var nextChildren;108    var selfDebugID = 0;109    if (__DEV__) {110      selfDebugID = getDebugID(this);111      if (this._currentElement) {112        try {113          ReactCurrentOwner.current = this._currentElement._owner;114          nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);115        } finally {116          ReactCurrentOwner.current = null;117        }118        ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);119        return nextChildren;120      }121    }122    nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);123    ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);124    return nextChildren;125  },126  mountChildren: function mountChildren(nestedChildren, transaction, context) {127    var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);128    this._renderedChildren = children;129    var mountImages = [];130    var index = 0;131    for (var name in children) {132      if (children.hasOwnProperty(name)) {133        var child = children[name];134        var selfDebugID = 0;135        if (__DEV__) {136          selfDebugID = getDebugID(this);137        }138        var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);139        child._mountIndex = index++;140        mountImages.push(mountImage);141      }142    }143    if (__DEV__) {144      setChildrenForInstrumentation.call(this, children);145    }146    return mountImages;147  },148  updateTextContent: function updateTextContent(nextContent) {149    var prevChildren = this._renderedChildren;150    ReactChildReconciler.unmountChildren(prevChildren, false);151    for (var name in prevChildren) {152      if (prevChildren.hasOwnProperty(name)) {153        invariant(false, 'updateTextContent called on non-empty component.');154      }155    }156    var updates = [makeTextContent(nextContent)];157    processQueue(this, updates);158  },159  updateMarkup: function updateMarkup(nextMarkup) {160    var prevChildren = this._renderedChildren;161    ReactChildReconciler.unmountChildren(prevChildren, false);162    for (var name in prevChildren) {163      if (prevChildren.hasOwnProperty(name)) {164        invariant(false, 'updateTextContent called on non-empty component.');165      }166    }167    var updates = [makeSetMarkup(nextMarkup)];168    processQueue(this, updates);169  },170  updateChildren: function updateChildren(nextNestedChildrenElements, transaction, context) {171    this._updateChildren(nextNestedChildrenElements, transaction, context);172  },173  _updateChildren: function _updateChildren(nextNestedChildrenElements, transaction, context) {174    var prevChildren = this._renderedChildren;175    var removedNodes = {};176    var mountImages = [];177    var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);178    if (!nextChildren && !prevChildren) {179      return;180    }181    var updates = null;182    var name;183    var nextIndex = 0;184    var lastIndex = 0;185    var nextMountIndex = 0;186    var lastPlacedNode = null;187    for (name in nextChildren) {188      if (!nextChildren.hasOwnProperty(name)) {189        continue;190      }191      var prevChild = prevChildren && prevChildren[name];192      var nextChild = nextChildren[name];193      if (prevChild === nextChild) {194        updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));195        lastIndex = Math.max(prevChild._mountIndex, lastIndex);196        prevChild._mountIndex = nextIndex;197      } else {198        if (prevChild) {199          lastIndex = Math.max(prevChild._mountIndex, lastIndex);200        }201        updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));202        nextMountIndex++;203      }204      nextIndex++;205      lastPlacedNode = ReactReconciler.getHostNode(nextChild);206    }207    for (name in removedNodes) {208      if (removedNodes.hasOwnProperty(name)) {209        updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));210      }211    }212    if (updates) {213      processQueue(this, updates);214    }215    this._renderedChildren = nextChildren;216    if (__DEV__) {217      setChildrenForInstrumentation.call(this, nextChildren);218    }219  },220  unmountChildren: function unmountChildren(safely) {221    var renderedChildren = this._renderedChildren;222    ReactChildReconciler.unmountChildren(renderedChildren, safely);223    this._renderedChildren = null;224  },225  moveChild: function moveChild(child, afterNode, toIndex, lastIndex) {226    if (child._mountIndex < lastIndex) {227      return makeMove(child, afterNode, toIndex);228    }229  },230  createChild: function createChild(child, afterNode, mountImage) {231    return makeInsertMarkup(mountImage, afterNode, child._mountIndex);232  },233  removeChild: function removeChild(child, node) {234    return makeRemove(child, node);235  },236  _mountChildAtIndex: function _mountChildAtIndex(child, mountImage, afterNode, index, transaction, context) {237    child._mountIndex = index;238    return this.createChild(child, afterNode, mountImage);239  },240  _unmountChild: function _unmountChild(child, node) {241    var update = this.removeChild(child, node);242    child._mountIndex = null;243    return update;244  }245};...41361dReactMultiChild.js
Source:41361dReactMultiChild.js  
...7var ReactChildReconciler=require('ReactChildReconciler');8var emptyFunction=require('fbjs/lib/emptyFunction');9var flattenChildren=require('flattenChildren');10var invariant=require('fbjs/lib/invariant');11function makeInsertMarkup(markup,afterNode,toIndex){12return{13type:'INSERT_MARKUP',14content:markup,15fromIndex:null,16fromNode:null,17toIndex:toIndex,18afterNode:afterNode};19}20function makeMove(child,afterNode,toIndex){21return{22type:'MOVE_EXISTING',23content:null,24fromIndex:child._mountIndex,25fromNode:ReactReconciler.getHostNode(child),26toIndex:toIndex,27afterNode:afterNode};28}29function makeRemove(child,node){30return{31type:'REMOVE_NODE',32content:null,33fromIndex:child._mountIndex,34fromNode:node,35toIndex:null,36afterNode:null};37}38function makeSetMarkup(markup){39return{40type:'SET_MARKUP',41content:markup,42fromIndex:null,43fromNode:null,44toIndex:null,45afterNode:null};46}47function makeTextContent(textContent){48return{49type:'TEXT_CONTENT',50content:textContent,51fromIndex:null,52fromNode:null,53toIndex:null,54afterNode:null};55}56function enqueue(queue,update){57if(update){58queue=queue||[];59queue.push(update);60}61return queue;62}63function processQueue(inst,updateQueue){64ReactComponentEnvironment.processChildrenUpdates(65inst,66updateQueue);67}68var setChildrenForInstrumentation=emptyFunction;69if(__DEV__){70var getDebugID=function getDebugID(inst){71if(!inst._debugID){72var internal;73if(internal=ReactInstanceMap.get(inst)){74inst=internal;75}76}77return inst._debugID;78};79setChildrenForInstrumentation=function setChildrenForInstrumentation(children){80var debugID=getDebugID(this);81if(debugID!==0){82ReactInstrumentation.debugTool.onSetChildren(83debugID,84children?Object.keys(children).map(function(key){return children[key]._debugID;}):[]);85}86};87}88var ReactMultiChild={89_reconcilerInstantiateChildren:function _reconcilerInstantiateChildren(nestedChildren,transaction,context){90if(__DEV__){91var selfDebugID=getDebugID(this);92if(this._currentElement){93try{94ReactCurrentOwner.current=this._currentElement._owner;95return ReactChildReconciler.instantiateChildren(96nestedChildren,transaction,context,selfDebugID);97}finally{98ReactCurrentOwner.current=null;99}100}101}102return ReactChildReconciler.instantiateChildren(103nestedChildren,transaction,context);104},105_reconcilerUpdateChildren:function _reconcilerUpdateChildren(106prevChildren,107nextNestedChildrenElements,108mountImages,109removedNodes,110transaction,111context)112{113var nextChildren;114var selfDebugID=0;115if(__DEV__){116selfDebugID=getDebugID(this);117if(this._currentElement){118try{119ReactCurrentOwner.current=this._currentElement._owner;120nextChildren=flattenChildren(nextNestedChildrenElements,selfDebugID);121}finally{122ReactCurrentOwner.current=null;123}124ReactChildReconciler.updateChildren(125prevChildren,126nextChildren,127mountImages,128removedNodes,129transaction,130this,131this._hostContainerInfo,132context,133selfDebugID);134return nextChildren;135}136}137nextChildren=flattenChildren(nextNestedChildrenElements,selfDebugID);138ReactChildReconciler.updateChildren(139prevChildren,140nextChildren,141mountImages,142removedNodes,143transaction,144this,145this._hostContainerInfo,146context,147selfDebugID);148return nextChildren;149},150mountChildren:function mountChildren(nestedChildren,transaction,context){151var children=this._reconcilerInstantiateChildren(152nestedChildren,transaction,context);153this._renderedChildren=children;154var mountImages=[];155var index=0;156for(var name in children){157if(children.hasOwnProperty(name)){158var child=children[name];159var selfDebugID=0;160if(__DEV__){161selfDebugID=getDebugID(this);162}163var mountImage=ReactReconciler.mountComponent(164child,165transaction,166this,167this._hostContainerInfo,168context,169selfDebugID);170child._mountIndex=index++;171mountImages.push(mountImage);172}173}174if(__DEV__){175setChildrenForInstrumentation.call(this,children);176}177return mountImages;178},179updateTextContent:function updateTextContent(nextContent){180var prevChildren=this._renderedChildren;181ReactChildReconciler.unmountChildren(prevChildren,false);182for(var name in prevChildren){183if(prevChildren.hasOwnProperty(name)){184invariant(false,'updateTextContent called on non-empty component.');185}186}187var updates=[makeTextContent(nextContent)];188processQueue(this,updates);189},190updateMarkup:function updateMarkup(nextMarkup){191var prevChildren=this._renderedChildren;192ReactChildReconciler.unmountChildren(prevChildren,false);193for(var name in prevChildren){194if(prevChildren.hasOwnProperty(name)){195invariant(false,'updateTextContent called on non-empty component.');196}197}198var updates=[makeSetMarkup(nextMarkup)];199processQueue(this,updates);200},201updateChildren:function updateChildren(nextNestedChildrenElements,transaction,context){202this._updateChildren(nextNestedChildrenElements,transaction,context);203},204_updateChildren:function _updateChildren(nextNestedChildrenElements,transaction,context){205var prevChildren=this._renderedChildren;206var removedNodes={};207var mountImages=[];208var nextChildren=this._reconcilerUpdateChildren(209prevChildren,210nextNestedChildrenElements,211mountImages,212removedNodes,213transaction,214context);215if(!nextChildren&&!prevChildren){216return;217}218var updates=null;219var name;220var nextIndex=0;221var lastIndex=0;222var nextMountIndex=0;223var lastPlacedNode=null;224for(name in nextChildren){225if(!nextChildren.hasOwnProperty(name)){226continue;227}228var prevChild=prevChildren&&prevChildren[name];229var nextChild=nextChildren[name];230if(prevChild===nextChild){231updates=enqueue(232updates,233this.moveChild(prevChild,lastPlacedNode,nextIndex,lastIndex));234lastIndex=Math.max(prevChild._mountIndex,lastIndex);235prevChild._mountIndex=nextIndex;236}else{237if(prevChild){238lastIndex=Math.max(prevChild._mountIndex,lastIndex);239}240updates=enqueue(241updates,242this._mountChildAtIndex(243nextChild,244mountImages[nextMountIndex],245lastPlacedNode,246nextIndex,247transaction,248context));249nextMountIndex++;250}251nextIndex++;252lastPlacedNode=ReactReconciler.getHostNode(nextChild);253}254for(name in removedNodes){255if(removedNodes.hasOwnProperty(name)){256updates=enqueue(257updates,258this._unmountChild(prevChildren[name],removedNodes[name]));259}260}261if(updates){262processQueue(this,updates);263}264this._renderedChildren=nextChildren;265if(__DEV__){266setChildrenForInstrumentation.call(this,nextChildren);267}268},269unmountChildren:function unmountChildren(safely){270var renderedChildren=this._renderedChildren;271ReactChildReconciler.unmountChildren(renderedChildren,safely);272this._renderedChildren=null;273},274moveChild:function moveChild(child,afterNode,toIndex,lastIndex){275if(child._mountIndex<lastIndex){276return makeMove(child,afterNode,toIndex);277}278},279createChild:function createChild(child,afterNode,mountImage){280return makeInsertMarkup(mountImage,afterNode,child._mountIndex);281},282removeChild:function removeChild(child,node){283return makeRemove(child,node);284},285_mountChildAtIndex:function _mountChildAtIndex(286child,287mountImage,288afterNode,289index,290transaction,291context){292child._mountIndex=index;293return this.createChild(child,afterNode,mountImage);294},...6df2fcReactMultiChild.js
Source:6df2fcReactMultiChild.js  
...7var ReactChildReconciler=require('ReactChildReconciler');8var emptyFunction=require('fbjs/lib/emptyFunction');9var flattenChildren=require('flattenChildren');10var invariant=require('fbjs/lib/invariant');11function makeInsertMarkup(markup,afterNode,toIndex){12return{13type:'INSERT_MARKUP',14content:markup,15fromIndex:null,16fromNode:null,17toIndex:toIndex,18afterNode:afterNode};19}20function makeMove(child,afterNode,toIndex){21return{22type:'MOVE_EXISTING',23content:null,24fromIndex:child._mountIndex,25fromNode:ReactReconciler.getHostNode(child),26toIndex:toIndex,27afterNode:afterNode};28}29function makeRemove(child,node){30return{31type:'REMOVE_NODE',32content:null,33fromIndex:child._mountIndex,34fromNode:node,35toIndex:null,36afterNode:null};37}38function makeSetMarkup(markup){39return{40type:'SET_MARKUP',41content:markup,42fromIndex:null,43fromNode:null,44toIndex:null,45afterNode:null};46}47function makeTextContent(textContent){48return{49type:'TEXT_CONTENT',50content:textContent,51fromIndex:null,52fromNode:null,53toIndex:null,54afterNode:null};55}56function enqueue(queue,update){57if(update){58queue=queue||[];59queue.push(update);60}61return queue;62}63function processQueue(inst,updateQueue){64ReactComponentEnvironment.processChildrenUpdates(65inst,66updateQueue);67}68var setChildrenForInstrumentation=emptyFunction;69if(__DEV__){70var getDebugID=function getDebugID(inst){71if(!inst._debugID){72var internal;73if(internal=ReactInstanceMap.get(inst)){74inst=internal;75}76}77return inst._debugID;78};79setChildrenForInstrumentation=function setChildrenForInstrumentation(children){80var debugID=getDebugID(this);81if(debugID!==0){82ReactInstrumentation.debugTool.onSetChildren(83debugID,84children?Object.keys(children).map(function(key){return children[key]._debugID;}):[]);85}86};87}88var ReactMultiChild={89_reconcilerInstantiateChildren:function _reconcilerInstantiateChildren(nestedChildren,transaction,context){90if(__DEV__){91var selfDebugID=getDebugID(this);92if(this._currentElement){93try{94ReactCurrentOwner.current=this._currentElement._owner;95return ReactChildReconciler.instantiateChildren(96nestedChildren,transaction,context,selfDebugID);97}finally{98ReactCurrentOwner.current=null;99}100}101}102return ReactChildReconciler.instantiateChildren(103nestedChildren,transaction,context);104},105_reconcilerUpdateChildren:function _reconcilerUpdateChildren(106prevChildren,107nextNestedChildrenElements,108mountImages,109removedNodes,110transaction,111context)112{113var nextChildren;114var selfDebugID=0;115if(__DEV__){116selfDebugID=getDebugID(this);117if(this._currentElement){118try{119ReactCurrentOwner.current=this._currentElement._owner;120nextChildren=flattenChildren(nextNestedChildrenElements,selfDebugID);121}finally{122ReactCurrentOwner.current=null;123}124ReactChildReconciler.updateChildren(125prevChildren,126nextChildren,127mountImages,128removedNodes,129transaction,130this,131this._hostContainerInfo,132context,133selfDebugID);134return nextChildren;135}136}137nextChildren=flattenChildren(nextNestedChildrenElements,selfDebugID);138ReactChildReconciler.updateChildren(139prevChildren,140nextChildren,141mountImages,142removedNodes,143transaction,144this,145this._hostContainerInfo,146context,147selfDebugID);148return nextChildren;149},150mountChildren:function mountChildren(nestedChildren,transaction,context){151var children=this._reconcilerInstantiateChildren(152nestedChildren,transaction,context);153this._renderedChildren=children;154var mountImages=[];155var index=0;156for(var name in children){157if(children.hasOwnProperty(name)){158var child=children[name];159var selfDebugID=0;160if(__DEV__){161selfDebugID=getDebugID(this);162}163var mountImage=ReactReconciler.mountComponent(164child,165transaction,166this,167this._hostContainerInfo,168context,169selfDebugID);170child._mountIndex=index++;171mountImages.push(mountImage);172}173}174if(__DEV__){175setChildrenForInstrumentation.call(this,children);176}177return mountImages;178},179updateTextContent:function updateTextContent(nextContent){180var prevChildren=this._renderedChildren;181ReactChildReconciler.unmountChildren(prevChildren,false);182for(var name in prevChildren){183if(prevChildren.hasOwnProperty(name)){184invariant(false,'updateTextContent called on non-empty component.');185}186}187var updates=[makeTextContent(nextContent)];188processQueue(this,updates);189},190updateMarkup:function updateMarkup(nextMarkup){191var prevChildren=this._renderedChildren;192ReactChildReconciler.unmountChildren(prevChildren,false);193for(var name in prevChildren){194if(prevChildren.hasOwnProperty(name)){195invariant(false,'updateTextContent called on non-empty component.');196}197}198var updates=[makeSetMarkup(nextMarkup)];199processQueue(this,updates);200},201updateChildren:function updateChildren(nextNestedChildrenElements,transaction,context){202this._updateChildren(nextNestedChildrenElements,transaction,context);203},204_updateChildren:function _updateChildren(nextNestedChildrenElements,transaction,context){205var prevChildren=this._renderedChildren;206var removedNodes={};207var mountImages=[];208var nextChildren=this._reconcilerUpdateChildren(209prevChildren,210nextNestedChildrenElements,211mountImages,212removedNodes,213transaction,214context);215if(!nextChildren&&!prevChildren){216return;217}218var updates=null;219var name;220var nextIndex=0;221var lastIndex=0;222var nextMountIndex=0;223var lastPlacedNode=null;224for(name in nextChildren){225if(!nextChildren.hasOwnProperty(name)){226continue;227}228var prevChild=prevChildren&&prevChildren[name];229var nextChild=nextChildren[name];230if(prevChild===nextChild){231updates=enqueue(232updates,233this.moveChild(prevChild,lastPlacedNode,nextIndex,lastIndex));234lastIndex=Math.max(prevChild._mountIndex,lastIndex);235prevChild._mountIndex=nextIndex;236}else{237if(prevChild){238lastIndex=Math.max(prevChild._mountIndex,lastIndex);239}240updates=enqueue(241updates,242this._mountChildAtIndex(243nextChild,244mountImages[nextMountIndex],245lastPlacedNode,246nextIndex,247transaction,248context));249nextMountIndex++;250}251nextIndex++;252lastPlacedNode=ReactReconciler.getHostNode(nextChild);253}254for(name in removedNodes){255if(removedNodes.hasOwnProperty(name)){256updates=enqueue(257updates,258this._unmountChild(prevChildren[name],removedNodes[name]));259}260}261if(updates){262processQueue(this,updates);263}264this._renderedChildren=nextChildren;265if(__DEV__){266setChildrenForInstrumentation.call(this,nextChildren);267}268},269unmountChildren:function unmountChildren(safely){270var renderedChildren=this._renderedChildren;271ReactChildReconciler.unmountChildren(renderedChildren,safely);272this._renderedChildren=null;273},274moveChild:function moveChild(child,afterNode,toIndex,lastIndex){275if(child._mountIndex<lastIndex){276return makeMove(child,afterNode,toIndex);277}278},279createChild:function createChild(child,afterNode,mountImage){280return makeInsertMarkup(mountImage,afterNode,child._mountIndex);281},282removeChild:function removeChild(child,node){283return makeRemove(child,node);284},285_mountChildAtIndex:function _mountChildAtIndex(286child,287mountImage,288afterNode,289index,290transaction,291context){292child._mountIndex=index;293return this.createChild(child,afterNode,mountImage);294},...4bcd29ReactMultiChild.js
Source:4bcd29ReactMultiChild.js  
...7var ReactChildReconciler=require('ReactChildReconciler');8var emptyFunction=require('fbjs/lib/emptyFunction');9var flattenChildren=require('flattenChildren');10var invariant=require('fbjs/lib/invariant');11function makeInsertMarkup(markup,afterNode,toIndex){12return{13type:'INSERT_MARKUP',14content:markup,15fromIndex:null,16fromNode:null,17toIndex:toIndex,18afterNode:afterNode};19}20function makeMove(child,afterNode,toIndex){21return{22type:'MOVE_EXISTING',23content:null,24fromIndex:child._mountIndex,25fromNode:ReactReconciler.getHostNode(child),26toIndex:toIndex,27afterNode:afterNode};28}29function makeRemove(child,node){30return{31type:'REMOVE_NODE',32content:null,33fromIndex:child._mountIndex,34fromNode:node,35toIndex:null,36afterNode:null};37}38function makeSetMarkup(markup){39return{40type:'SET_MARKUP',41content:markup,42fromIndex:null,43fromNode:null,44toIndex:null,45afterNode:null};46}47function makeTextContent(textContent){48return{49type:'TEXT_CONTENT',50content:textContent,51fromIndex:null,52fromNode:null,53toIndex:null,54afterNode:null};55}56function enqueue(queue,update){57if(update){58queue=queue||[];59queue.push(update);60}61return queue;62}63function processQueue(inst,updateQueue){64ReactComponentEnvironment.processChildrenUpdates(65inst,66updateQueue);67}68var setChildrenForInstrumentation=emptyFunction;69if(__DEV__){70var getDebugID=function getDebugID(inst){71if(!inst._debugID){72var internal;73if(internal=ReactInstanceMap.get(inst)){74inst=internal;75}76}77return inst._debugID;78};79setChildrenForInstrumentation=function setChildrenForInstrumentation(children){80var debugID=getDebugID(this);81if(debugID!==0){82ReactInstrumentation.debugTool.onSetChildren(83debugID,84children?Object.keys(children).map(function(key){return children[key]._debugID;}):[]);85}86};87}88var ReactMultiChild={89_reconcilerInstantiateChildren:function _reconcilerInstantiateChildren(nestedChildren,transaction,context){90if(__DEV__){91var selfDebugID=getDebugID(this);92if(this._currentElement){93try{94ReactCurrentOwner.current=this._currentElement._owner;95return ReactChildReconciler.instantiateChildren(96nestedChildren,transaction,context,selfDebugID);97}finally{98ReactCurrentOwner.current=null;99}100}101}102return ReactChildReconciler.instantiateChildren(103nestedChildren,transaction,context);104},105_reconcilerUpdateChildren:function _reconcilerUpdateChildren(106prevChildren,107nextNestedChildrenElements,108mountImages,109removedNodes,110transaction,111context)112{113var nextChildren;114var selfDebugID=0;115if(__DEV__){116selfDebugID=getDebugID(this);117if(this._currentElement){118try{119ReactCurrentOwner.current=this._currentElement._owner;120nextChildren=flattenChildren(nextNestedChildrenElements,selfDebugID);121}finally{122ReactCurrentOwner.current=null;123}124ReactChildReconciler.updateChildren(125prevChildren,126nextChildren,127mountImages,128removedNodes,129transaction,130this,131this._hostContainerInfo,132context,133selfDebugID);134return nextChildren;135}136}137nextChildren=flattenChildren(nextNestedChildrenElements,selfDebugID);138ReactChildReconciler.updateChildren(139prevChildren,140nextChildren,141mountImages,142removedNodes,143transaction,144this,145this._hostContainerInfo,146context,147selfDebugID);148return nextChildren;149},150mountChildren:function mountChildren(nestedChildren,transaction,context){151var children=this._reconcilerInstantiateChildren(152nestedChildren,transaction,context);153this._renderedChildren=children;154var mountImages=[];155var index=0;156for(var name in children){157if(children.hasOwnProperty(name)){158var child=children[name];159var selfDebugID=0;160if(__DEV__){161selfDebugID=getDebugID(this);162}163var mountImage=ReactReconciler.mountComponent(164child,165transaction,166this,167this._hostContainerInfo,168context,169selfDebugID);170child._mountIndex=index++;171mountImages.push(mountImage);172}173}174if(__DEV__){175setChildrenForInstrumentation.call(this,children);176}177return mountImages;178},179updateTextContent:function updateTextContent(nextContent){180var prevChildren=this._renderedChildren;181ReactChildReconciler.unmountChildren(prevChildren,false);182for(var name in prevChildren){183if(prevChildren.hasOwnProperty(name)){184invariant(false,'updateTextContent called on non-empty component.');185}186}187var updates=[makeTextContent(nextContent)];188processQueue(this,updates);189},190updateMarkup:function updateMarkup(nextMarkup){191var prevChildren=this._renderedChildren;192ReactChildReconciler.unmountChildren(prevChildren,false);193for(var name in prevChildren){194if(prevChildren.hasOwnProperty(name)){195invariant(false,'updateTextContent called on non-empty component.');196}197}198var updates=[makeSetMarkup(nextMarkup)];199processQueue(this,updates);200},201updateChildren:function updateChildren(nextNestedChildrenElements,transaction,context){202this._updateChildren(nextNestedChildrenElements,transaction,context);203},204_updateChildren:function _updateChildren(nextNestedChildrenElements,transaction,context){205var prevChildren=this._renderedChildren;206var removedNodes={};207var mountImages=[];208var nextChildren=this._reconcilerUpdateChildren(209prevChildren,210nextNestedChildrenElements,211mountImages,212removedNodes,213transaction,214context);215if(!nextChildren&&!prevChildren){216return;217}218var updates=null;219var name;220var nextIndex=0;221var lastIndex=0;222var nextMountIndex=0;223var lastPlacedNode=null;224for(name in nextChildren){225if(!nextChildren.hasOwnProperty(name)){226continue;227}228var prevChild=prevChildren&&prevChildren[name];229var nextChild=nextChildren[name];230if(prevChild===nextChild){231updates=enqueue(232updates,233this.moveChild(prevChild,lastPlacedNode,nextIndex,lastIndex));234lastIndex=Math.max(prevChild._mountIndex,lastIndex);235prevChild._mountIndex=nextIndex;236}else{237if(prevChild){238lastIndex=Math.max(prevChild._mountIndex,lastIndex);239}240updates=enqueue(241updates,242this._mountChildAtIndex(243nextChild,244mountImages[nextMountIndex],245lastPlacedNode,246nextIndex,247transaction,248context));249nextMountIndex++;250}251nextIndex++;252lastPlacedNode=ReactReconciler.getHostNode(nextChild);253}254for(name in removedNodes){255if(removedNodes.hasOwnProperty(name)){256updates=enqueue(257updates,258this._unmountChild(prevChildren[name],removedNodes[name]));259}260}261if(updates){262processQueue(this,updates);263}264this._renderedChildren=nextChildren;265if(__DEV__){266setChildrenForInstrumentation.call(this,nextChildren);267}268},269unmountChildren:function unmountChildren(safely){270var renderedChildren=this._renderedChildren;271ReactChildReconciler.unmountChildren(renderedChildren,safely);272this._renderedChildren=null;273},274moveChild:function moveChild(child,afterNode,toIndex,lastIndex){275if(child._mountIndex<lastIndex){276return makeMove(child,afterNode,toIndex);277}278},279createChild:function createChild(child,afterNode,mountImage){280return makeInsertMarkup(mountImage,afterNode,child._mountIndex);281},282removeChild:function removeChild(child,node){283return makeRemove(child,node);284},285_mountChildAtIndex:function _mountChildAtIndex(286child,287mountImage,288afterNode,289index,290transaction,291context){292child._mountIndex=index;293return this.createChild(child,afterNode,mountImage);294},...583b23ReactMultiChild.js
Source:583b23ReactMultiChild.js  
...7var ReactChildReconciler=require('ReactChildReconciler');8var emptyFunction=require('fbjs/lib/emptyFunction');9var flattenChildren=require('flattenChildren');10var invariant=require('fbjs/lib/invariant');11function makeInsertMarkup(markup,afterNode,toIndex){12return{13type:'INSERT_MARKUP',14content:markup,15fromIndex:null,16fromNode:null,17toIndex:toIndex,18afterNode:afterNode};19}20function makeMove(child,afterNode,toIndex){21return{22type:'MOVE_EXISTING',23content:null,24fromIndex:child._mountIndex,25fromNode:ReactReconciler.getHostNode(child),26toIndex:toIndex,27afterNode:afterNode};28}29function makeRemove(child,node){30return{31type:'REMOVE_NODE',32content:null,33fromIndex:child._mountIndex,34fromNode:node,35toIndex:null,36afterNode:null};37}38function makeSetMarkup(markup){39return{40type:'SET_MARKUP',41content:markup,42fromIndex:null,43fromNode:null,44toIndex:null,45afterNode:null};46}47function makeTextContent(textContent){48return{49type:'TEXT_CONTENT',50content:textContent,51fromIndex:null,52fromNode:null,53toIndex:null,54afterNode:null};55}56function enqueue(queue,update){57if(update){58queue=queue||[];59queue.push(update);60}61return queue;62}63function processQueue(inst,updateQueue){64ReactComponentEnvironment.processChildrenUpdates(65inst,66updateQueue);67}68var setChildrenForInstrumentation=emptyFunction;69if(__DEV__){70var getDebugID=function getDebugID(inst){71if(!inst._debugID){72var internal;73if(internal=ReactInstanceMap.get(inst)){74inst=internal;75}76}77return inst._debugID;78};79setChildrenForInstrumentation=function setChildrenForInstrumentation(children){80var debugID=getDebugID(this);81if(debugID!==0){82ReactInstrumentation.debugTool.onSetChildren(83debugID,84children?Object.keys(children).map(function(key){return children[key]._debugID;}):[]);85}86};87}88var ReactMultiChild={89_reconcilerInstantiateChildren:function _reconcilerInstantiateChildren(nestedChildren,transaction,context){90if(__DEV__){91var selfDebugID=getDebugID(this);92if(this._currentElement){93try{94ReactCurrentOwner.current=this._currentElement._owner;95return ReactChildReconciler.instantiateChildren(96nestedChildren,transaction,context,selfDebugID);97}finally{98ReactCurrentOwner.current=null;99}100}101}102return ReactChildReconciler.instantiateChildren(103nestedChildren,transaction,context);104},105_reconcilerUpdateChildren:function _reconcilerUpdateChildren(106prevChildren,107nextNestedChildrenElements,108mountImages,109removedNodes,110transaction,111context)112{113var nextChildren;114var selfDebugID=0;115if(__DEV__){116selfDebugID=getDebugID(this);117if(this._currentElement){118try{119ReactCurrentOwner.current=this._currentElement._owner;120nextChildren=flattenChildren(nextNestedChildrenElements,selfDebugID);121}finally{122ReactCurrentOwner.current=null;123}124ReactChildReconciler.updateChildren(125prevChildren,126nextChildren,127mountImages,128removedNodes,129transaction,130this,131this._hostContainerInfo,132context,133selfDebugID);134return nextChildren;135}136}137nextChildren=flattenChildren(nextNestedChildrenElements,selfDebugID);138ReactChildReconciler.updateChildren(139prevChildren,140nextChildren,141mountImages,142removedNodes,143transaction,144this,145this._hostContainerInfo,146context,147selfDebugID);148return nextChildren;149},150mountChildren:function mountChildren(nestedChildren,transaction,context){151var children=this._reconcilerInstantiateChildren(152nestedChildren,transaction,context);153this._renderedChildren=children;154var mountImages=[];155var index=0;156for(var name in children){157if(children.hasOwnProperty(name)){158var child=children[name];159var selfDebugID=0;160if(__DEV__){161selfDebugID=getDebugID(this);162}163var mountImage=ReactReconciler.mountComponent(164child,165transaction,166this,167this._hostContainerInfo,168context,169selfDebugID);170child._mountIndex=index++;171mountImages.push(mountImage);172}173}174if(__DEV__){175setChildrenForInstrumentation.call(this,children);176}177return mountImages;178},179updateTextContent:function updateTextContent(nextContent){180var prevChildren=this._renderedChildren;181ReactChildReconciler.unmountChildren(prevChildren,false);182for(var name in prevChildren){183if(prevChildren.hasOwnProperty(name)){184invariant(false,'updateTextContent called on non-empty component.');185}186}187var updates=[makeTextContent(nextContent)];188processQueue(this,updates);189},190updateMarkup:function updateMarkup(nextMarkup){191var prevChildren=this._renderedChildren;192ReactChildReconciler.unmountChildren(prevChildren,false);193for(var name in prevChildren){194if(prevChildren.hasOwnProperty(name)){195invariant(false,'updateTextContent called on non-empty component.');196}197}198var updates=[makeSetMarkup(nextMarkup)];199processQueue(this,updates);200},201updateChildren:function updateChildren(nextNestedChildrenElements,transaction,context){202this._updateChildren(nextNestedChildrenElements,transaction,context);203},204_updateChildren:function _updateChildren(nextNestedChildrenElements,transaction,context){205var prevChildren=this._renderedChildren;206var removedNodes={};207var mountImages=[];208var nextChildren=this._reconcilerUpdateChildren(209prevChildren,210nextNestedChildrenElements,211mountImages,212removedNodes,213transaction,214context);215if(!nextChildren&&!prevChildren){216return;217}218var updates=null;219var name;220var nextIndex=0;221var lastIndex=0;222var nextMountIndex=0;223var lastPlacedNode=null;224for(name in nextChildren){225if(!nextChildren.hasOwnProperty(name)){226continue;227}228var prevChild=prevChildren&&prevChildren[name];229var nextChild=nextChildren[name];230if(prevChild===nextChild){231updates=enqueue(232updates,233this.moveChild(prevChild,lastPlacedNode,nextIndex,lastIndex));234lastIndex=Math.max(prevChild._mountIndex,lastIndex);235prevChild._mountIndex=nextIndex;236}else{237if(prevChild){238lastIndex=Math.max(prevChild._mountIndex,lastIndex);239}240updates=enqueue(241updates,242this._mountChildAtIndex(243nextChild,244mountImages[nextMountIndex],245lastPlacedNode,246nextIndex,247transaction,248context));249nextMountIndex++;250}251nextIndex++;252lastPlacedNode=ReactReconciler.getHostNode(nextChild);253}254for(name in removedNodes){255if(removedNodes.hasOwnProperty(name)){256updates=enqueue(257updates,258this._unmountChild(prevChildren[name],removedNodes[name]));259}260}261if(updates){262processQueue(this,updates);263}264this._renderedChildren=nextChildren;265if(__DEV__){266setChildrenForInstrumentation.call(this,nextChildren);267}268},269unmountChildren:function unmountChildren(safely){270var renderedChildren=this._renderedChildren;271ReactChildReconciler.unmountChildren(renderedChildren,safely);272this._renderedChildren=null;273},274moveChild:function moveChild(child,afterNode,toIndex,lastIndex){275if(child._mountIndex<lastIndex){276return makeMove(child,afterNode,toIndex);277}278},279createChild:function createChild(child,afterNode,mountImage){280return makeInsertMarkup(mountImage,afterNode,child._mountIndex);281},282removeChild:function removeChild(child,node){283return makeRemove(child,node);284},285_mountChildAtIndex:function _mountChildAtIndex(286child,287mountImage,288afterNode,289index,290transaction,291context){292child._mountIndex=index;293return this.createChild(child,afterNode,mountImage);294},...Diff_Source.js
Source:Diff_Source.js  
...23  }24};25/**************element diff*********/26// 对åä¸å±çº§çèç¹ï¼æä¾3ç§èç¹æä½ï¼åå«ä¸ºINSERT_MARKUPï¼MOVE_EXISTINGï¼REMOVE_NODE27function makeInsertMarkup(markup, afterNode, toIndex) {28  return {29    type: ReactMultiChildUpdateTypes.INSERT_MARKUP,30    content: markup,31    fromIndex: null,32    fromNode: null,33    toIndex: toIndex,34    afterNode: afterNode,35  };36}37function makeMove(child, afterNode, toIndex) {38  return {39    type: ReactMultiChildUpdateTypes.MOVE_EXISTING,40    content: null,41    fromIndex: child._mountIndex,42    fromNode: ReactReconciler.getNativeNode(child),43    toIndex: toIndex,44    afterNode: afterNode,45  };46}47function makeRemove(child, node) {48  return {49    type: ReactMultiChildUpdateTypes.REMOVE_NODE,50    content: null,51    fromIndex: child._mountIndex,52    fromNode: node,53    toIndex: null,54    afterNode: null,55  };56}57/**************diffç®æ³çæ ¸å¿*********/58const diff = {59  _updateChildren: function(nextNestedChildrenElements, transaction, context) {60    var prevChildren = this._renderedChildren;61    var removedNodes = {};62    var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements,63      removedNodes, transaction, context);64    if (!nextChildren && !prevChildren) {65      return;66    }67    var updates = null;68    var name;69    var lastIndex = 0;70    var nextIndex = 0;71    var lastPlacedNode = null;72    //éåæ°çèç¹éå73    for (name in nextChildren) {74      if (!nextChildren.hasOwnProperty(name)) {75        continue;76      }77      var prevChild = prevChildren && prevChildren[name];78      var nextChild = nextChildren[name];79      if (prevChild === nextChild) {80        updates = enqueue(81          updates,82          this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex)83        );84        lastIndex = Math.max(prevChild._mountIndex, lastIndex);85        prevChild._mountIndex = nextIndex;86      } else {87        if (prevChild) {88          lastIndex = Math.max(prevChild._mountIndex, lastIndex);89        }90        updates = enqueue(91          updates,92          this._mountChildAtIndex(nextChild, lastPlacedNode, nextIndex, transaction, context)93        );94      }95      nextIndex++;96      lastPlacedNode = ReactReconciler.getNativeNode(nextChild);97    }98    for (name in removedNodes) {99      if (removedNodes.hasOwnProperty(name)) {100        updates = enqueue(101          updates,102          this._unmountChild(prevChildren[name], removedNodes[name])103        );104      }105    }106    if (updates) {107      processQueue(this, updates);108    }109    this._renderedChildren = nextChildren;110  },111  moveChild: function(child, afterNode, toIndex, lastIndex) {112    if (child._mountIndex < lastIndex) {113      return makeMove(child, afterNode, toIndex);114    }115  },116  createChild: function(child, afterNode, mountImage) {117    return makeInsertMarkup(mountImage, afterNode, child._mountIndex);118  },119  removeChild: function(child, node) {120    return makeRemove(child, node);121  },122  _unmountChild: function(child, node) {123    var update = this.removeChild(child, node);124    child._mountIndex = null;125    return update;126  },127  _mountChildAtIndex: function(child, afterNode, index, transaction, context) {128    var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._nativeContainerInfo,129      context);130    child._mountIndex = index;131    return this.createChild(child, afterNode, mountImage);...ReactMultiChild.js
Source:ReactMultiChild.js  
...31}32function processQueue(inst, updateQueue) {33  ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);34}35function makeInsertMarkup(markup, afterNode, toIndex) {36  return {37    type: 'INSERT_MARKUP',38    content: markup,39    fromIndex: null,40    fromNode: null,41    toIndex,42    afterNode,43  };44}45var ReactMultiChild = {46  Mixin: {47    mountChildren(48      nestedChildren,49      transaction,50      context,51    ) {52      var children = this._reconcilerInstantiateChildren(nestedChildren);53      this._renderedChildren = children;54      var mountImages = [];55      var index = 0;56      for (var name in children) {57        if (children.hasOwnProperty(name)) {58          var child = children[name];59          var mountImage = ReactReconciler.mountComponent(60            child,61            transaction,62            this,63            this._hostContainerInfo,64            context,65          );66          mountImages.push(mountImage);67        }68      }69      return mountImages;70    },71    updateChildren(72      nextNestedChildrenElements,73      transaction,74      context75    ) {76      this._updateChildren(nextNestedChildrenElements, transaction, context);77    },78    unmountChildren(safely) {79      var _renderedChildren = this._renderedChildren;80      ReactChildReconciler.unmountChildren(_renderedChildren, safely);81      this._renderedChildren = null;82    },83    moveChild(84      child,85      afterNode,86      toIndex,87      lastIndex,88    ) {89      if (child._mountIndex < lastIndex) {90        return makeMove(child, afterNode, toIndex);91      }92    },93    removeChild(child, node) {94      return makeRemove(child, node);95    },96    _updateChildren(97      nextNestedChildrenElements,98      transaction,99      context,100    ) {101      var prevChildren = this._renderedChildren;102      var removedNodes = {};103      var mountImages = [];104      var nextChildren = this._reconcilerUpdateChildren(105        prevChildren,106        nextNestedChildrenElements,107        mountImages,108        removedNodes,109        transaction,110        context,111      );112      if (!nextChildren && !prevChildren) {113        return;114      }115      var updates = null;116      var name;117      var nextIndex = 0;118      var lastIndex = 0;119      var nextMountIndex = 0;120      var lastPlacedNode = null;121      for (name in nextChildren) {122        if (!nextChildren.hasOwnProperty(name)) {123          continue;124        }125        var prevChild = prevChildren && prevChildren[name];126        var nextChild = nextChildren[name];127        if (prevChild === nextChild) {128          updates = enqueue(129            updates,130            this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex)131          );132          lastIndex = Math.max(prevChild._mountIndex, lastIndex);133          prevChild._mountIndex = nextIndex;134        } else {135          if (prevChild) {136            lastIndex = Math.max(prevChild._mountIndex, lastIndex);137          }138          updates = enqueue(139            updates,140            this._mountChildAtIndex(141              nextChild,142              mountImages[nextMountIndex],143              lastPlacedNode,144              nextIndex,145              transaction,146              context147            )148          );149          nextMountIndex++;150        }151        nextIndex++;152        lastPlacedNode = ReactReconciler.getHostNode(nextChild);153      }154      for (name in removedNodes) {155        if (removedNodes.hasOwnProperty(name)) {156          updates = enqueue(157            updates,158            this._unmountChild(prevChildren[name], removedNodes[name])159          );160        }161      }162      if (updates) {163        processQueue(this, updates);164      }165      this._renderedChildren = nextChildren;166    },167    _reconcilerUpdateChildren(168      prevChildren,169      nextNestedChildrenElements,170      mountImages,171      removedNodes,172      transaction,173      context174    ) {175      var nextChildren;176      nextChildren = flattenChildren(nextNestedChildrenElements);177      ReactChildReconciler.updateChildren(178        prevChildren,179        nextChildren,180        mountImages,181        removedNodes,182        transaction,183        this,184        this._hostContainerInfo,185        context,186      );187      return nextChildren;188    },189    _reconcilerInstantiateChildren(nestedChildren) {190      return ReactChildReconciler.instantiateChildren(nestedChildren);191    },192    _mountChildAtIndex(193      child,194      mountImage,195      afterNode,196      index,197      transaction,198      context199    ) {200      child._mountIndex = index;201      return this.createChild(child, afterNode, mountImage);202    },203    createChild(child, afterNode, mountImage) {204      return makeInsertMarkup(mountImage, afterNode, child._mountIndex);205    },206    _unmountChild(child, node) {207      var update = this.removeChild(child, node);208      child._mountIndex = null;209      return update;210    }211  }212};...Using AI Code Generation
1const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');2const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');3const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');4const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');5const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');6const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');7const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');8const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');9const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');10const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');11const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');12const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');13const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');14const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');15const {makeInsertMarkup} = require('playwright/lib/internal/inspectorInstrumentation');16const {Using AI Code Generation
1const { makeInsertMarkup } = require('@playwright/test/lib/server/injected/injectedScript');2const { makeInsertMarkup } = require('@playwright/test/lib/server/injected/injectedScript');3const markup = makeInsertMarkup('some text', 'some css');4console.log(markup);5const { makeInsertMarkup } = require('@playwright/test/lib/server/injected/injectedScript');6const markup = makeInsertMarkup('some text', 'some css');7console.log(markup);8const { makeInsertMarkup } = require('@playwright/test/lib/server/injected/injectedScript');9const markup = makeInsertMarkup('some text', 'some css');10console.log(markup);11const { makeInsertMarkup } = require('@playwright/test/lib/server/injected/injectedScript');12const markup = makeInsertMarkup('some text', 'some css');13console.log(markup);14const { makeInsertMarkup } = require('@playwright/test/lib/server/injected/injectedScript');15const markup = makeInsertMarkup('some text', 'some css');16console.log(markup);17const { makeInsertMarkup } = require('@playwright/test/lib/server/injected/injectedScript');18const markup = makeInsertMarkup('some text', 'some css');19console.log(markup);20const { makeInsertMarkup } = require('@playwright/test/lib/server/injected/injectedScript');21const markup = makeInsertMarkup('some text', 'some cssUsing AI Code Generation
1const { makeInsertMarkup } = require('playwright/lib/server/dom.js');2const { parseHTML } = require('playwright/lib/server/common/html.js');3const { serializeNode } = require('playwright/lib/server/common/serializers.js');4const { createJSHandle } = require('playwright/lib/server/common/jshandle.js');5const { ElementHandle } = require('playwright/lib/server/dom.js');6const { JSHandle } = require('playwright/lib/server/common/jshandle.js');7const { makeInsertMarkup } = require('playwright/lib/server/dom.js');8const { parseHTML } = require('playwright/lib/server/common/html.js');9const { serializeNode } = require('playwright/lib/server/common/serializers.js');10const { createJSHandle } = require('playwright/lib/server/common/jshandle.js');11const { ElementHandle } = require('playwright/lib/server/dom.js');12const { JSHandle } = require('playwright/lib/server/common/jshandle.js');13const { makeInsertMarkup } = require('playwright/lib/server/dom.js');14const { parseHTML } = require('playwright/lib/server/common/html.js');15const { serializeNode } = require('playwright/lib/server/common/serializers.js');16const { createJSHandle } = require('playwright/lib/server/common/jshandle.js');17const { ElementHandle } = require('playwright/lib/server/dom.js');18const { JSHandle } = require('playwright/lib/server/common/jshandle.js');19const { makeInsertMarkup } = require('playwright/lib/server/dom.js');20const { parseHTML } = require('playwright/lib/server/common/html.js');21const { serializeNode } = require('playwright/lib/server/common/serializers.js');22const { createJSHandle } = require('playwright/lib/server/common/jshandle.js');23const { ElementHandle } = require('playwright/lib/server/dom.js');24const { JSHandle } = require('playwright/lib/server/common/jshandle.js');25const { makeInsertMarkup } = require('playwright/lib/server/dom.js');26const { parseHTML } = require('playwright/lib/server/common/html.js');Using AI Code Generation
1import { makeInsertMarkup } from 'playwright-core/lib/server/supplements/recorder/recorderSupplement';2const insertMarkup = makeInsertMarkup();3await page.evaluate(insertMarkup, 'button', 'click', 'span', 'innerText', 'Hello World!');4await page.evaluate(insertMarkup, 'button', 'click', 'span', 'innerText', 'Hello World!', {waitFor: 'visible'});5await page.evaluate(insertMarkup, 'button', 'click', 'span', 'innerText', 'Hello World!', {waitFor: 'visible', timeout: 5000});6await page.evaluate(insertMarkup, 'button', 'click', 'span', 'innerText', 'Hello World!', {waitFor: 'visible', timeout: 5000}, {waitFor: 'visible', timeout: 5000});7await page.evaluate(insertMarkup, 'button', 'click', 'span', 'innerText', 'Hello World!', {waitFor: 'visible', timeout: 5000}, {waitFor: 'visible', timeout: 5000}, {waitFor: 'visible', timeout: 5000});8await page.evaluate(insertMarkup, 'button', 'click', 'span', 'innerText', 'Hello World!', {waitFor: 'visible', timeout: 5000}, {waitFor: 'visible', timeout: 5000}, {waitFor: 'visible', timeout: 5000}, {waitFor: 'visible', timeout: 5000});Using AI Code Generation
1const { makeInsertMarkup } = require('playwright/lib/internal/injected/injectedScript');2makeInsertMarkup(document, 'body', '<div id="test">Hello World</div>');3const testDiv = await page.$('#test');4expect(await testDiv.innerText()).toBe('Hello World');5const { chromium } = require('playwright');6(async () => {7  const browser = await chromium.launch();8  const context = await browser.newContext();9  const page = await context.newPage();10  await page.addInitScript({11    content: 'document.body.innerHTML = "<div id=\'test\'>Hello World</div>";'12  });13  const testDiv = await page.$('#test');14  expect(await testDiv.innerText()).toBe('Hello World');15  await browser.close();16})();17import React from 'react';18import { render } from '@testing-library/react';19import { chromium } from 'playwright';20import App from './App';21describe('App', () => {22  test('renders markup', async () => {23    const browser = await chromium.launch();24    const context = await browser.newContext();25    const page = await context.newPage();26    await page.addInitScript({Using AI Code Generation
1const playwright = require('playwright');2const { makeInsertMarkup } = require('playwright/internal/inspectorInstrumentation');3(async () => {4  const browser = await playwright.chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  const table = await page.$('#customers');8  const row = await makeInsertMarkup('tr', [{ 'class': 'addedrow' }], [9    { 'td': 'New Row' },10    { 'td': 'New Row' },11    { 'td': 'New Row' }12  ]);13  await table.evaluate((table, row) => {14    table.insertAdjacentHTML('beforeend', row);15  }, row);16  await page.screenshot({ path: 'example.png' });17  await browser.close();18})();LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
