Best JavaScript code snippet using playwright-internal
c4d79fd1147e4253241bf36ee99d06de7e27dfReactFiberClassComponent.js
Source:c4d79fd1147e4253241bf36ee99d06de7e27dfReactFiberClassComponent.js
...70 }71 var instance = workInProgress.stateNode;72 if (typeof instance.shouldComponentUpdate === 'function') {73 if (__DEV__) {74 startPhaseTimer(workInProgress, 'shouldComponentUpdate');75 }76 var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, newContext);77 if (__DEV__) {78 stopPhaseTimer();79 }80 if (__DEV__) {81 warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(workInProgress) || 'Unknown');82 }83 return shouldUpdate;84 }85 var type = workInProgress.type;86 if (type.prototype && type.prototype.isPureReactComponent) {87 return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);88 }89 return true;90 }91 function checkClassInstance(workInProgress) {92 var instance = workInProgress.stateNode;93 if (__DEV__) {94 var name = getComponentName(workInProgress);95 var renderPresent = instance.render;96 warning(renderPresent, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);97 var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;98 warning(noGetInitialStateOnES6, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);99 var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;100 warning(noGetDefaultPropsOnES6, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);101 var noInstancePropTypes = !instance.propTypes;102 warning(noInstancePropTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);103 var noInstanceContextTypes = !instance.contextTypes;104 warning(noInstanceContextTypes, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);105 var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';106 warning(noComponentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);107 var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';108 warning(noComponentDidUnmount, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);109 var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';110 warning(noComponentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);111 var hasMutatedProps = instance.props !== workInProgress.pendingProps;112 warning(instance.props === undefined || !hasMutatedProps, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", name, name);113 }114 var state = instance.state;115 if (state && (typeof state !== 'object' || isArray(state))) {116 invariant(false, '%s.state: must be set to an object or null', getComponentName(workInProgress));117 }118 if (typeof instance.getChildContext === 'function') {119 invariant(typeof workInProgress.type.childContextTypes === 'object', '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', getComponentName(workInProgress));120 }121 }122 function resetInputPointers(workInProgress, instance) {123 instance.props = workInProgress.memoizedProps;124 instance.state = workInProgress.memoizedState;125 }126 function adoptClassInstance(workInProgress, instance) {127 instance.updater = updater;128 workInProgress.stateNode = instance;129 ReactInstanceMap.set(instance, workInProgress);130 }131 function constructClassInstance(workInProgress) {132 var ctor = workInProgress.type;133 var props = workInProgress.pendingProps;134 var unmaskedContext = getUnmaskedContext(workInProgress);135 var needsContext = isContextConsumer(workInProgress);136 var context = needsContext ? getMaskedContext(workInProgress, unmaskedContext) : emptyObject;137 var instance = new ctor(props, context);138 adoptClassInstance(workInProgress, instance);139 checkClassInstance(workInProgress);140 if (needsContext) {141 cacheContext(workInProgress, unmaskedContext, context);142 }143 return instance;144 }145 function mountClassInstance(workInProgress, priorityLevel) {146 var instance = workInProgress.stateNode;147 var state = instance.state || null;148 var props = workInProgress.pendingProps;149 invariant(props, 'There must be pending props for an initial mount. This error is ' + 'likely caused by a bug in React. Please file an issue.');150 var unmaskedContext = getUnmaskedContext(workInProgress);151 instance.props = props;152 instance.state = state;153 instance.refs = emptyObject;154 instance.context = getMaskedContext(workInProgress, unmaskedContext);155 if (typeof instance.componentWillMount === 'function') {156 if (__DEV__) {157 startPhaseTimer(workInProgress, 'componentWillMount');158 }159 instance.componentWillMount();160 if (__DEV__) {161 stopPhaseTimer();162 }163 var updateQueue = workInProgress.updateQueue;164 if (updateQueue !== null) {165 instance.state = beginUpdateQueue(workInProgress, updateQueue, instance, state, props, priorityLevel);166 }167 }168 if (typeof instance.componentDidMount === 'function') {169 workInProgress.effectTag |= Update;170 }171 }172 function resumeMountClassInstance(workInProgress, priorityLevel) {173 var instance = workInProgress.stateNode;174 resetInputPointers(workInProgress, instance);175 var newState = workInProgress.memoizedState;176 var newProps = workInProgress.pendingProps;177 if (!newProps) {178 newProps = workInProgress.memoizedProps;179 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');180 }181 var newUnmaskedContext = getUnmaskedContext(workInProgress);182 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);183 if (!checkShouldComponentUpdate(workInProgress, workInProgress.memoizedProps, newProps, workInProgress.memoizedState, newState, newContext)) {184 instance.props = newProps;185 instance.state = newState;186 instance.context = newContext;187 return false;188 }189 var newInstance = constructClassInstance(workInProgress);190 newInstance.props = newProps;191 newInstance.state = newState = newInstance.state || null;192 newInstance.context = newContext;193 if (typeof newInstance.componentWillMount === 'function') {194 if (__DEV__) {195 startPhaseTimer(workInProgress, 'componentWillMount');196 }197 newInstance.componentWillMount();198 if (__DEV__) {199 stopPhaseTimer();200 }201 }202 var newUpdateQueue = workInProgress.updateQueue;203 if (newUpdateQueue !== null) {204 newInstance.state = beginUpdateQueue(workInProgress, newUpdateQueue, newInstance, newState, newProps, priorityLevel);205 }206 if (typeof instance.componentDidMount === 'function') {207 workInProgress.effectTag |= Update;208 }209 return true;210 }211 function updateClassInstance(current, workInProgress, priorityLevel) {212 var instance = workInProgress.stateNode;213 resetInputPointers(workInProgress, instance);214 var oldProps = workInProgress.memoizedProps;215 var newProps = workInProgress.pendingProps;216 if (!newProps) {217 newProps = oldProps;218 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');219 }220 var oldContext = instance.context;221 var newUnmaskedContext = getUnmaskedContext(workInProgress);222 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);223 if (oldProps !== newProps || oldContext !== newContext) {224 if (typeof instance.componentWillReceiveProps === 'function') {225 if (__DEV__) {226 startPhaseTimer(workInProgress, 'componentWillReceiveProps');227 }228 instance.componentWillReceiveProps(newProps, newContext);229 if (__DEV__) {230 stopPhaseTimer();231 }232 if (instance.state !== workInProgress.memoizedState) {233 if (__DEV__) {234 warning(false, '%s.componentWillReceiveProps(): Assigning directly to ' + "this.state is deprecated (except inside a component's " + 'constructor). Use setState instead.', getComponentName(workInProgress));235 }236 updater.enqueueReplaceState(instance, instance.state, null);237 }238 }239 }240 var updateQueue = workInProgress.updateQueue;241 var oldState = workInProgress.memoizedState;242 var newState = void 0;243 if (updateQueue !== null) {244 newState = beginUpdateQueue(workInProgress, updateQueue, instance, oldState, newProps, priorityLevel);245 } else {246 newState = oldState;247 }248 if (oldProps === newProps && oldState === newState && !hasContextChanged() && !(updateQueue !== null && updateQueue.hasForceUpdate)) {249 if (typeof instance.componentDidUpdate === 'function') {250 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {251 workInProgress.effectTag |= Update;252 }253 }254 return false;255 }256 var shouldUpdate = checkShouldComponentUpdate(workInProgress, oldProps, newProps, oldState, newState, newContext);257 if (shouldUpdate) {258 if (typeof instance.componentWillUpdate === 'function') {259 if (__DEV__) {260 startPhaseTimer(workInProgress, 'componentWillUpdate');261 }262 instance.componentWillUpdate(newProps, newState, newContext);263 if (__DEV__) {264 stopPhaseTimer();265 }266 }267 if (typeof instance.componentDidUpdate === 'function') {268 workInProgress.effectTag |= Update;269 }270 } else {271 if (typeof instance.componentDidUpdate === 'function') {272 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {273 workInProgress.effectTag |= Update;274 }...
f189e48c57ab153db02a9093b6892b2590ce4dReactFiberClassComponent.js
Source:f189e48c57ab153db02a9093b6892b2590ce4dReactFiberClassComponent.js
...70 }71 var instance = workInProgress.stateNode;72 if (typeof instance.shouldComponentUpdate === 'function') {73 if (__DEV__) {74 startPhaseTimer(workInProgress, 'shouldComponentUpdate');75 }76 var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, newContext);77 if (__DEV__) {78 stopPhaseTimer();79 }80 if (__DEV__) {81 warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(workInProgress) || 'Unknown');82 }83 return shouldUpdate;84 }85 var type = workInProgress.type;86 if (type.prototype && type.prototype.isPureReactComponent) {87 return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);88 }89 return true;90 }91 function checkClassInstance(workInProgress) {92 var instance = workInProgress.stateNode;93 if (__DEV__) {94 var name = getComponentName(workInProgress);95 var renderPresent = instance.render;96 warning(renderPresent, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);97 var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;98 warning(noGetInitialStateOnES6, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);99 var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;100 warning(noGetDefaultPropsOnES6, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);101 var noInstancePropTypes = !instance.propTypes;102 warning(noInstancePropTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);103 var noInstanceContextTypes = !instance.contextTypes;104 warning(noInstanceContextTypes, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);105 var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';106 warning(noComponentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);107 var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';108 warning(noComponentDidUnmount, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);109 var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';110 warning(noComponentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);111 var hasMutatedProps = instance.props !== workInProgress.pendingProps;112 warning(instance.props === undefined || !hasMutatedProps, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", name, name);113 }114 var state = instance.state;115 if (state && (typeof state !== 'object' || isArray(state))) {116 invariant(false, '%s.state: must be set to an object or null', getComponentName(workInProgress));117 }118 if (typeof instance.getChildContext === 'function') {119 invariant(typeof workInProgress.type.childContextTypes === 'object', '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', getComponentName(workInProgress));120 }121 }122 function resetInputPointers(workInProgress, instance) {123 instance.props = workInProgress.memoizedProps;124 instance.state = workInProgress.memoizedState;125 }126 function adoptClassInstance(workInProgress, instance) {127 instance.updater = updater;128 workInProgress.stateNode = instance;129 ReactInstanceMap.set(instance, workInProgress);130 }131 function constructClassInstance(workInProgress) {132 var ctor = workInProgress.type;133 var props = workInProgress.pendingProps;134 var unmaskedContext = getUnmaskedContext(workInProgress);135 var needsContext = isContextConsumer(workInProgress);136 var context = needsContext ? getMaskedContext(workInProgress, unmaskedContext) : emptyObject;137 var instance = new ctor(props, context);138 adoptClassInstance(workInProgress, instance);139 checkClassInstance(workInProgress);140 if (needsContext) {141 cacheContext(workInProgress, unmaskedContext, context);142 }143 return instance;144 }145 function mountClassInstance(workInProgress, priorityLevel) {146 var instance = workInProgress.stateNode;147 var state = instance.state || null;148 var props = workInProgress.pendingProps;149 invariant(props, 'There must be pending props for an initial mount. This error is ' + 'likely caused by a bug in React. Please file an issue.');150 var unmaskedContext = getUnmaskedContext(workInProgress);151 instance.props = props;152 instance.state = state;153 instance.refs = emptyObject;154 instance.context = getMaskedContext(workInProgress, unmaskedContext);155 if (typeof instance.componentWillMount === 'function') {156 if (__DEV__) {157 startPhaseTimer(workInProgress, 'componentWillMount');158 }159 instance.componentWillMount();160 if (__DEV__) {161 stopPhaseTimer();162 }163 var updateQueue = workInProgress.updateQueue;164 if (updateQueue !== null) {165 instance.state = beginUpdateQueue(workInProgress, updateQueue, instance, state, props, priorityLevel);166 }167 }168 if (typeof instance.componentDidMount === 'function') {169 workInProgress.effectTag |= Update;170 }171 }172 function resumeMountClassInstance(workInProgress, priorityLevel) {173 var instance = workInProgress.stateNode;174 resetInputPointers(workInProgress, instance);175 var newState = workInProgress.memoizedState;176 var newProps = workInProgress.pendingProps;177 if (!newProps) {178 newProps = workInProgress.memoizedProps;179 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');180 }181 var newUnmaskedContext = getUnmaskedContext(workInProgress);182 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);183 if (!checkShouldComponentUpdate(workInProgress, workInProgress.memoizedProps, newProps, workInProgress.memoizedState, newState, newContext)) {184 instance.props = newProps;185 instance.state = newState;186 instance.context = newContext;187 return false;188 }189 var newInstance = constructClassInstance(workInProgress);190 newInstance.props = newProps;191 newInstance.state = newState = newInstance.state || null;192 newInstance.context = newContext;193 if (typeof newInstance.componentWillMount === 'function') {194 if (__DEV__) {195 startPhaseTimer(workInProgress, 'componentWillMount');196 }197 newInstance.componentWillMount();198 if (__DEV__) {199 stopPhaseTimer();200 }201 }202 var newUpdateQueue = workInProgress.updateQueue;203 if (newUpdateQueue !== null) {204 newInstance.state = beginUpdateQueue(workInProgress, newUpdateQueue, newInstance, newState, newProps, priorityLevel);205 }206 if (typeof instance.componentDidMount === 'function') {207 workInProgress.effectTag |= Update;208 }209 return true;210 }211 function updateClassInstance(current, workInProgress, priorityLevel) {212 var instance = workInProgress.stateNode;213 resetInputPointers(workInProgress, instance);214 var oldProps = workInProgress.memoizedProps;215 var newProps = workInProgress.pendingProps;216 if (!newProps) {217 newProps = oldProps;218 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');219 }220 var oldContext = instance.context;221 var newUnmaskedContext = getUnmaskedContext(workInProgress);222 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);223 if (oldProps !== newProps || oldContext !== newContext) {224 if (typeof instance.componentWillReceiveProps === 'function') {225 if (__DEV__) {226 startPhaseTimer(workInProgress, 'componentWillReceiveProps');227 }228 instance.componentWillReceiveProps(newProps, newContext);229 if (__DEV__) {230 stopPhaseTimer();231 }232 if (instance.state !== workInProgress.memoizedState) {233 if (__DEV__) {234 warning(false, '%s.componentWillReceiveProps(): Assigning directly to ' + "this.state is deprecated (except inside a component's " + 'constructor). Use setState instead.', getComponentName(workInProgress));235 }236 updater.enqueueReplaceState(instance, instance.state, null);237 }238 }239 }240 var updateQueue = workInProgress.updateQueue;241 var oldState = workInProgress.memoizedState;242 var newState = void 0;243 if (updateQueue !== null) {244 newState = beginUpdateQueue(workInProgress, updateQueue, instance, oldState, newProps, priorityLevel);245 } else {246 newState = oldState;247 }248 if (oldProps === newProps && oldState === newState && !hasContextChanged() && !(updateQueue !== null && updateQueue.hasForceUpdate)) {249 if (typeof instance.componentDidUpdate === 'function') {250 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {251 workInProgress.effectTag |= Update;252 }253 }254 return false;255 }256 var shouldUpdate = checkShouldComponentUpdate(workInProgress, oldProps, newProps, oldState, newState, newContext);257 if (shouldUpdate) {258 if (typeof instance.componentWillUpdate === 'function') {259 if (__DEV__) {260 startPhaseTimer(workInProgress, 'componentWillUpdate');261 }262 instance.componentWillUpdate(newProps, newState, newContext);263 if (__DEV__) {264 stopPhaseTimer();265 }266 }267 if (typeof instance.componentDidUpdate === 'function') {268 workInProgress.effectTag |= Update;269 }270 } else {271 if (typeof instance.componentDidUpdate === 'function') {272 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {273 workInProgress.effectTag |= Update;274 }...
63dfe97fc56ec59927fe7014929325c1aa846dReactFiberClassComponent.js
Source:63dfe97fc56ec59927fe7014929325c1aa846dReactFiberClassComponent.js
...70 }71 var instance = workInProgress.stateNode;72 if (typeof instance.shouldComponentUpdate === 'function') {73 if (__DEV__) {74 startPhaseTimer(workInProgress, 'shouldComponentUpdate');75 }76 var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, newContext);77 if (__DEV__) {78 stopPhaseTimer();79 }80 if (__DEV__) {81 warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(workInProgress) || 'Unknown');82 }83 return shouldUpdate;84 }85 var type = workInProgress.type;86 if (type.prototype && type.prototype.isPureReactComponent) {87 return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);88 }89 return true;90 }91 function checkClassInstance(workInProgress) {92 var instance = workInProgress.stateNode;93 if (__DEV__) {94 var name = getComponentName(workInProgress);95 var renderPresent = instance.render;96 warning(renderPresent, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);97 var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;98 warning(noGetInitialStateOnES6, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);99 var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;100 warning(noGetDefaultPropsOnES6, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);101 var noInstancePropTypes = !instance.propTypes;102 warning(noInstancePropTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);103 var noInstanceContextTypes = !instance.contextTypes;104 warning(noInstanceContextTypes, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);105 var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';106 warning(noComponentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);107 var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';108 warning(noComponentDidUnmount, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);109 var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';110 warning(noComponentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);111 var hasMutatedProps = instance.props !== workInProgress.pendingProps;112 warning(instance.props === undefined || !hasMutatedProps, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", name, name);113 }114 var state = instance.state;115 if (state && (typeof state !== 'object' || isArray(state))) {116 invariant(false, '%s.state: must be set to an object or null', getComponentName(workInProgress));117 }118 if (typeof instance.getChildContext === 'function') {119 invariant(typeof workInProgress.type.childContextTypes === 'object', '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', getComponentName(workInProgress));120 }121 }122 function resetInputPointers(workInProgress, instance) {123 instance.props = workInProgress.memoizedProps;124 instance.state = workInProgress.memoizedState;125 }126 function adoptClassInstance(workInProgress, instance) {127 instance.updater = updater;128 workInProgress.stateNode = instance;129 ReactInstanceMap.set(instance, workInProgress);130 }131 function constructClassInstance(workInProgress) {132 var ctor = workInProgress.type;133 var props = workInProgress.pendingProps;134 var unmaskedContext = getUnmaskedContext(workInProgress);135 var needsContext = isContextConsumer(workInProgress);136 var context = needsContext ? getMaskedContext(workInProgress, unmaskedContext) : emptyObject;137 var instance = new ctor(props, context);138 adoptClassInstance(workInProgress, instance);139 checkClassInstance(workInProgress);140 if (needsContext) {141 cacheContext(workInProgress, unmaskedContext, context);142 }143 return instance;144 }145 function mountClassInstance(workInProgress, priorityLevel) {146 var instance = workInProgress.stateNode;147 var state = instance.state || null;148 var props = workInProgress.pendingProps;149 invariant(props, 'There must be pending props for an initial mount. This error is ' + 'likely caused by a bug in React. Please file an issue.');150 var unmaskedContext = getUnmaskedContext(workInProgress);151 instance.props = props;152 instance.state = state;153 instance.refs = emptyObject;154 instance.context = getMaskedContext(workInProgress, unmaskedContext);155 if (typeof instance.componentWillMount === 'function') {156 if (__DEV__) {157 startPhaseTimer(workInProgress, 'componentWillMount');158 }159 instance.componentWillMount();160 if (__DEV__) {161 stopPhaseTimer();162 }163 var updateQueue = workInProgress.updateQueue;164 if (updateQueue !== null) {165 instance.state = beginUpdateQueue(workInProgress, updateQueue, instance, state, props, priorityLevel);166 }167 }168 if (typeof instance.componentDidMount === 'function') {169 workInProgress.effectTag |= Update;170 }171 }172 function resumeMountClassInstance(workInProgress, priorityLevel) {173 var instance = workInProgress.stateNode;174 resetInputPointers(workInProgress, instance);175 var newState = workInProgress.memoizedState;176 var newProps = workInProgress.pendingProps;177 if (!newProps) {178 newProps = workInProgress.memoizedProps;179 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');180 }181 var newUnmaskedContext = getUnmaskedContext(workInProgress);182 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);183 if (!checkShouldComponentUpdate(workInProgress, workInProgress.memoizedProps, newProps, workInProgress.memoizedState, newState, newContext)) {184 instance.props = newProps;185 instance.state = newState;186 instance.context = newContext;187 return false;188 }189 var newInstance = constructClassInstance(workInProgress);190 newInstance.props = newProps;191 newInstance.state = newState = newInstance.state || null;192 newInstance.context = newContext;193 if (typeof newInstance.componentWillMount === 'function') {194 if (__DEV__) {195 startPhaseTimer(workInProgress, 'componentWillMount');196 }197 newInstance.componentWillMount();198 if (__DEV__) {199 stopPhaseTimer();200 }201 }202 var newUpdateQueue = workInProgress.updateQueue;203 if (newUpdateQueue !== null) {204 newInstance.state = beginUpdateQueue(workInProgress, newUpdateQueue, newInstance, newState, newProps, priorityLevel);205 }206 if (typeof instance.componentDidMount === 'function') {207 workInProgress.effectTag |= Update;208 }209 return true;210 }211 function updateClassInstance(current, workInProgress, priorityLevel) {212 var instance = workInProgress.stateNode;213 resetInputPointers(workInProgress, instance);214 var oldProps = workInProgress.memoizedProps;215 var newProps = workInProgress.pendingProps;216 if (!newProps) {217 newProps = oldProps;218 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');219 }220 var oldContext = instance.context;221 var newUnmaskedContext = getUnmaskedContext(workInProgress);222 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);223 if (oldProps !== newProps || oldContext !== newContext) {224 if (typeof instance.componentWillReceiveProps === 'function') {225 if (__DEV__) {226 startPhaseTimer(workInProgress, 'componentWillReceiveProps');227 }228 instance.componentWillReceiveProps(newProps, newContext);229 if (__DEV__) {230 stopPhaseTimer();231 }232 if (instance.state !== workInProgress.memoizedState) {233 if (__DEV__) {234 warning(false, '%s.componentWillReceiveProps(): Assigning directly to ' + "this.state is deprecated (except inside a component's " + 'constructor). Use setState instead.', getComponentName(workInProgress));235 }236 updater.enqueueReplaceState(instance, instance.state, null);237 }238 }239 }240 var updateQueue = workInProgress.updateQueue;241 var oldState = workInProgress.memoizedState;242 var newState = void 0;243 if (updateQueue !== null) {244 newState = beginUpdateQueue(workInProgress, updateQueue, instance, oldState, newProps, priorityLevel);245 } else {246 newState = oldState;247 }248 if (oldProps === newProps && oldState === newState && !hasContextChanged() && !(updateQueue !== null && updateQueue.hasForceUpdate)) {249 if (typeof instance.componentDidUpdate === 'function') {250 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {251 workInProgress.effectTag |= Update;252 }253 }254 return false;255 }256 var shouldUpdate = checkShouldComponentUpdate(workInProgress, oldProps, newProps, oldState, newState, newContext);257 if (shouldUpdate) {258 if (typeof instance.componentWillUpdate === 'function') {259 if (__DEV__) {260 startPhaseTimer(workInProgress, 'componentWillUpdate');261 }262 instance.componentWillUpdate(newProps, newState, newContext);263 if (__DEV__) {264 stopPhaseTimer();265 }266 }267 if (typeof instance.componentDidUpdate === 'function') {268 workInProgress.effectTag |= Update;269 }270 } else {271 if (typeof instance.componentDidUpdate === 'function') {272 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {273 workInProgress.effectTag |= Update;274 }...
5189058ca83259b19f61a71152c744cf5554ccReactFiberClassComponent.js
Source:5189058ca83259b19f61a71152c744cf5554ccReactFiberClassComponent.js
...70 }71 var instance = workInProgress.stateNode;72 if (typeof instance.shouldComponentUpdate === 'function') {73 if (__DEV__) {74 startPhaseTimer(workInProgress, 'shouldComponentUpdate');75 }76 var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, newContext);77 if (__DEV__) {78 stopPhaseTimer();79 }80 if (__DEV__) {81 warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(workInProgress) || 'Unknown');82 }83 return shouldUpdate;84 }85 var type = workInProgress.type;86 if (type.prototype && type.prototype.isPureReactComponent) {87 return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);88 }89 return true;90 }91 function checkClassInstance(workInProgress) {92 var instance = workInProgress.stateNode;93 if (__DEV__) {94 var name = getComponentName(workInProgress);95 var renderPresent = instance.render;96 warning(renderPresent, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);97 var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;98 warning(noGetInitialStateOnES6, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);99 var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;100 warning(noGetDefaultPropsOnES6, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);101 var noInstancePropTypes = !instance.propTypes;102 warning(noInstancePropTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);103 var noInstanceContextTypes = !instance.contextTypes;104 warning(noInstanceContextTypes, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);105 var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';106 warning(noComponentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);107 var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';108 warning(noComponentDidUnmount, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);109 var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';110 warning(noComponentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);111 var hasMutatedProps = instance.props !== workInProgress.pendingProps;112 warning(instance.props === undefined || !hasMutatedProps, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", name, name);113 }114 var state = instance.state;115 if (state && (typeof state !== 'object' || isArray(state))) {116 invariant(false, '%s.state: must be set to an object or null', getComponentName(workInProgress));117 }118 if (typeof instance.getChildContext === 'function') {119 invariant(typeof workInProgress.type.childContextTypes === 'object', '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', getComponentName(workInProgress));120 }121 }122 function resetInputPointers(workInProgress, instance) {123 instance.props = workInProgress.memoizedProps;124 instance.state = workInProgress.memoizedState;125 }126 function adoptClassInstance(workInProgress, instance) {127 instance.updater = updater;128 workInProgress.stateNode = instance;129 ReactInstanceMap.set(instance, workInProgress);130 }131 function constructClassInstance(workInProgress) {132 var ctor = workInProgress.type;133 var props = workInProgress.pendingProps;134 var unmaskedContext = getUnmaskedContext(workInProgress);135 var needsContext = isContextConsumer(workInProgress);136 var context = needsContext ? getMaskedContext(workInProgress, unmaskedContext) : emptyObject;137 var instance = new ctor(props, context);138 adoptClassInstance(workInProgress, instance);139 checkClassInstance(workInProgress);140 if (needsContext) {141 cacheContext(workInProgress, unmaskedContext, context);142 }143 return instance;144 }145 function mountClassInstance(workInProgress, priorityLevel) {146 var instance = workInProgress.stateNode;147 var state = instance.state || null;148 var props = workInProgress.pendingProps;149 invariant(props, 'There must be pending props for an initial mount. This error is ' + 'likely caused by a bug in React. Please file an issue.');150 var unmaskedContext = getUnmaskedContext(workInProgress);151 instance.props = props;152 instance.state = state;153 instance.refs = emptyObject;154 instance.context = getMaskedContext(workInProgress, unmaskedContext);155 if (typeof instance.componentWillMount === 'function') {156 if (__DEV__) {157 startPhaseTimer(workInProgress, 'componentWillMount');158 }159 instance.componentWillMount();160 if (__DEV__) {161 stopPhaseTimer();162 }163 var updateQueue = workInProgress.updateQueue;164 if (updateQueue !== null) {165 instance.state = beginUpdateQueue(workInProgress, updateQueue, instance, state, props, priorityLevel);166 }167 }168 if (typeof instance.componentDidMount === 'function') {169 workInProgress.effectTag |= Update;170 }171 }172 function resumeMountClassInstance(workInProgress, priorityLevel) {173 var instance = workInProgress.stateNode;174 resetInputPointers(workInProgress, instance);175 var newState = workInProgress.memoizedState;176 var newProps = workInProgress.pendingProps;177 if (!newProps) {178 newProps = workInProgress.memoizedProps;179 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');180 }181 var newUnmaskedContext = getUnmaskedContext(workInProgress);182 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);183 if (!checkShouldComponentUpdate(workInProgress, workInProgress.memoizedProps, newProps, workInProgress.memoizedState, newState, newContext)) {184 instance.props = newProps;185 instance.state = newState;186 instance.context = newContext;187 return false;188 }189 var newInstance = constructClassInstance(workInProgress);190 newInstance.props = newProps;191 newInstance.state = newState = newInstance.state || null;192 newInstance.context = newContext;193 if (typeof newInstance.componentWillMount === 'function') {194 if (__DEV__) {195 startPhaseTimer(workInProgress, 'componentWillMount');196 }197 newInstance.componentWillMount();198 if (__DEV__) {199 stopPhaseTimer();200 }201 }202 var newUpdateQueue = workInProgress.updateQueue;203 if (newUpdateQueue !== null) {204 newInstance.state = beginUpdateQueue(workInProgress, newUpdateQueue, newInstance, newState, newProps, priorityLevel);205 }206 if (typeof instance.componentDidMount === 'function') {207 workInProgress.effectTag |= Update;208 }209 return true;210 }211 function updateClassInstance(current, workInProgress, priorityLevel) {212 var instance = workInProgress.stateNode;213 resetInputPointers(workInProgress, instance);214 var oldProps = workInProgress.memoizedProps;215 var newProps = workInProgress.pendingProps;216 if (!newProps) {217 newProps = oldProps;218 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');219 }220 var oldContext = instance.context;221 var newUnmaskedContext = getUnmaskedContext(workInProgress);222 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);223 if (oldProps !== newProps || oldContext !== newContext) {224 if (typeof instance.componentWillReceiveProps === 'function') {225 if (__DEV__) {226 startPhaseTimer(workInProgress, 'componentWillReceiveProps');227 }228 instance.componentWillReceiveProps(newProps, newContext);229 if (__DEV__) {230 stopPhaseTimer();231 }232 if (instance.state !== workInProgress.memoizedState) {233 if (__DEV__) {234 warning(false, '%s.componentWillReceiveProps(): Assigning directly to ' + "this.state is deprecated (except inside a component's " + 'constructor). Use setState instead.', getComponentName(workInProgress));235 }236 updater.enqueueReplaceState(instance, instance.state, null);237 }238 }239 }240 var updateQueue = workInProgress.updateQueue;241 var oldState = workInProgress.memoizedState;242 var newState = void 0;243 if (updateQueue !== null) {244 newState = beginUpdateQueue(workInProgress, updateQueue, instance, oldState, newProps, priorityLevel);245 } else {246 newState = oldState;247 }248 if (oldProps === newProps && oldState === newState && !hasContextChanged() && !(updateQueue !== null && updateQueue.hasForceUpdate)) {249 if (typeof instance.componentDidUpdate === 'function') {250 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {251 workInProgress.effectTag |= Update;252 }253 }254 return false;255 }256 var shouldUpdate = checkShouldComponentUpdate(workInProgress, oldProps, newProps, oldState, newState, newContext);257 if (shouldUpdate) {258 if (typeof instance.componentWillUpdate === 'function') {259 if (__DEV__) {260 startPhaseTimer(workInProgress, 'componentWillUpdate');261 }262 instance.componentWillUpdate(newProps, newState, newContext);263 if (__DEV__) {264 stopPhaseTimer();265 }266 }267 if (typeof instance.componentDidUpdate === 'function') {268 workInProgress.effectTag |= Update;269 }270 } else {271 if (typeof instance.componentDidUpdate === 'function') {272 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {273 workInProgress.effectTag |= Update;274 }...
e5881c9fce00eba262a698b097b520392b5a8eReactFiberClassComponent.js
Source:e5881c9fce00eba262a698b097b520392b5a8eReactFiberClassComponent.js
...70 }71 var instance = workInProgress.stateNode;72 if (typeof instance.shouldComponentUpdate === 'function') {73 if (__DEV__) {74 startPhaseTimer(workInProgress, 'shouldComponentUpdate');75 }76 var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, newContext);77 if (__DEV__) {78 stopPhaseTimer();79 }80 if (__DEV__) {81 warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(workInProgress) || 'Unknown');82 }83 return shouldUpdate;84 }85 var type = workInProgress.type;86 if (type.prototype && type.prototype.isPureReactComponent) {87 return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);88 }89 return true;90 }91 function checkClassInstance(workInProgress) {92 var instance = workInProgress.stateNode;93 if (__DEV__) {94 var name = getComponentName(workInProgress);95 var renderPresent = instance.render;96 warning(renderPresent, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);97 var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;98 warning(noGetInitialStateOnES6, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);99 var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;100 warning(noGetDefaultPropsOnES6, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);101 var noInstancePropTypes = !instance.propTypes;102 warning(noInstancePropTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);103 var noInstanceContextTypes = !instance.contextTypes;104 warning(noInstanceContextTypes, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);105 var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';106 warning(noComponentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);107 var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';108 warning(noComponentDidUnmount, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);109 var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';110 warning(noComponentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);111 var hasMutatedProps = instance.props !== workInProgress.pendingProps;112 warning(instance.props === undefined || !hasMutatedProps, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", name, name);113 }114 var state = instance.state;115 if (state && (typeof state !== 'object' || isArray(state))) {116 invariant(false, '%s.state: must be set to an object or null', getComponentName(workInProgress));117 }118 if (typeof instance.getChildContext === 'function') {119 invariant(typeof workInProgress.type.childContextTypes === 'object', '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', getComponentName(workInProgress));120 }121 }122 function resetInputPointers(workInProgress, instance) {123 instance.props = workInProgress.memoizedProps;124 instance.state = workInProgress.memoizedState;125 }126 function adoptClassInstance(workInProgress, instance) {127 instance.updater = updater;128 workInProgress.stateNode = instance;129 ReactInstanceMap.set(instance, workInProgress);130 }131 function constructClassInstance(workInProgress) {132 var ctor = workInProgress.type;133 var props = workInProgress.pendingProps;134 var unmaskedContext = getUnmaskedContext(workInProgress);135 var needsContext = isContextConsumer(workInProgress);136 var context = needsContext ? getMaskedContext(workInProgress, unmaskedContext) : emptyObject;137 var instance = new ctor(props, context);138 adoptClassInstance(workInProgress, instance);139 checkClassInstance(workInProgress);140 if (needsContext) {141 cacheContext(workInProgress, unmaskedContext, context);142 }143 return instance;144 }145 function mountClassInstance(workInProgress, priorityLevel) {146 var instance = workInProgress.stateNode;147 var state = instance.state || null;148 var props = workInProgress.pendingProps;149 invariant(props, 'There must be pending props for an initial mount. This error is ' + 'likely caused by a bug in React. Please file an issue.');150 var unmaskedContext = getUnmaskedContext(workInProgress);151 instance.props = props;152 instance.state = state;153 instance.refs = emptyObject;154 instance.context = getMaskedContext(workInProgress, unmaskedContext);155 if (typeof instance.componentWillMount === 'function') {156 if (__DEV__) {157 startPhaseTimer(workInProgress, 'componentWillMount');158 }159 instance.componentWillMount();160 if (__DEV__) {161 stopPhaseTimer();162 }163 var updateQueue = workInProgress.updateQueue;164 if (updateQueue !== null) {165 instance.state = beginUpdateQueue(workInProgress, updateQueue, instance, state, props, priorityLevel);166 }167 }168 if (typeof instance.componentDidMount === 'function') {169 workInProgress.effectTag |= Update;170 }171 }172 function resumeMountClassInstance(workInProgress, priorityLevel) {173 var instance = workInProgress.stateNode;174 resetInputPointers(workInProgress, instance);175 var newState = workInProgress.memoizedState;176 var newProps = workInProgress.pendingProps;177 if (!newProps) {178 newProps = workInProgress.memoizedProps;179 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');180 }181 var newUnmaskedContext = getUnmaskedContext(workInProgress);182 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);183 if (!checkShouldComponentUpdate(workInProgress, workInProgress.memoizedProps, newProps, workInProgress.memoizedState, newState, newContext)) {184 instance.props = newProps;185 instance.state = newState;186 instance.context = newContext;187 return false;188 }189 var newInstance = constructClassInstance(workInProgress);190 newInstance.props = newProps;191 newInstance.state = newState = newInstance.state || null;192 newInstance.context = newContext;193 if (typeof newInstance.componentWillMount === 'function') {194 if (__DEV__) {195 startPhaseTimer(workInProgress, 'componentWillMount');196 }197 newInstance.componentWillMount();198 if (__DEV__) {199 stopPhaseTimer();200 }201 }202 var newUpdateQueue = workInProgress.updateQueue;203 if (newUpdateQueue !== null) {204 newInstance.state = beginUpdateQueue(workInProgress, newUpdateQueue, newInstance, newState, newProps, priorityLevel);205 }206 if (typeof instance.componentDidMount === 'function') {207 workInProgress.effectTag |= Update;208 }209 return true;210 }211 function updateClassInstance(current, workInProgress, priorityLevel) {212 var instance = workInProgress.stateNode;213 resetInputPointers(workInProgress, instance);214 var oldProps = workInProgress.memoizedProps;215 var newProps = workInProgress.pendingProps;216 if (!newProps) {217 newProps = oldProps;218 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');219 }220 var oldContext = instance.context;221 var newUnmaskedContext = getUnmaskedContext(workInProgress);222 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);223 if (oldProps !== newProps || oldContext !== newContext) {224 if (typeof instance.componentWillReceiveProps === 'function') {225 if (__DEV__) {226 startPhaseTimer(workInProgress, 'componentWillReceiveProps');227 }228 instance.componentWillReceiveProps(newProps, newContext);229 if (__DEV__) {230 stopPhaseTimer();231 }232 if (instance.state !== workInProgress.memoizedState) {233 if (__DEV__) {234 warning(false, '%s.componentWillReceiveProps(): Assigning directly to ' + "this.state is deprecated (except inside a component's " + 'constructor). Use setState instead.', getComponentName(workInProgress));235 }236 updater.enqueueReplaceState(instance, instance.state, null);237 }238 }239 }240 var updateQueue = workInProgress.updateQueue;241 var oldState = workInProgress.memoizedState;242 var newState = void 0;243 if (updateQueue !== null) {244 newState = beginUpdateQueue(workInProgress, updateQueue, instance, oldState, newProps, priorityLevel);245 } else {246 newState = oldState;247 }248 if (oldProps === newProps && oldState === newState && !hasContextChanged() && !(updateQueue !== null && updateQueue.hasForceUpdate)) {249 if (typeof instance.componentDidUpdate === 'function') {250 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {251 workInProgress.effectTag |= Update;252 }253 }254 return false;255 }256 var shouldUpdate = checkShouldComponentUpdate(workInProgress, oldProps, newProps, oldState, newState, newContext);257 if (shouldUpdate) {258 if (typeof instance.componentWillUpdate === 'function') {259 if (__DEV__) {260 startPhaseTimer(workInProgress, 'componentWillUpdate');261 }262 instance.componentWillUpdate(newProps, newState, newContext);263 if (__DEV__) {264 stopPhaseTimer();265 }266 }267 if (typeof instance.componentDidUpdate === 'function') {268 workInProgress.effectTag |= Update;269 }270 } else {271 if (typeof instance.componentDidUpdate === 'function') {272 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {273 workInProgress.effectTag |= Update;274 }...
8ca7de39eb8464178ca86a85535ed9229f99f3ReactFiberClassComponent.js
Source:8ca7de39eb8464178ca86a85535ed9229f99f3ReactFiberClassComponent.js
...70 }71 var instance = workInProgress.stateNode;72 if (typeof instance.shouldComponentUpdate === 'function') {73 if (__DEV__) {74 startPhaseTimer(workInProgress, 'shouldComponentUpdate');75 }76 var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, newContext);77 if (__DEV__) {78 stopPhaseTimer();79 }80 if (__DEV__) {81 warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(workInProgress) || 'Unknown');82 }83 return shouldUpdate;84 }85 var type = workInProgress.type;86 if (type.prototype && type.prototype.isPureReactComponent) {87 return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);88 }89 return true;90 }91 function checkClassInstance(workInProgress) {92 var instance = workInProgress.stateNode;93 if (__DEV__) {94 var name = getComponentName(workInProgress);95 var renderPresent = instance.render;96 warning(renderPresent, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);97 var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;98 warning(noGetInitialStateOnES6, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);99 var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;100 warning(noGetDefaultPropsOnES6, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);101 var noInstancePropTypes = !instance.propTypes;102 warning(noInstancePropTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);103 var noInstanceContextTypes = !instance.contextTypes;104 warning(noInstanceContextTypes, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);105 var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';106 warning(noComponentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);107 var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';108 warning(noComponentDidUnmount, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);109 var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';110 warning(noComponentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);111 var hasMutatedProps = instance.props !== workInProgress.pendingProps;112 warning(instance.props === undefined || !hasMutatedProps, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", name, name);113 }114 var state = instance.state;115 if (state && (typeof state !== 'object' || isArray(state))) {116 invariant(false, '%s.state: must be set to an object or null', getComponentName(workInProgress));117 }118 if (typeof instance.getChildContext === 'function') {119 invariant(typeof workInProgress.type.childContextTypes === 'object', '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', getComponentName(workInProgress));120 }121 }122 function resetInputPointers(workInProgress, instance) {123 instance.props = workInProgress.memoizedProps;124 instance.state = workInProgress.memoizedState;125 }126 function adoptClassInstance(workInProgress, instance) {127 instance.updater = updater;128 workInProgress.stateNode = instance;129 ReactInstanceMap.set(instance, workInProgress);130 }131 function constructClassInstance(workInProgress) {132 var ctor = workInProgress.type;133 var props = workInProgress.pendingProps;134 var unmaskedContext = getUnmaskedContext(workInProgress);135 var needsContext = isContextConsumer(workInProgress);136 var context = needsContext ? getMaskedContext(workInProgress, unmaskedContext) : emptyObject;137 var instance = new ctor(props, context);138 adoptClassInstance(workInProgress, instance);139 checkClassInstance(workInProgress);140 if (needsContext) {141 cacheContext(workInProgress, unmaskedContext, context);142 }143 return instance;144 }145 function mountClassInstance(workInProgress, priorityLevel) {146 var instance = workInProgress.stateNode;147 var state = instance.state || null;148 var props = workInProgress.pendingProps;149 invariant(props, 'There must be pending props for an initial mount. This error is ' + 'likely caused by a bug in React. Please file an issue.');150 var unmaskedContext = getUnmaskedContext(workInProgress);151 instance.props = props;152 instance.state = state;153 instance.refs = emptyObject;154 instance.context = getMaskedContext(workInProgress, unmaskedContext);155 if (typeof instance.componentWillMount === 'function') {156 if (__DEV__) {157 startPhaseTimer(workInProgress, 'componentWillMount');158 }159 instance.componentWillMount();160 if (__DEV__) {161 stopPhaseTimer();162 }163 var updateQueue = workInProgress.updateQueue;164 if (updateQueue !== null) {165 instance.state = beginUpdateQueue(workInProgress, updateQueue, instance, state, props, priorityLevel);166 }167 }168 if (typeof instance.componentDidMount === 'function') {169 workInProgress.effectTag |= Update;170 }171 }172 function resumeMountClassInstance(workInProgress, priorityLevel) {173 var instance = workInProgress.stateNode;174 resetInputPointers(workInProgress, instance);175 var newState = workInProgress.memoizedState;176 var newProps = workInProgress.pendingProps;177 if (!newProps) {178 newProps = workInProgress.memoizedProps;179 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');180 }181 var newUnmaskedContext = getUnmaskedContext(workInProgress);182 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);183 if (!checkShouldComponentUpdate(workInProgress, workInProgress.memoizedProps, newProps, workInProgress.memoizedState, newState, newContext)) {184 instance.props = newProps;185 instance.state = newState;186 instance.context = newContext;187 return false;188 }189 var newInstance = constructClassInstance(workInProgress);190 newInstance.props = newProps;191 newInstance.state = newState = newInstance.state || null;192 newInstance.context = newContext;193 if (typeof newInstance.componentWillMount === 'function') {194 if (__DEV__) {195 startPhaseTimer(workInProgress, 'componentWillMount');196 }197 newInstance.componentWillMount();198 if (__DEV__) {199 stopPhaseTimer();200 }201 }202 var newUpdateQueue = workInProgress.updateQueue;203 if (newUpdateQueue !== null) {204 newInstance.state = beginUpdateQueue(workInProgress, newUpdateQueue, newInstance, newState, newProps, priorityLevel);205 }206 if (typeof instance.componentDidMount === 'function') {207 workInProgress.effectTag |= Update;208 }209 return true;210 }211 function updateClassInstance(current, workInProgress, priorityLevel) {212 var instance = workInProgress.stateNode;213 resetInputPointers(workInProgress, instance);214 var oldProps = workInProgress.memoizedProps;215 var newProps = workInProgress.pendingProps;216 if (!newProps) {217 newProps = oldProps;218 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');219 }220 var oldContext = instance.context;221 var newUnmaskedContext = getUnmaskedContext(workInProgress);222 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);223 if (oldProps !== newProps || oldContext !== newContext) {224 if (typeof instance.componentWillReceiveProps === 'function') {225 if (__DEV__) {226 startPhaseTimer(workInProgress, 'componentWillReceiveProps');227 }228 instance.componentWillReceiveProps(newProps, newContext);229 if (__DEV__) {230 stopPhaseTimer();231 }232 if (instance.state !== workInProgress.memoizedState) {233 if (__DEV__) {234 warning(false, '%s.componentWillReceiveProps(): Assigning directly to ' + "this.state is deprecated (except inside a component's " + 'constructor). Use setState instead.', getComponentName(workInProgress));235 }236 updater.enqueueReplaceState(instance, instance.state, null);237 }238 }239 }240 var updateQueue = workInProgress.updateQueue;241 var oldState = workInProgress.memoizedState;242 var newState = void 0;243 if (updateQueue !== null) {244 newState = beginUpdateQueue(workInProgress, updateQueue, instance, oldState, newProps, priorityLevel);245 } else {246 newState = oldState;247 }248 if (oldProps === newProps && oldState === newState && !hasContextChanged() && !(updateQueue !== null && updateQueue.hasForceUpdate)) {249 if (typeof instance.componentDidUpdate === 'function') {250 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {251 workInProgress.effectTag |= Update;252 }253 }254 return false;255 }256 var shouldUpdate = checkShouldComponentUpdate(workInProgress, oldProps, newProps, oldState, newState, newContext);257 if (shouldUpdate) {258 if (typeof instance.componentWillUpdate === 'function') {259 if (__DEV__) {260 startPhaseTimer(workInProgress, 'componentWillUpdate');261 }262 instance.componentWillUpdate(newProps, newState, newContext);263 if (__DEV__) {264 stopPhaseTimer();265 }266 }267 if (typeof instance.componentDidUpdate === 'function') {268 workInProgress.effectTag |= Update;269 }270 } else {271 if (typeof instance.componentDidUpdate === 'function') {272 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {273 workInProgress.effectTag |= Update;274 }...
75b9d1e39129e9bda52599b1ccdca6dc979f73ReactFiberClassComponent.js
Source:75b9d1e39129e9bda52599b1ccdca6dc979f73ReactFiberClassComponent.js
...70 }71 var instance = workInProgress.stateNode;72 if (typeof instance.shouldComponentUpdate === 'function') {73 if (__DEV__) {74 startPhaseTimer(workInProgress, 'shouldComponentUpdate');75 }76 var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, newContext);77 if (__DEV__) {78 stopPhaseTimer();79 }80 if (__DEV__) {81 warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(workInProgress) || 'Unknown');82 }83 return shouldUpdate;84 }85 var type = workInProgress.type;86 if (type.prototype && type.prototype.isPureReactComponent) {87 return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);88 }89 return true;90 }91 function checkClassInstance(workInProgress) {92 var instance = workInProgress.stateNode;93 if (__DEV__) {94 var name = getComponentName(workInProgress);95 var renderPresent = instance.render;96 warning(renderPresent, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);97 var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;98 warning(noGetInitialStateOnES6, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);99 var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;100 warning(noGetDefaultPropsOnES6, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);101 var noInstancePropTypes = !instance.propTypes;102 warning(noInstancePropTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);103 var noInstanceContextTypes = !instance.contextTypes;104 warning(noInstanceContextTypes, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);105 var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';106 warning(noComponentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);107 var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';108 warning(noComponentDidUnmount, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);109 var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';110 warning(noComponentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);111 var hasMutatedProps = instance.props !== workInProgress.pendingProps;112 warning(instance.props === undefined || !hasMutatedProps, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", name, name);113 }114 var state = instance.state;115 if (state && (typeof state !== 'object' || isArray(state))) {116 invariant(false, '%s.state: must be set to an object or null', getComponentName(workInProgress));117 }118 if (typeof instance.getChildContext === 'function') {119 invariant(typeof workInProgress.type.childContextTypes === 'object', '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', getComponentName(workInProgress));120 }121 }122 function resetInputPointers(workInProgress, instance) {123 instance.props = workInProgress.memoizedProps;124 instance.state = workInProgress.memoizedState;125 }126 function adoptClassInstance(workInProgress, instance) {127 instance.updater = updater;128 workInProgress.stateNode = instance;129 ReactInstanceMap.set(instance, workInProgress);130 }131 function constructClassInstance(workInProgress) {132 var ctor = workInProgress.type;133 var props = workInProgress.pendingProps;134 var unmaskedContext = getUnmaskedContext(workInProgress);135 var needsContext = isContextConsumer(workInProgress);136 var context = needsContext ? getMaskedContext(workInProgress, unmaskedContext) : emptyObject;137 var instance = new ctor(props, context);138 adoptClassInstance(workInProgress, instance);139 checkClassInstance(workInProgress);140 if (needsContext) {141 cacheContext(workInProgress, unmaskedContext, context);142 }143 return instance;144 }145 function mountClassInstance(workInProgress, priorityLevel) {146 var instance = workInProgress.stateNode;147 var state = instance.state || null;148 var props = workInProgress.pendingProps;149 invariant(props, 'There must be pending props for an initial mount. This error is ' + 'likely caused by a bug in React. Please file an issue.');150 var unmaskedContext = getUnmaskedContext(workInProgress);151 instance.props = props;152 instance.state = state;153 instance.refs = emptyObject;154 instance.context = getMaskedContext(workInProgress, unmaskedContext);155 if (typeof instance.componentWillMount === 'function') {156 if (__DEV__) {157 startPhaseTimer(workInProgress, 'componentWillMount');158 }159 instance.componentWillMount();160 if (__DEV__) {161 stopPhaseTimer();162 }163 var updateQueue = workInProgress.updateQueue;164 if (updateQueue !== null) {165 instance.state = beginUpdateQueue(workInProgress, updateQueue, instance, state, props, priorityLevel);166 }167 }168 if (typeof instance.componentDidMount === 'function') {169 workInProgress.effectTag |= Update;170 }171 }172 function resumeMountClassInstance(workInProgress, priorityLevel) {173 var instance = workInProgress.stateNode;174 resetInputPointers(workInProgress, instance);175 var newState = workInProgress.memoizedState;176 var newProps = workInProgress.pendingProps;177 if (!newProps) {178 newProps = workInProgress.memoizedProps;179 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');180 }181 var newUnmaskedContext = getUnmaskedContext(workInProgress);182 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);183 if (!checkShouldComponentUpdate(workInProgress, workInProgress.memoizedProps, newProps, workInProgress.memoizedState, newState, newContext)) {184 instance.props = newProps;185 instance.state = newState;186 instance.context = newContext;187 return false;188 }189 var newInstance = constructClassInstance(workInProgress);190 newInstance.props = newProps;191 newInstance.state = newState = newInstance.state || null;192 newInstance.context = newContext;193 if (typeof newInstance.componentWillMount === 'function') {194 if (__DEV__) {195 startPhaseTimer(workInProgress, 'componentWillMount');196 }197 newInstance.componentWillMount();198 if (__DEV__) {199 stopPhaseTimer();200 }201 }202 var newUpdateQueue = workInProgress.updateQueue;203 if (newUpdateQueue !== null) {204 newInstance.state = beginUpdateQueue(workInProgress, newUpdateQueue, newInstance, newState, newProps, priorityLevel);205 }206 if (typeof instance.componentDidMount === 'function') {207 workInProgress.effectTag |= Update;208 }209 return true;210 }211 function updateClassInstance(current, workInProgress, priorityLevel) {212 var instance = workInProgress.stateNode;213 resetInputPointers(workInProgress, instance);214 var oldProps = workInProgress.memoizedProps;215 var newProps = workInProgress.pendingProps;216 if (!newProps) {217 newProps = oldProps;218 invariant(newProps != null, 'There should always be pending or memoized props. This error is ' + 'likely caused by a bug in React. Please file an issue.');219 }220 var oldContext = instance.context;221 var newUnmaskedContext = getUnmaskedContext(workInProgress);222 var newContext = getMaskedContext(workInProgress, newUnmaskedContext);223 if (oldProps !== newProps || oldContext !== newContext) {224 if (typeof instance.componentWillReceiveProps === 'function') {225 if (__DEV__) {226 startPhaseTimer(workInProgress, 'componentWillReceiveProps');227 }228 instance.componentWillReceiveProps(newProps, newContext);229 if (__DEV__) {230 stopPhaseTimer();231 }232 if (instance.state !== workInProgress.memoizedState) {233 if (__DEV__) {234 warning(false, '%s.componentWillReceiveProps(): Assigning directly to ' + "this.state is deprecated (except inside a component's " + 'constructor). Use setState instead.', getComponentName(workInProgress));235 }236 updater.enqueueReplaceState(instance, instance.state, null);237 }238 }239 }240 var updateQueue = workInProgress.updateQueue;241 var oldState = workInProgress.memoizedState;242 var newState = void 0;243 if (updateQueue !== null) {244 newState = beginUpdateQueue(workInProgress, updateQueue, instance, oldState, newProps, priorityLevel);245 } else {246 newState = oldState;247 }248 if (oldProps === newProps && oldState === newState && !hasContextChanged() && !(updateQueue !== null && updateQueue.hasForceUpdate)) {249 if (typeof instance.componentDidUpdate === 'function') {250 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {251 workInProgress.effectTag |= Update;252 }253 }254 return false;255 }256 var shouldUpdate = checkShouldComponentUpdate(workInProgress, oldProps, newProps, oldState, newState, newContext);257 if (shouldUpdate) {258 if (typeof instance.componentWillUpdate === 'function') {259 if (__DEV__) {260 startPhaseTimer(workInProgress, 'componentWillUpdate');261 }262 instance.componentWillUpdate(newProps, newState, newContext);263 if (__DEV__) {264 stopPhaseTimer();265 }266 }267 if (typeof instance.componentDidUpdate === 'function') {268 workInProgress.effectTag |= Update;269 }270 } else {271 if (typeof instance.componentDidUpdate === 'function') {272 if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {273 workInProgress.effectTag |= Update;274 }...
ReactFiberContext.js
Source:ReactFiberContext.js
...14 if (typeof instance.getChildContext !== 'function') {15 return parentContext;16 }17 let childContext;18 startPhaseTimer(fiber, 'getChildContext');19 childContext = instance.getChildContext();20 stopPhaseTimer();21 22 return {...parentContext, ...childContext};23}24export function findCurrentUnmaskedContext(fiber: Fiber): Object {25 let node: Fiber = fiber;26 while (node.tag !== HostRoot) {27 if (isContextProvider(node)) {28 return node.stateNode.__reactInternalMemoizedMergedChildContext;29 }30 const parent = node.return;31 node = parent;32 }...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.startPhaseTimer('phase1');7 await page.startPhaseTimer('phase2');8 await page.startPhaseTimer('phase3');9 await page.startPhaseTimer('phase4');10 await page.startPhaseTimer('phase5');11 await page.startPhaseTimer('phase6');12 await page.startPhaseTimer('phase7');13 await page.startPhaseTimer('phase8');14 await page.startPhaseTimer('phase9');15 await page.startPhaseTimer('phase10');16 await page.startPhaseTimer('phase11');17 await page.startPhaseTimer('phase12');18 await page.startPhaseTimer('phase13');19 await page.startPhaseTimer('phase14');20 await page.startPhaseTimer('phase15');21 await page.startPhaseTimer('phase16');22 await page.startPhaseTimer('phase17');23 await page.startPhaseTimer('phase18');24 await page.startPhaseTimer('phase19');25 await page.startPhaseTimer('phase20');26 await page.startPhaseTimer('phase21');27 await page.startPhaseTimer('phase22');28 await page.startPhaseTimer('phase23');29 await page.startPhaseTimer('phase24');30 await page.startPhaseTimer('phase25');31 await page.startPhaseTimer('phase26');32 await page.startPhaseTimer('phase27');33 await page.startPhaseTimer('phase28');34 await page.startPhaseTimer('phase29');35 await page.startPhaseTimer('phase30');36 await page.startPhaseTimer('phase31');37 await page.startPhaseTimer('phase32');38 await page.startPhaseTimer('phase33');39 await page.startPhaseTimer('phase34');40 await page.startPhaseTimer('phase35');41 await page.startPhaseTimer('phase36');42 await page.startPhaseTimer('phase37');43 await page.startPhaseTimer('phase38');44 await page.startPhaseTimer('phase39');45 await page.startPhaseTimer('phase40');46 await page.startPhaseTimer('phase41');47 await page.startPhaseTimer('phase42');48 await page.startPhaseTimer('phase43');49 await page.startPhaseTimer('phase44');
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.startPhaseTimer('phase1');7 await page.click('text=Get started');8 await page.waitForNavigation();9 await page.startPhaseTimer('phase2');10 await page.click('text=Docs');11 await page.waitForNavigation();12 await page.startPhaseTimer('phase3');13 await page.click('text=API');14 await page.waitForNavigation();15 await page.startPhaseTimer('phase4');16 await page.click('text=Page');17 await page.waitForNavigation();18 await page.startPhaseTimer('phase5');19 await page.click('text=page.click');20 await page.waitForNavigation();21 await page.startPhaseTimer('phase6');22 await page.click('text=page.startPhaseTimer');23 await page.waitForNavigation();24 await page.startPhaseTimer('phase7');25 await page.click('text=page.waitForNavigation');26 await page.waitForNavigation();27 await browser.close();28})();29const { chromium } = require('playwright');30const { startPhaseTimer } = require('playwright/lib/server/trace/recorder');31const { startPhaseTimer } = require('playwright/lib/server/trace/recorder');32(async () => {33 const browser = await chromium.launch();34 const context = await browser.newContext();35 const page = await context.newPage();36 await page.startPhaseTimer('phase1');37 await page.click('text=Get started');38 await page.waitForNavigation();39 await page.startPhaseTimer('phase2');40 await page.click('text=Docs');41 await page.waitForNavigation();42 await page.startPhaseTimer('phase3');43 await page.click('text=API');44 await page.waitForNavigation();45 await page.startPhaseTimer('phase4');46 await page.click('text=Page');47 await page.waitForNavigation();48 await page.startPhaseTimer('phase5');49 await page.click('text=page.click');50 await page.waitForNavigation();51 await page.startPhaseTimer('phase6');52 await page.click('text=page.startPhaseTimer');53 await page.waitForNavigation();54 await page.startPhaseTimer('phase7');
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.startPhaseTimer('phase1');7 await page.waitForTimeout(1000);8 await page.startPhaseTimer('phase2');9 await page.waitForTimeout(1000);10 await page.startPhaseTimer('phase3');11 await page.waitForTimeout(1000);12 await page.startPhaseTimer('phase4');13 await page.waitForTimeout(1000);14 await page.startPhaseTimer('phase5');15 await page.waitForTimeout(1000);16 await page.startPhaseTimer('phase6');17 await page.waitForTimeout(1000);18 await page.startPhaseTimer('phase7');19 await page.waitForTimeout(1000);20 await page.startPhaseTimer('phase8');21 await page.waitForTimeout(1000);22 await page.startPhaseTimer('phase9');23 await page.waitForTimeout(1000);24 await page.startPhaseTimer('phase10');25 await page.waitForTimeout(1000);26 await browser.close();27})();28const playwright = require('playwright');29(async () => {30 const browser = await playwright.chromium.launch();31 const context = await browser.newContext();32 const page = await context.newPage();33 await page.startPhaseTimer('phase1');34 await page.waitForTimeout(1000);35 await page.startPhaseTimer('phase2');36 await page.waitForTimeout(1000);37 await page.startPhaseTimer('phase3');38 await page.waitForTimeout(1000);39 await page.startPhaseTimer('phase4');40 await page.waitForTimeout(1000);41 await page.startPhaseTimer('phase5');42 await page.waitForTimeout(1000);43 await page.startPhaseTimer('phase6');44 await page.waitForTimeout(1000);45 await page.startPhaseTimer('phase7');46 await page.waitForTimeout(1000);47 await page.startPhaseTimer('phase8');48 await page.waitForTimeout(1000);49 await page.startPhaseTimer('phase9');50 await page.waitForTimeout(1000);51 await page.startPhaseTimer('phase
Using AI Code Generation
1const { InternalPlaywright } = require('playwright');2const internalPlaywright = new InternalPlaywright();3const browser = await internalPlaywright.chromium.launch();4const context = await browser.newContext();5const page = await context.newPage();6await page.startPhaseTimer('myPhase');7await page.click('text=Get Started');8await page.stopPhaseTimer('myPhase');9await browser.close();10const { InternalPlaywright } = require('playwright');11const internalPlaywright = new InternalPlaywright();12const browser = await internalPlaywright.chromium.launch();13const context = await browser.newContext();14const page = await context.newPage();15await page.startPhaseTimer('myPhase');16await page.click('text=Get Started');17await page.stopPhaseTimer('myPhase');18await browser.close();19const { InternalPlaywright } = require('playwright');20const internalPlaywright = new InternalPlaywright();21const browser = await internalPlaywright.chromium.launch();22const context = await browser.newContext();23const page = await context.newPage();24await page.startPhaseTimer('myPhase');25await page.click('text=Get Started');26await page.stopPhaseTimer('myPhase');27await browser.close();
Using AI Code Generation
1const { PlaywrightInternal } = require('playwright/lib/server/playwright.js');2const playwright = new PlaywrightInternal();3playwright.startPhaseTimer('test phase');4playwright.stopPhaseTimer('test phase');5const phaseTimings = playwright.getPhaseTimings();6console.log(JSON.stringify(phaseTimings, null, 2));7{8 "test phase": {9 }10}11const { PlaywrightInternal } = require('playwright/lib/server/playwright.js');12const playwright = new PlaywrightInternal();13playwright.startPhaseTimer('test phase');14playwright.stopPhaseTimer('test phase');15const phaseTimings = playwright.getPhaseTimings();16console.log(JSON.stringify(phaseTimings, null, 2));17{18 "test phase": {19 }20}
Using AI Code Generation
1const { startPhaseTimer } = require('@playwright/test');2startPhaseTimer('test');3const { startPhaseTimer } = require('@playwright/test');4startPhaseTimer('fixture');5const { startPhaseTimer } = require('@playwright/test');6startPhaseTimer('hook');7const { startPhaseTimer } = require('@playwright/test');8startPhaseTimer('test');9startPhaseTimer('fixture');10startPhaseTimer('hook');11const { startPhaseTimer } = require('@playwright/test');12startPhaseTimer('test');13startPhaseTimer('fixture');14startPhaseTimer('hook');15const { startPhaseTimer } = require('@playwright/test');16startPhaseTimer('test');17const { startPhaseTimer } = require('@playwright/test');18startPhaseTimer('fixture');19const { startPhaseTimer } = require('@playwright/test');20startPhaseTimer('hook');
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('My test', async ({ page }) => {3 expect(page).toHaveTitle('Playwright');4});5const { test, expect } = require('@playwright/test');6test('My test', async ({ page }) => {7 expect(page).toHaveTitle('Playwright');8});9const { test, expect } = require('@playwright/test');10test('My test', async ({ page }) => {11 expect(page).toHaveTitle('Playwright');12});13const { test, expect } = require('@playwright/test');14test('My test', async ({ page }) => {15 expect(page).toHaveTitle('Playwright');16});17const { test, expect } = require('@playwright/test');18test('My test', async ({ page }) => {19 expect(page).toHaveTitle('Playwright');20});21const { test, expect } = require('@playwright/test');22test('My test', async ({ page }) => {23 expect(page).toHaveTitle('Playwright');24});
Using AI Code Generation
1const { startPhaseTimer } = require('@playwright/test/lib/runner');2const phase = startPhaseTimer('phaseName');3phase.stop();4phase.duration();5phase.name();6phase.status();7phase.startTime();8phase.stopTime();9phase.error();10phase.errorMessage();11phase.errorStack();12phase.errorType();13phase.errorCode();14phase.errorSignal();15phase.errorStderr();16phase.errorStdout();17phase.errorExitCode();18phase.errorExitSignal();19phase.errorExitMessage();20phase.errorExitStack();21phase.errorExitType();22phase.errorExitCode();23phase.errorExitSignal();24phase.errorExitStderr();25phase.errorExitStdout();26phase.errorExitExitCode();27phase.errorExitExitSignal();28phase.errorExitExitMessage();29phase.errorExitExitStack();30phase.errorExitExitType();31phase.errorExitExitCode();32phase.errorExitExitSignal();33phase.errorExitExitStderr();34phase.errorExitExitStdout();
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!!