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();
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!!