Best JavaScript code snippet using playwright-internal
65b6bd2ffbe6e4c46a631afcc31212818c6d58ReactDebugTool.js
Source: 65b6bd2ffbe6e4c46a631afcc31212818c6d58ReactDebugTool.js
...87 if (!debugID) {88 warning(false, 'ReactDebugTool: debugID may not be empty.');89 }90 };91 var beginLifeCycleTimer = function beginLifeCycleTimer(debugID, timerType) {92 if (currentFlushNesting === 0) {93 return;94 }95 if (currentTimerType && !lifeCycleTimerHasWarned) {96 warning(false, 'There is an internal error in the React performance measurement code.' + '\n\nDid not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');97 lifeCycleTimerHasWarned = true;98 }99 currentTimerStartTime = performanceNow();100 currentTimerNestedFlushDuration = 0;101 currentTimerDebugID = debugID;102 currentTimerType = timerType;103 };104 var endLifeCycleTimer = function endLifeCycleTimer(debugID, timerType) {105 if (currentFlushNesting === 0) {106 return;107 }108 if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {109 warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');110 lifeCycleTimerHasWarned = true;111 }112 if (_isProfiling) {113 currentFlushMeasurements.push({114 timerType: timerType,115 instanceID: debugID,116 duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration117 });118 }119 currentTimerStartTime = 0;120 currentTimerNestedFlushDuration = 0;121 currentTimerDebugID = null;122 currentTimerType = null;123 };124 var pauseCurrentLifeCycleTimer = function pauseCurrentLifeCycleTimer() {125 var currentTimer = {126 startTime: currentTimerStartTime,127 nestedFlushStartTime: performanceNow(),128 debugID: currentTimerDebugID,129 timerType: currentTimerType130 };131 lifeCycleTimerStack.push(currentTimer);132 currentTimerStartTime = 0;133 currentTimerNestedFlushDuration = 0;134 currentTimerDebugID = null;135 currentTimerType = null;136 };137 var resumeCurrentLifeCycleTimer = function resumeCurrentLifeCycleTimer() {138 var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),139 startTime = _lifeCycleTimerStack$.startTime,140 nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,141 debugID = _lifeCycleTimerStack$.debugID,142 timerType = _lifeCycleTimerStack$.timerType;143 var nestedFlushDuration = performanceNow() - nestedFlushStartTime;144 currentTimerStartTime = startTime;145 currentTimerNestedFlushDuration += nestedFlushDuration;146 currentTimerDebugID = debugID;147 currentTimerType = timerType;148 };149 var lastMarkTimeStamp = 0;150 var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';151 var shouldMark = function shouldMark(debugID) {152 if (!_isProfiling || !canUsePerformanceMeasure) {153 return false;154 }155 var element = ReactComponentTreeHook.getElement(debugID);156 if (element == null || typeof element !== 'object') {157 return false;158 }159 var isHostElement = typeof element.type === 'string';160 if (isHostElement) {161 return false;162 }163 return true;164 };165 var markBegin = function markBegin(debugID, markType) {166 if (!shouldMark(debugID)) {167 return;168 }169 var markName = debugID + '::' + markType;170 lastMarkTimeStamp = performanceNow();171 performance.mark(markName);172 };173 var markEnd = function markEnd(debugID, markType) {174 if (!shouldMark(debugID)) {175 return;176 }177 var markName = debugID + '::' + markType;178 var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';179 var timeStamp = performanceNow();180 if (timeStamp - lastMarkTimeStamp > 0.1) {181 var measurementName = displayName + ' [' + markType + ']';182 performance.measure(measurementName, markName);183 }184 performance.clearMarks(markName);185 performance.clearMeasures(measurementName);186 };187 ReactDebugTool = {188 addHook: function addHook(hook) {189 hooks.push(hook);190 },191 removeHook: function removeHook(hook) {192 for (var i = 0; i < hooks.length; i++) {193 if (hooks[i] === hook) {194 hooks.splice(i, 1);195 i--;196 }197 }198 },199 isProfiling: function isProfiling() {200 return _isProfiling;201 },202 beginProfiling: function beginProfiling() {203 if (_isProfiling) {204 return;205 }206 _isProfiling = true;207 flushHistory.length = 0;208 resetMeasurements();209 ReactDebugTool.addHook(ReactHostOperationHistoryHook);210 },211 endProfiling: function endProfiling() {212 if (!_isProfiling) {213 return;214 }215 _isProfiling = false;216 resetMeasurements();217 ReactDebugTool.removeHook(ReactHostOperationHistoryHook);218 },219 getFlushHistory: function getFlushHistory() {220 return flushHistory;221 },222 onBeginFlush: function onBeginFlush() {223 currentFlushNesting++;224 resetMeasurements();225 pauseCurrentLifeCycleTimer();226 emitEvent('onBeginFlush');227 },228 onEndFlush: function onEndFlush() {229 resetMeasurements();230 currentFlushNesting--;231 resumeCurrentLifeCycleTimer();232 emitEvent('onEndFlush');233 },234 onBeginLifeCycleTimer: function onBeginLifeCycleTimer(debugID, timerType) {235 checkDebugID(debugID);236 emitEvent('onBeginLifeCycleTimer', debugID, timerType);237 markBegin(debugID, timerType);238 beginLifeCycleTimer(debugID, timerType);239 },240 onEndLifeCycleTimer: function onEndLifeCycleTimer(debugID, timerType) {241 checkDebugID(debugID);242 endLifeCycleTimer(debugID, timerType);243 markEnd(debugID, timerType);244 emitEvent('onEndLifeCycleTimer', debugID, timerType);245 },246 onBeginProcessingChildContext: function onBeginProcessingChildContext() {247 emitEvent('onBeginProcessingChildContext');248 },249 onEndProcessingChildContext: function onEndProcessingChildContext() {250 emitEvent('onEndProcessingChildContext');251 },252 onHostOperation: function onHostOperation(operation) {...
747110cb83c5d9948fa42e36cd4e7f19ad369eReactDebugTool.js
Source: 747110cb83c5d9948fa42e36cd4e7f19ad369eReactDebugTool.js
...87 if (!debugID) {88 warning(false, 'ReactDebugTool: debugID may not be empty.');89 }90 };91 var beginLifeCycleTimer = function beginLifeCycleTimer(debugID, timerType) {92 if (currentFlushNesting === 0) {93 return;94 }95 if (currentTimerType && !lifeCycleTimerHasWarned) {96 warning(false, 'There is an internal error in the React performance measurement code.' + '\n\nDid not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');97 lifeCycleTimerHasWarned = true;98 }99 currentTimerStartTime = performanceNow();100 currentTimerNestedFlushDuration = 0;101 currentTimerDebugID = debugID;102 currentTimerType = timerType;103 };104 var endLifeCycleTimer = function endLifeCycleTimer(debugID, timerType) {105 if (currentFlushNesting === 0) {106 return;107 }108 if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {109 warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');110 lifeCycleTimerHasWarned = true;111 }112 if (_isProfiling) {113 currentFlushMeasurements.push({114 timerType: timerType,115 instanceID: debugID,116 duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration117 });118 }119 currentTimerStartTime = 0;120 currentTimerNestedFlushDuration = 0;121 currentTimerDebugID = null;122 currentTimerType = null;123 };124 var pauseCurrentLifeCycleTimer = function pauseCurrentLifeCycleTimer() {125 var currentTimer = {126 startTime: currentTimerStartTime,127 nestedFlushStartTime: performanceNow(),128 debugID: currentTimerDebugID,129 timerType: currentTimerType130 };131 lifeCycleTimerStack.push(currentTimer);132 currentTimerStartTime = 0;133 currentTimerNestedFlushDuration = 0;134 currentTimerDebugID = null;135 currentTimerType = null;136 };137 var resumeCurrentLifeCycleTimer = function resumeCurrentLifeCycleTimer() {138 var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),139 startTime = _lifeCycleTimerStack$.startTime,140 nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,141 debugID = _lifeCycleTimerStack$.debugID,142 timerType = _lifeCycleTimerStack$.timerType;143 var nestedFlushDuration = performanceNow() - nestedFlushStartTime;144 currentTimerStartTime = startTime;145 currentTimerNestedFlushDuration += nestedFlushDuration;146 currentTimerDebugID = debugID;147 currentTimerType = timerType;148 };149 var lastMarkTimeStamp = 0;150 var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';151 var shouldMark = function shouldMark(debugID) {152 if (!_isProfiling || !canUsePerformanceMeasure) {153 return false;154 }155 var element = ReactComponentTreeHook.getElement(debugID);156 if (element == null || typeof element !== 'object') {157 return false;158 }159 var isHostElement = typeof element.type === 'string';160 if (isHostElement) {161 return false;162 }163 return true;164 };165 var markBegin = function markBegin(debugID, markType) {166 if (!shouldMark(debugID)) {167 return;168 }169 var markName = debugID + '::' + markType;170 lastMarkTimeStamp = performanceNow();171 performance.mark(markName);172 };173 var markEnd = function markEnd(debugID, markType) {174 if (!shouldMark(debugID)) {175 return;176 }177 var markName = debugID + '::' + markType;178 var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';179 var timeStamp = performanceNow();180 if (timeStamp - lastMarkTimeStamp > 0.1) {181 var measurementName = displayName + ' [' + markType + ']';182 performance.measure(measurementName, markName);183 }184 performance.clearMarks(markName);185 performance.clearMeasures(measurementName);186 };187 ReactDebugTool = {188 addHook: function addHook(hook) {189 hooks.push(hook);190 },191 removeHook: function removeHook(hook) {192 for (var i = 0; i < hooks.length; i++) {193 if (hooks[i] === hook) {194 hooks.splice(i, 1);195 i--;196 }197 }198 },199 isProfiling: function isProfiling() {200 return _isProfiling;201 },202 beginProfiling: function beginProfiling() {203 if (_isProfiling) {204 return;205 }206 _isProfiling = true;207 flushHistory.length = 0;208 resetMeasurements();209 ReactDebugTool.addHook(ReactHostOperationHistoryHook);210 },211 endProfiling: function endProfiling() {212 if (!_isProfiling) {213 return;214 }215 _isProfiling = false;216 resetMeasurements();217 ReactDebugTool.removeHook(ReactHostOperationHistoryHook);218 },219 getFlushHistory: function getFlushHistory() {220 return flushHistory;221 },222 onBeginFlush: function onBeginFlush() {223 currentFlushNesting++;224 resetMeasurements();225 pauseCurrentLifeCycleTimer();226 emitEvent('onBeginFlush');227 },228 onEndFlush: function onEndFlush() {229 resetMeasurements();230 currentFlushNesting--;231 resumeCurrentLifeCycleTimer();232 emitEvent('onEndFlush');233 },234 onBeginLifeCycleTimer: function onBeginLifeCycleTimer(debugID, timerType) {235 checkDebugID(debugID);236 emitEvent('onBeginLifeCycleTimer', debugID, timerType);237 markBegin(debugID, timerType);238 beginLifeCycleTimer(debugID, timerType);239 },240 onEndLifeCycleTimer: function onEndLifeCycleTimer(debugID, timerType) {241 checkDebugID(debugID);242 endLifeCycleTimer(debugID, timerType);243 markEnd(debugID, timerType);244 emitEvent('onEndLifeCycleTimer', debugID, timerType);245 },246 onBeginProcessingChildContext: function onBeginProcessingChildContext() {247 emitEvent('onBeginProcessingChildContext');248 },249 onEndProcessingChildContext: function onEndProcessingChildContext() {250 emitEvent('onEndProcessingChildContext');251 },252 onHostOperation: function onHostOperation(operation) {...
72fa9dReactDebugTool.js
Source: 72fa9dReactDebugTool.js
...87 if (!debugID) {88 warning(false, 'ReactDebugTool: debugID may not be empty.');89 }90 };91 var beginLifeCycleTimer = function beginLifeCycleTimer(debugID, timerType) {92 if (currentFlushNesting === 0) {93 return;94 }95 if (currentTimerType && !lifeCycleTimerHasWarned) {96 warning(false, 'There is an internal error in the React performance measurement code.' + '\n\nDid not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');97 lifeCycleTimerHasWarned = true;98 }99 currentTimerStartTime = performanceNow();100 currentTimerNestedFlushDuration = 0;101 currentTimerDebugID = debugID;102 currentTimerType = timerType;103 };104 var endLifeCycleTimer = function endLifeCycleTimer(debugID, timerType) {105 if (currentFlushNesting === 0) {106 return;107 }108 if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {109 warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');110 lifeCycleTimerHasWarned = true;111 }112 if (_isProfiling) {113 currentFlushMeasurements.push({114 timerType: timerType,115 instanceID: debugID,116 duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration117 });118 }119 currentTimerStartTime = 0;120 currentTimerNestedFlushDuration = 0;121 currentTimerDebugID = null;122 currentTimerType = null;123 };124 var pauseCurrentLifeCycleTimer = function pauseCurrentLifeCycleTimer() {125 var currentTimer = {126 startTime: currentTimerStartTime,127 nestedFlushStartTime: performanceNow(),128 debugID: currentTimerDebugID,129 timerType: currentTimerType130 };131 lifeCycleTimerStack.push(currentTimer);132 currentTimerStartTime = 0;133 currentTimerNestedFlushDuration = 0;134 currentTimerDebugID = null;135 currentTimerType = null;136 };137 var resumeCurrentLifeCycleTimer = function resumeCurrentLifeCycleTimer() {138 var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),139 startTime = _lifeCycleTimerStack$.startTime,140 nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,141 debugID = _lifeCycleTimerStack$.debugID,142 timerType = _lifeCycleTimerStack$.timerType;143 var nestedFlushDuration = performanceNow() - nestedFlushStartTime;144 currentTimerStartTime = startTime;145 currentTimerNestedFlushDuration += nestedFlushDuration;146 currentTimerDebugID = debugID;147 currentTimerType = timerType;148 };149 var lastMarkTimeStamp = 0;150 var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';151 var shouldMark = function shouldMark(debugID) {152 if (!_isProfiling || !canUsePerformanceMeasure) {153 return false;154 }155 var element = ReactComponentTreeHook.getElement(debugID);156 if (element == null || typeof element !== 'object') {157 return false;158 }159 var isHostElement = typeof element.type === 'string';160 if (isHostElement) {161 return false;162 }163 return true;164 };165 var markBegin = function markBegin(debugID, markType) {166 if (!shouldMark(debugID)) {167 return;168 }169 var markName = debugID + '::' + markType;170 lastMarkTimeStamp = performanceNow();171 performance.mark(markName);172 };173 var markEnd = function markEnd(debugID, markType) {174 if (!shouldMark(debugID)) {175 return;176 }177 var markName = debugID + '::' + markType;178 var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';179 var timeStamp = performanceNow();180 if (timeStamp - lastMarkTimeStamp > 0.1) {181 var measurementName = displayName + ' [' + markType + ']';182 performance.measure(measurementName, markName);183 }184 performance.clearMarks(markName);185 performance.clearMeasures(measurementName);186 };187 ReactDebugTool = {188 addHook: function addHook(hook) {189 hooks.push(hook);190 },191 removeHook: function removeHook(hook) {192 for (var i = 0; i < hooks.length; i++) {193 if (hooks[i] === hook) {194 hooks.splice(i, 1);195 i--;196 }197 }198 },199 isProfiling: function isProfiling() {200 return _isProfiling;201 },202 beginProfiling: function beginProfiling() {203 if (_isProfiling) {204 return;205 }206 _isProfiling = true;207 flushHistory.length = 0;208 resetMeasurements();209 ReactDebugTool.addHook(ReactHostOperationHistoryHook);210 },211 endProfiling: function endProfiling() {212 if (!_isProfiling) {213 return;214 }215 _isProfiling = false;216 resetMeasurements();217 ReactDebugTool.removeHook(ReactHostOperationHistoryHook);218 },219 getFlushHistory: function getFlushHistory() {220 return flushHistory;221 },222 onBeginFlush: function onBeginFlush() {223 currentFlushNesting++;224 resetMeasurements();225 pauseCurrentLifeCycleTimer();226 emitEvent('onBeginFlush');227 },228 onEndFlush: function onEndFlush() {229 resetMeasurements();230 currentFlushNesting--;231 resumeCurrentLifeCycleTimer();232 emitEvent('onEndFlush');233 },234 onBeginLifeCycleTimer: function onBeginLifeCycleTimer(debugID, timerType) {235 checkDebugID(debugID);236 emitEvent('onBeginLifeCycleTimer', debugID, timerType);237 markBegin(debugID, timerType);238 beginLifeCycleTimer(debugID, timerType);239 },240 onEndLifeCycleTimer: function onEndLifeCycleTimer(debugID, timerType) {241 checkDebugID(debugID);242 endLifeCycleTimer(debugID, timerType);243 markEnd(debugID, timerType);244 emitEvent('onEndLifeCycleTimer', debugID, timerType);245 },246 onBeginProcessingChildContext: function onBeginProcessingChildContext() {247 emitEvent('onBeginProcessingChildContext');248 },249 onEndProcessingChildContext: function onEndProcessingChildContext() {250 emitEvent('onEndProcessingChildContext');251 },252 onHostOperation: function onHostOperation(operation) {...
f1631fcf9e01e313efd6959ee3d84473311828ReactDebugTool.js
Source: f1631fcf9e01e313efd6959ee3d84473311828ReactDebugTool.js
...87 if (!debugID) {88 warning(false, 'ReactDebugTool: debugID may not be empty.');89 }90 };91 var beginLifeCycleTimer = function beginLifeCycleTimer(debugID, timerType) {92 if (currentFlushNesting === 0) {93 return;94 }95 if (currentTimerType && !lifeCycleTimerHasWarned) {96 warning(false, 'There is an internal error in the React performance measurement code.' + '\n\nDid not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');97 lifeCycleTimerHasWarned = true;98 }99 currentTimerStartTime = performanceNow();100 currentTimerNestedFlushDuration = 0;101 currentTimerDebugID = debugID;102 currentTimerType = timerType;103 };104 var endLifeCycleTimer = function endLifeCycleTimer(debugID, timerType) {105 if (currentFlushNesting === 0) {106 return;107 }108 if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {109 warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');110 lifeCycleTimerHasWarned = true;111 }112 if (_isProfiling) {113 currentFlushMeasurements.push({114 timerType: timerType,115 instanceID: debugID,116 duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration117 });118 }119 currentTimerStartTime = 0;120 currentTimerNestedFlushDuration = 0;121 currentTimerDebugID = null;122 currentTimerType = null;123 };124 var pauseCurrentLifeCycleTimer = function pauseCurrentLifeCycleTimer() {125 var currentTimer = {126 startTime: currentTimerStartTime,127 nestedFlushStartTime: performanceNow(),128 debugID: currentTimerDebugID,129 timerType: currentTimerType130 };131 lifeCycleTimerStack.push(currentTimer);132 currentTimerStartTime = 0;133 currentTimerNestedFlushDuration = 0;134 currentTimerDebugID = null;135 currentTimerType = null;136 };137 var resumeCurrentLifeCycleTimer = function resumeCurrentLifeCycleTimer() {138 var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),139 startTime = _lifeCycleTimerStack$.startTime,140 nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,141 debugID = _lifeCycleTimerStack$.debugID,142 timerType = _lifeCycleTimerStack$.timerType;143 var nestedFlushDuration = performanceNow() - nestedFlushStartTime;144 currentTimerStartTime = startTime;145 currentTimerNestedFlushDuration += nestedFlushDuration;146 currentTimerDebugID = debugID;147 currentTimerType = timerType;148 };149 var lastMarkTimeStamp = 0;150 var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';151 var shouldMark = function shouldMark(debugID) {152 if (!_isProfiling || !canUsePerformanceMeasure) {153 return false;154 }155 var element = ReactComponentTreeHook.getElement(debugID);156 if (element == null || typeof element !== 'object') {157 return false;158 }159 var isHostElement = typeof element.type === 'string';160 if (isHostElement) {161 return false;162 }163 return true;164 };165 var markBegin = function markBegin(debugID, markType) {166 if (!shouldMark(debugID)) {167 return;168 }169 var markName = debugID + '::' + markType;170 lastMarkTimeStamp = performanceNow();171 performance.mark(markName);172 };173 var markEnd = function markEnd(debugID, markType) {174 if (!shouldMark(debugID)) {175 return;176 }177 var markName = debugID + '::' + markType;178 var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';179 var timeStamp = performanceNow();180 if (timeStamp - lastMarkTimeStamp > 0.1) {181 var measurementName = displayName + ' [' + markType + ']';182 performance.measure(measurementName, markName);183 }184 performance.clearMarks(markName);185 performance.clearMeasures(measurementName);186 };187 ReactDebugTool = {188 addHook: function addHook(hook) {189 hooks.push(hook);190 },191 removeHook: function removeHook(hook) {192 for (var i = 0; i < hooks.length; i++) {193 if (hooks[i] === hook) {194 hooks.splice(i, 1);195 i--;196 }197 }198 },199 isProfiling: function isProfiling() {200 return _isProfiling;201 },202 beginProfiling: function beginProfiling() {203 if (_isProfiling) {204 return;205 }206 _isProfiling = true;207 flushHistory.length = 0;208 resetMeasurements();209 ReactDebugTool.addHook(ReactHostOperationHistoryHook);210 },211 endProfiling: function endProfiling() {212 if (!_isProfiling) {213 return;214 }215 _isProfiling = false;216 resetMeasurements();217 ReactDebugTool.removeHook(ReactHostOperationHistoryHook);218 },219 getFlushHistory: function getFlushHistory() {220 return flushHistory;221 },222 onBeginFlush: function onBeginFlush() {223 currentFlushNesting++;224 resetMeasurements();225 pauseCurrentLifeCycleTimer();226 emitEvent('onBeginFlush');227 },228 onEndFlush: function onEndFlush() {229 resetMeasurements();230 currentFlushNesting--;231 resumeCurrentLifeCycleTimer();232 emitEvent('onEndFlush');233 },234 onBeginLifeCycleTimer: function onBeginLifeCycleTimer(debugID, timerType) {235 checkDebugID(debugID);236 emitEvent('onBeginLifeCycleTimer', debugID, timerType);237 markBegin(debugID, timerType);238 beginLifeCycleTimer(debugID, timerType);239 },240 onEndLifeCycleTimer: function onEndLifeCycleTimer(debugID, timerType) {241 checkDebugID(debugID);242 endLifeCycleTimer(debugID, timerType);243 markEnd(debugID, timerType);244 emitEvent('onEndLifeCycleTimer', debugID, timerType);245 },246 onBeginProcessingChildContext: function onBeginProcessingChildContext() {247 emitEvent('onBeginProcessingChildContext');248 },249 onEndProcessingChildContext: function onEndProcessingChildContext() {250 emitEvent('onEndProcessingChildContext');251 },252 onHostOperation: function onHostOperation(operation) {...
106d42002a99b24f42892d550eb26157212a2cReactDebugTool.js
Source: 106d42002a99b24f42892d550eb26157212a2cReactDebugTool.js
...87 if (!debugID) {88 warning(false, 'ReactDebugTool: debugID may not be empty.');89 }90 };91 var beginLifeCycleTimer = function beginLifeCycleTimer(debugID, timerType) {92 if (currentFlushNesting === 0) {93 return;94 }95 if (currentTimerType && !lifeCycleTimerHasWarned) {96 warning(false, 'There is an internal error in the React performance measurement code.' + '\n\nDid not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');97 lifeCycleTimerHasWarned = true;98 }99 currentTimerStartTime = performanceNow();100 currentTimerNestedFlushDuration = 0;101 currentTimerDebugID = debugID;102 currentTimerType = timerType;103 };104 var endLifeCycleTimer = function endLifeCycleTimer(debugID, timerType) {105 if (currentFlushNesting === 0) {106 return;107 }108 if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {109 warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');110 lifeCycleTimerHasWarned = true;111 }112 if (_isProfiling) {113 currentFlushMeasurements.push({114 timerType: timerType,115 instanceID: debugID,116 duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration117 });118 }119 currentTimerStartTime = 0;120 currentTimerNestedFlushDuration = 0;121 currentTimerDebugID = null;122 currentTimerType = null;123 };124 var pauseCurrentLifeCycleTimer = function pauseCurrentLifeCycleTimer() {125 var currentTimer = {126 startTime: currentTimerStartTime,127 nestedFlushStartTime: performanceNow(),128 debugID: currentTimerDebugID,129 timerType: currentTimerType130 };131 lifeCycleTimerStack.push(currentTimer);132 currentTimerStartTime = 0;133 currentTimerNestedFlushDuration = 0;134 currentTimerDebugID = null;135 currentTimerType = null;136 };137 var resumeCurrentLifeCycleTimer = function resumeCurrentLifeCycleTimer() {138 var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),139 startTime = _lifeCycleTimerStack$.startTime,140 nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,141 debugID = _lifeCycleTimerStack$.debugID,142 timerType = _lifeCycleTimerStack$.timerType;143 var nestedFlushDuration = performanceNow() - nestedFlushStartTime;144 currentTimerStartTime = startTime;145 currentTimerNestedFlushDuration += nestedFlushDuration;146 currentTimerDebugID = debugID;147 currentTimerType = timerType;148 };149 var lastMarkTimeStamp = 0;150 var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';151 var shouldMark = function shouldMark(debugID) {152 if (!_isProfiling || !canUsePerformanceMeasure) {153 return false;154 }155 var element = ReactComponentTreeHook.getElement(debugID);156 if (element == null || typeof element !== 'object') {157 return false;158 }159 var isHostElement = typeof element.type === 'string';160 if (isHostElement) {161 return false;162 }163 return true;164 };165 var markBegin = function markBegin(debugID, markType) {166 if (!shouldMark(debugID)) {167 return;168 }169 var markName = debugID + '::' + markType;170 lastMarkTimeStamp = performanceNow();171 performance.mark(markName);172 };173 var markEnd = function markEnd(debugID, markType) {174 if (!shouldMark(debugID)) {175 return;176 }177 var markName = debugID + '::' + markType;178 var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';179 var timeStamp = performanceNow();180 if (timeStamp - lastMarkTimeStamp > 0.1) {181 var measurementName = displayName + ' [' + markType + ']';182 performance.measure(measurementName, markName);183 }184 performance.clearMarks(markName);185 performance.clearMeasures(measurementName);186 };187 ReactDebugTool = {188 addHook: function addHook(hook) {189 hooks.push(hook);190 },191 removeHook: function removeHook(hook) {192 for (var i = 0; i < hooks.length; i++) {193 if (hooks[i] === hook) {194 hooks.splice(i, 1);195 i--;196 }197 }198 },199 isProfiling: function isProfiling() {200 return _isProfiling;201 },202 beginProfiling: function beginProfiling() {203 if (_isProfiling) {204 return;205 }206 _isProfiling = true;207 flushHistory.length = 0;208 resetMeasurements();209 ReactDebugTool.addHook(ReactHostOperationHistoryHook);210 },211 endProfiling: function endProfiling() {212 if (!_isProfiling) {213 return;214 }215 _isProfiling = false;216 resetMeasurements();217 ReactDebugTool.removeHook(ReactHostOperationHistoryHook);218 },219 getFlushHistory: function getFlushHistory() {220 return flushHistory;221 },222 onBeginFlush: function onBeginFlush() {223 currentFlushNesting++;224 resetMeasurements();225 pauseCurrentLifeCycleTimer();226 emitEvent('onBeginFlush');227 },228 onEndFlush: function onEndFlush() {229 resetMeasurements();230 currentFlushNesting--;231 resumeCurrentLifeCycleTimer();232 emitEvent('onEndFlush');233 },234 onBeginLifeCycleTimer: function onBeginLifeCycleTimer(debugID, timerType) {235 checkDebugID(debugID);236 emitEvent('onBeginLifeCycleTimer', debugID, timerType);237 markBegin(debugID, timerType);238 beginLifeCycleTimer(debugID, timerType);239 },240 onEndLifeCycleTimer: function onEndLifeCycleTimer(debugID, timerType) {241 checkDebugID(debugID);242 endLifeCycleTimer(debugID, timerType);243 markEnd(debugID, timerType);244 emitEvent('onEndLifeCycleTimer', debugID, timerType);245 },246 onBeginProcessingChildContext: function onBeginProcessingChildContext() {247 emitEvent('onBeginProcessingChildContext');248 },249 onEndProcessingChildContext: function onEndProcessingChildContext() {250 emitEvent('onEndProcessingChildContext');251 },252 onHostOperation: function onHostOperation(operation) {...
701e31c3e90adbd4a9d1884b10bcfe55b4ff72ReactDebugTool.js
Source: 701e31c3e90adbd4a9d1884b10bcfe55b4ff72ReactDebugTool.js
...87 if (!debugID) {88 warning(false, 'ReactDebugTool: debugID may not be empty.');89 }90 };91 var beginLifeCycleTimer = function beginLifeCycleTimer(debugID, timerType) {92 if (currentFlushNesting === 0) {93 return;94 }95 if (currentTimerType && !lifeCycleTimerHasWarned) {96 warning(false, 'There is an internal error in the React performance measurement code.' + '\n\nDid not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');97 lifeCycleTimerHasWarned = true;98 }99 currentTimerStartTime = performanceNow();100 currentTimerNestedFlushDuration = 0;101 currentTimerDebugID = debugID;102 currentTimerType = timerType;103 };104 var endLifeCycleTimer = function endLifeCycleTimer(debugID, timerType) {105 if (currentFlushNesting === 0) {106 return;107 }108 if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {109 warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');110 lifeCycleTimerHasWarned = true;111 }112 if (_isProfiling) {113 currentFlushMeasurements.push({114 timerType: timerType,115 instanceID: debugID,116 duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration117 });118 }119 currentTimerStartTime = 0;120 currentTimerNestedFlushDuration = 0;121 currentTimerDebugID = null;122 currentTimerType = null;123 };124 var pauseCurrentLifeCycleTimer = function pauseCurrentLifeCycleTimer() {125 var currentTimer = {126 startTime: currentTimerStartTime,127 nestedFlushStartTime: performanceNow(),128 debugID: currentTimerDebugID,129 timerType: currentTimerType130 };131 lifeCycleTimerStack.push(currentTimer);132 currentTimerStartTime = 0;133 currentTimerNestedFlushDuration = 0;134 currentTimerDebugID = null;135 currentTimerType = null;136 };137 var resumeCurrentLifeCycleTimer = function resumeCurrentLifeCycleTimer() {138 var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),139 startTime = _lifeCycleTimerStack$.startTime,140 nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,141 debugID = _lifeCycleTimerStack$.debugID,142 timerType = _lifeCycleTimerStack$.timerType;143 var nestedFlushDuration = performanceNow() - nestedFlushStartTime;144 currentTimerStartTime = startTime;145 currentTimerNestedFlushDuration += nestedFlushDuration;146 currentTimerDebugID = debugID;147 currentTimerType = timerType;148 };149 var lastMarkTimeStamp = 0;150 var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';151 var shouldMark = function shouldMark(debugID) {152 if (!_isProfiling || !canUsePerformanceMeasure) {153 return false;154 }155 var element = ReactComponentTreeHook.getElement(debugID);156 if (element == null || typeof element !== 'object') {157 return false;158 }159 var isHostElement = typeof element.type === 'string';160 if (isHostElement) {161 return false;162 }163 return true;164 };165 var markBegin = function markBegin(debugID, markType) {166 if (!shouldMark(debugID)) {167 return;168 }169 var markName = debugID + '::' + markType;170 lastMarkTimeStamp = performanceNow();171 performance.mark(markName);172 };173 var markEnd = function markEnd(debugID, markType) {174 if (!shouldMark(debugID)) {175 return;176 }177 var markName = debugID + '::' + markType;178 var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';179 var timeStamp = performanceNow();180 if (timeStamp - lastMarkTimeStamp > 0.1) {181 var measurementName = displayName + ' [' + markType + ']';182 performance.measure(measurementName, markName);183 }184 performance.clearMarks(markName);185 performance.clearMeasures(measurementName);186 };187 ReactDebugTool = {188 addHook: function addHook(hook) {189 hooks.push(hook);190 },191 removeHook: function removeHook(hook) {192 for (var i = 0; i < hooks.length; i++) {193 if (hooks[i] === hook) {194 hooks.splice(i, 1);195 i--;196 }197 }198 },199 isProfiling: function isProfiling() {200 return _isProfiling;201 },202 beginProfiling: function beginProfiling() {203 if (_isProfiling) {204 return;205 }206 _isProfiling = true;207 flushHistory.length = 0;208 resetMeasurements();209 ReactDebugTool.addHook(ReactHostOperationHistoryHook);210 },211 endProfiling: function endProfiling() {212 if (!_isProfiling) {213 return;214 }215 _isProfiling = false;216 resetMeasurements();217 ReactDebugTool.removeHook(ReactHostOperationHistoryHook);218 },219 getFlushHistory: function getFlushHistory() {220 return flushHistory;221 },222 onBeginFlush: function onBeginFlush() {223 currentFlushNesting++;224 resetMeasurements();225 pauseCurrentLifeCycleTimer();226 emitEvent('onBeginFlush');227 },228 onEndFlush: function onEndFlush() {229 resetMeasurements();230 currentFlushNesting--;231 resumeCurrentLifeCycleTimer();232 emitEvent('onEndFlush');233 },234 onBeginLifeCycleTimer: function onBeginLifeCycleTimer(debugID, timerType) {235 checkDebugID(debugID);236 emitEvent('onBeginLifeCycleTimer', debugID, timerType);237 markBegin(debugID, timerType);238 beginLifeCycleTimer(debugID, timerType);239 },240 onEndLifeCycleTimer: function onEndLifeCycleTimer(debugID, timerType) {241 checkDebugID(debugID);242 endLifeCycleTimer(debugID, timerType);243 markEnd(debugID, timerType);244 emitEvent('onEndLifeCycleTimer', debugID, timerType);245 },246 onBeginProcessingChildContext: function onBeginProcessingChildContext() {247 emitEvent('onBeginProcessingChildContext');248 },249 onEndProcessingChildContext: function onEndProcessingChildContext() {250 emitEvent('onEndProcessingChildContext');251 },252 onHostOperation: function onHostOperation(operation) {...
1b7731bcb216f3ddb5d71e317c587cfa499da9ReactDebugTool.js
Source: 1b7731bcb216f3ddb5d71e317c587cfa499da9ReactDebugTool.js
...87 if (!debugID) {88 warning(false, 'ReactDebugTool: debugID may not be empty.');89 }90 };91 var beginLifeCycleTimer = function beginLifeCycleTimer(debugID, timerType) {92 if (currentFlushNesting === 0) {93 return;94 }95 if (currentTimerType && !lifeCycleTimerHasWarned) {96 warning(false, 'There is an internal error in the React performance measurement code.' + '\n\nDid not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');97 lifeCycleTimerHasWarned = true;98 }99 currentTimerStartTime = performanceNow();100 currentTimerNestedFlushDuration = 0;101 currentTimerDebugID = debugID;102 currentTimerType = timerType;103 };104 var endLifeCycleTimer = function endLifeCycleTimer(debugID, timerType) {105 if (currentFlushNesting === 0) {106 return;107 }108 if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {109 warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');110 lifeCycleTimerHasWarned = true;111 }112 if (_isProfiling) {113 currentFlushMeasurements.push({114 timerType: timerType,115 instanceID: debugID,116 duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration117 });118 }119 currentTimerStartTime = 0;120 currentTimerNestedFlushDuration = 0;121 currentTimerDebugID = null;122 currentTimerType = null;123 };124 var pauseCurrentLifeCycleTimer = function pauseCurrentLifeCycleTimer() {125 var currentTimer = {126 startTime: currentTimerStartTime,127 nestedFlushStartTime: performanceNow(),128 debugID: currentTimerDebugID,129 timerType: currentTimerType130 };131 lifeCycleTimerStack.push(currentTimer);132 currentTimerStartTime = 0;133 currentTimerNestedFlushDuration = 0;134 currentTimerDebugID = null;135 currentTimerType = null;136 };137 var resumeCurrentLifeCycleTimer = function resumeCurrentLifeCycleTimer() {138 var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),139 startTime = _lifeCycleTimerStack$.startTime,140 nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,141 debugID = _lifeCycleTimerStack$.debugID,142 timerType = _lifeCycleTimerStack$.timerType;143 var nestedFlushDuration = performanceNow() - nestedFlushStartTime;144 currentTimerStartTime = startTime;145 currentTimerNestedFlushDuration += nestedFlushDuration;146 currentTimerDebugID = debugID;147 currentTimerType = timerType;148 };149 var lastMarkTimeStamp = 0;150 var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';151 var shouldMark = function shouldMark(debugID) {152 if (!_isProfiling || !canUsePerformanceMeasure) {153 return false;154 }155 var element = ReactComponentTreeHook.getElement(debugID);156 if (element == null || typeof element !== 'object') {157 return false;158 }159 var isHostElement = typeof element.type === 'string';160 if (isHostElement) {161 return false;162 }163 return true;164 };165 var markBegin = function markBegin(debugID, markType) {166 if (!shouldMark(debugID)) {167 return;168 }169 var markName = debugID + '::' + markType;170 lastMarkTimeStamp = performanceNow();171 performance.mark(markName);172 };173 var markEnd = function markEnd(debugID, markType) {174 if (!shouldMark(debugID)) {175 return;176 }177 var markName = debugID + '::' + markType;178 var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';179 var timeStamp = performanceNow();180 if (timeStamp - lastMarkTimeStamp > 0.1) {181 var measurementName = displayName + ' [' + markType + ']';182 performance.measure(measurementName, markName);183 }184 performance.clearMarks(markName);185 performance.clearMeasures(measurementName);186 };187 ReactDebugTool = {188 addHook: function addHook(hook) {189 hooks.push(hook);190 },191 removeHook: function removeHook(hook) {192 for (var i = 0; i < hooks.length; i++) {193 if (hooks[i] === hook) {194 hooks.splice(i, 1);195 i--;196 }197 }198 },199 isProfiling: function isProfiling() {200 return _isProfiling;201 },202 beginProfiling: function beginProfiling() {203 if (_isProfiling) {204 return;205 }206 _isProfiling = true;207 flushHistory.length = 0;208 resetMeasurements();209 ReactDebugTool.addHook(ReactHostOperationHistoryHook);210 },211 endProfiling: function endProfiling() {212 if (!_isProfiling) {213 return;214 }215 _isProfiling = false;216 resetMeasurements();217 ReactDebugTool.removeHook(ReactHostOperationHistoryHook);218 },219 getFlushHistory: function getFlushHistory() {220 return flushHistory;221 },222 onBeginFlush: function onBeginFlush() {223 currentFlushNesting++;224 resetMeasurements();225 pauseCurrentLifeCycleTimer();226 emitEvent('onBeginFlush');227 },228 onEndFlush: function onEndFlush() {229 resetMeasurements();230 currentFlushNesting--;231 resumeCurrentLifeCycleTimer();232 emitEvent('onEndFlush');233 },234 onBeginLifeCycleTimer: function onBeginLifeCycleTimer(debugID, timerType) {235 checkDebugID(debugID);236 emitEvent('onBeginLifeCycleTimer', debugID, timerType);237 markBegin(debugID, timerType);238 beginLifeCycleTimer(debugID, timerType);239 },240 onEndLifeCycleTimer: function onEndLifeCycleTimer(debugID, timerType) {241 checkDebugID(debugID);242 endLifeCycleTimer(debugID, timerType);243 markEnd(debugID, timerType);244 emitEvent('onEndLifeCycleTimer', debugID, timerType);245 },246 onBeginProcessingChildContext: function onBeginProcessingChildContext() {247 emitEvent('onBeginProcessingChildContext');248 },249 onEndProcessingChildContext: function onEndProcessingChildContext() {250 emitEvent('onEndProcessingChildContext');251 },252 onHostOperation: function onHostOperation(operation) {...
518d579a5f1532e0036361c4adc179618f6669ReactDebugTool.js
Source: 518d579a5f1532e0036361c4adc179618f6669ReactDebugTool.js
...87 if (!debugID) {88 warning(false, 'ReactDebugTool: debugID may not be empty.');89 }90 };91 var beginLifeCycleTimer = function beginLifeCycleTimer(debugID, timerType) {92 if (currentFlushNesting === 0) {93 return;94 }95 if (currentTimerType && !lifeCycleTimerHasWarned) {96 warning(false, 'There is an internal error in the React performance measurement code.' + '\n\nDid not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');97 lifeCycleTimerHasWarned = true;98 }99 currentTimerStartTime = performanceNow();100 currentTimerNestedFlushDuration = 0;101 currentTimerDebugID = debugID;102 currentTimerType = timerType;103 };104 var endLifeCycleTimer = function endLifeCycleTimer(debugID, timerType) {105 if (currentFlushNesting === 0) {106 return;107 }108 if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {109 warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');110 lifeCycleTimerHasWarned = true;111 }112 if (_isProfiling) {113 currentFlushMeasurements.push({114 timerType: timerType,115 instanceID: debugID,116 duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration117 });118 }119 currentTimerStartTime = 0;120 currentTimerNestedFlushDuration = 0;121 currentTimerDebugID = null;122 currentTimerType = null;123 };124 var pauseCurrentLifeCycleTimer = function pauseCurrentLifeCycleTimer() {125 var currentTimer = {126 startTime: currentTimerStartTime,127 nestedFlushStartTime: performanceNow(),128 debugID: currentTimerDebugID,129 timerType: currentTimerType130 };131 lifeCycleTimerStack.push(currentTimer);132 currentTimerStartTime = 0;133 currentTimerNestedFlushDuration = 0;134 currentTimerDebugID = null;135 currentTimerType = null;136 };137 var resumeCurrentLifeCycleTimer = function resumeCurrentLifeCycleTimer() {138 var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),139 startTime = _lifeCycleTimerStack$.startTime,140 nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,141 debugID = _lifeCycleTimerStack$.debugID,142 timerType = _lifeCycleTimerStack$.timerType;143 var nestedFlushDuration = performanceNow() - nestedFlushStartTime;144 currentTimerStartTime = startTime;145 currentTimerNestedFlushDuration += nestedFlushDuration;146 currentTimerDebugID = debugID;147 currentTimerType = timerType;148 };149 var lastMarkTimeStamp = 0;150 var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';151 var shouldMark = function shouldMark(debugID) {152 if (!_isProfiling || !canUsePerformanceMeasure) {153 return false;154 }155 var element = ReactComponentTreeHook.getElement(debugID);156 if (element == null || typeof element !== 'object') {157 return false;158 }159 var isHostElement = typeof element.type === 'string';160 if (isHostElement) {161 return false;162 }163 return true;164 };165 var markBegin = function markBegin(debugID, markType) {166 if (!shouldMark(debugID)) {167 return;168 }169 var markName = debugID + '::' + markType;170 lastMarkTimeStamp = performanceNow();171 performance.mark(markName);172 };173 var markEnd = function markEnd(debugID, markType) {174 if (!shouldMark(debugID)) {175 return;176 }177 var markName = debugID + '::' + markType;178 var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';179 var timeStamp = performanceNow();180 if (timeStamp - lastMarkTimeStamp > 0.1) {181 var measurementName = displayName + ' [' + markType + ']';182 performance.measure(measurementName, markName);183 }184 performance.clearMarks(markName);185 performance.clearMeasures(measurementName);186 };187 ReactDebugTool = {188 addHook: function addHook(hook) {189 hooks.push(hook);190 },191 removeHook: function removeHook(hook) {192 for (var i = 0; i < hooks.length; i++) {193 if (hooks[i] === hook) {194 hooks.splice(i, 1);195 i--;196 }197 }198 },199 isProfiling: function isProfiling() {200 return _isProfiling;201 },202 beginProfiling: function beginProfiling() {203 if (_isProfiling) {204 return;205 }206 _isProfiling = true;207 flushHistory.length = 0;208 resetMeasurements();209 ReactDebugTool.addHook(ReactHostOperationHistoryHook);210 },211 endProfiling: function endProfiling() {212 if (!_isProfiling) {213 return;214 }215 _isProfiling = false;216 resetMeasurements();217 ReactDebugTool.removeHook(ReactHostOperationHistoryHook);218 },219 getFlushHistory: function getFlushHistory() {220 return flushHistory;221 },222 onBeginFlush: function onBeginFlush() {223 currentFlushNesting++;224 resetMeasurements();225 pauseCurrentLifeCycleTimer();226 emitEvent('onBeginFlush');227 },228 onEndFlush: function onEndFlush() {229 resetMeasurements();230 currentFlushNesting--;231 resumeCurrentLifeCycleTimer();232 emitEvent('onEndFlush');233 },234 onBeginLifeCycleTimer: function onBeginLifeCycleTimer(debugID, timerType) {235 checkDebugID(debugID);236 emitEvent('onBeginLifeCycleTimer', debugID, timerType);237 markBegin(debugID, timerType);238 beginLifeCycleTimer(debugID, timerType);239 },240 onEndLifeCycleTimer: function onEndLifeCycleTimer(debugID, timerType) {241 checkDebugID(debugID);242 endLifeCycleTimer(debugID, timerType);243 markEnd(debugID, timerType);244 emitEvent('onEndLifeCycleTimer', debugID, timerType);245 },246 onBeginProcessingChildContext: function onBeginProcessingChildContext() {247 emitEvent('onBeginProcessingChildContext');248 },249 onEndProcessingChildContext: function onEndProcessingChildContext() {250 emitEvent('onEndProcessingChildContext');251 },252 onHostOperation: function onHostOperation(operation) {...
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 const browser = await playwright.webkit.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: 'example.png' });7 await browser.close();8})();
Using AI Code Generation
1const { chromium } = require('playwright');2const { beginLifeCycleTimer } = require('playwright/lib/server/supplements/recorder/recorderSupplement');3(async () => {4 const browser = await chromium.launch({headless: false});5 const context = await browser.newContext();6 const page = await context.newPage();7 const timer = beginLifeCycleTimer(page);8 await page.screenshot({ path: `screenshot.png` });9 await browser.close();10})();11const { chromium } = require('playwright');12const { beginLifeCycleTimer } = require('playwright/lib/server/supplements/recorder/recorderSupplement');13describe('Recorder', () => {14 it('should work', async () => {15 const browser = await chromium.launch({headless: false});16 const context = await browser.newContext();17 const page = await context.newPage();18 const timer = beginLifeCycleTimer(page);19 await page.screenshot({ path: `screenshot.png` });20 await browser.close();21 });22});
Using AI Code Generation
1const { beginLifeCycleTimer } = require('playwright-core/lib/server/trace/recorder');2const { endLifeCycleTimer } = require('playwright-core/lib/server/trace/recorder');3const { createLifeCycleTimer } = require('playwright-core/lib/server/trace/recorder');4const { getLifeCycleTimer } = require('playwright-core/lib/server/trace/recorder');5const { deleteLifeCycleTimer } = require('playwright-core/lib/server/trace/recorder');6const { getLifeCycleTimerData } = require('playwright-core/lib/server/trace/recorder');7const { getLifeCycleTimerData } = require('playwright-core/lib/server/trace/recorder');8const { getLifeCycleTimerData } = require('playwright-core/lib/server/trace/recorder');9const { getLifeCycleTimerData } = require('playwright-core/lib/server/trace/recorder');10const { getLifeCycleTimerData } = require('playwright-core/lib/server/trace/recorder');11const { getLifeCycleTimerData } = require('playwright-core/lib/server/trace/recorder');12const { getLifeCycleTimerData } = require('playwright-core/lib/server/trace/recorder');13const { getLifeCycleTimerData } = require('playwright-core/lib/server/trace/recorder');14const { getLifeCycleTimerData } = require('playwright-core/lib/server/trace/recorder');
Using AI Code Generation
1const { beginLifeCycleTimer } = require('playwright/lib/server/trace/recorder');2const { chromium } = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 beginLifeCycleTimer(page, 'name-of-timer');8 await browser.close();9})();10{11 {12 "args": {13 "data": {14 {15 }16 }17 }18 },19 {20 "args": {21 "data": {22 }23 }24 },25 {26 "args": {27 "data": {28 }29 }30 },31 {32 "args": {33 "data": {34 }
Using AI Code Generation
1const { beginLifeCycleTimer } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement.js');2const { LifeCycleEvent } = require('playwright-core/lib/server/supplements/recorder/lifecycleWatcher.js');3const { Page } = require('playwright-core/lib/client/page.js');4const { beginLifeCycleTimer } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement.js');5const { LifeCycleEvent } = require('playwright-core/lib/server/supplements/recorder/lifecycleWatcher.js');6const { Page } = require('playwright-core/lib/client/page.js');7const { beginLifeCycleTimer } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement.js');8const { LifeCycleEvent } = require('playwright-core/lib/server/supplements/recorder/lifecycleWatcher.js');9const { Page } = require('playwright-core/lib/client/page.js');10const { beginLifeCycleTimer } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement.js');11const { LifeCycleEvent } = require('playwright-core/lib/server/supplements/recorder/lifecycleWatcher.js');12const { Page } = require('playwright-core/lib/client/page.js');13const { beginLifeCycleTimer } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement.js');14const { LifeCycleEvent } = require('playwright-core/lib/server/supplements/recorder/lifecycleWatcher.js');15const { Page } = require('playwright-core/lib/client/page.js');16const { beginLifeCycleTimer } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement.js');17const { LifeCycleEvent } = require('playwright-core/lib/server/supplements/recorder/lifecycleWatcher.js');18const { Page } = require('playwright-core/lib/client/page.js');19const { beginLifeCycleTimer } = require('playwright-core/lib/server/sup
Using AI Code Generation
1const playwright = require('playwright');2const { beginLifeCycleTimer } = require('playwright/lib/utils/traceEvents');3(async () => {4 const browser = await playwright.chromium.launch();5 const context = await browser.newContext();6 await beginLifeCycleTimer(context, 'test');7 await browser.close();8})();9 at processTicksAndRejections (internal/process/task_queues.js:97:5)
Using AI Code Generation
1const { beginLifeCycleTimer } = require("playwright-core/lib/server/supplements/recorder/recorderSupplement");2const page = await browser.newPage();3await beginLifeCycleTimer(page);4const { stopLifeCycleTimer } = require("playwright-core/lib/server/supplements/recorder/recorderSupplement");5const page = await browser.newPage();6await stopLifeCycleTimer(page);7const { getLifeCycleEvents } = require("playwright-core/lib/server/supplements/recorder/recorderSupplement");8const page = await browser.newPage();9await getLifeCycleEvents(page);10const { getLifeCycleEvents } = require("playwright-core/lib/server/supplements/recorder/recorderSupplement");11const page = await browser.newPage();12await getLifeCycleEvents(page);13const { getLifeCycleEvents } = require("playwright-core/lib/server/supplements/recorder/recorderSupplement");14const page = await browser.newPage();15await getLifeCycleEvents(page);16const { getLifeCycleEvents } = require("playwright-core/lib/server/supplements/recorder/recorderSupplement");17const page = await browser.newPage();18await getLifeCycleEvents(page);19const { getLifeCycleEvents } = require("playwright-core/lib/server/supplements/recorder/recorderSupplement");20const page = await browser.newPage();21await getLifeCycleEvents(page);22const { getLifeCycleEvents } = require("playwright-core/lib/server/supplements/recorder/recorderSupplement");23const page = await browser.newPage();
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2const { beginLifeCycleTimer } = require('@playwright/test/lib/server/trace/recorder');3test('measure time taken for method to execute', async ({ page }) => {4 const timer = beginLifeCycleTimer('measure time taken for method to execute');5 timer.end();6 expect(timer.duration).toBeLessThan(5000);7});8 ✓ measure time taken for method to execute (3s)9 1 passed (3s)10 ✓ measure time taken for method to execute (3s)11 1 passed (3s)12{13 "stats": {
Using AI Code Generation
1const { beginLifeCycleTimer } = require('@playwright/test/lib/utils/lifecycleTimer');2const { chromium, webkit, firefox } = require('playwright');3const browser = await chromium.launch();4const context = await browser.newContext();5const page = await context.newPage();6const timer = beginLifeCycleTimer();7console.log(timer.duration());8await browser.close();
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!!