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 css
Using 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})();
Jest + Playwright - Test callbacks of event-based DOM library
firefox browser does not start in playwright
Is it possible to get the selector from a locator object in playwright?
How to run a list of test suites in a single file concurrently in jest?
Running Playwright in Azure Function
firefox browser does not start in playwright
This question is quite close to a "need more focus" question. But let's try to give it some focus:
Does Playwright has access to the cPicker object on the page? Does it has access to the window object?
Yes, you can access both cPicker and the window object inside an evaluate call.
Should I trigger the events from the HTML file itself, and in the callbacks, print in the DOM the result, in some dummy-element, and then infer from that dummy element text that the callbacks fired?
Exactly, or you can assign values to a javascript variable:
const cPicker = new ColorPicker({
onClickOutside(e){
},
onInput(color){
window['color'] = color;
},
onChange(color){
window['result'] = color;
}
})
And then
it('Should call all callbacks with correct arguments', async() => {
await page.goto(`http://localhost:5000/tests/visual/basic.html`, {waitUntil:'load'})
// Wait until the next frame
await page.evaluate(() => new Promise(requestAnimationFrame))
// Act
// Assert
const result = await page.evaluate(() => window['color']);
// Check the value
})
Check out the latest blogs from LambdaTest on this topic:
Native apps are developed specifically for one platform. Hence they are fast and deliver superior performance. They can be downloaded from various app stores and are not accessible through browsers.
One of the essential parts when performing automated UI testing, whether using Selenium or another framework, is identifying the correct web elements the tests will interact with. However, if the web elements are not located correctly, you might get NoSuchElementException in Selenium. This would cause a false negative result because we won’t get to the actual functionality check. Instead, our test will fail simply because it failed to interact with the correct element.
Smartphones have changed the way humans interact with technology. Be it travel, fitness, lifestyle, video games, or even services, it’s all just a few touches away (quite literally so). We only need to look at the growing throngs of smartphone or tablet users vs. desktop users to grasp this reality.
As part of one of my consulting efforts, I worked with a mid-sized company that was looking to move toward a more agile manner of developing software. As with any shift in work style, there is some bewilderment and, for some, considerable anxiety. People are being challenged to leave their comfort zones and embrace a continuously changing, dynamic working environment. And, dare I say it, testing may be the most ‘disturbed’ of the software roles in agile development.
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!!