Best JavaScript code snippet using playwright-internal
b86761ReactPerf.js
Source:b86761ReactPerf.js
...149 }).sort(function (a, b) {150 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;151 });152}153function getWasted() {154 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();155 if (!__DEV__) {156 warnInProduction();157 return [];158 }159 var aggregatedStats = {};160 var affectedIDs = {};161 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {162 var _treeSnapshot$instanc2 = treeSnapshot[instanceID],163 displayName = _treeSnapshot$instanc2.displayName,164 ownerID = _treeSnapshot$instanc2.ownerID;165 var owner = treeSnapshot[ownerID];166 var key = (owner ? owner.displayName + ' > ' : '') + displayName;167 var stats = aggregatedStats[key];168 if (!stats) {169 affectedIDs[key] = {};170 stats = aggregatedStats[key] = {171 key: key,172 instanceCount: 0,173 inclusiveRenderDuration: 0,174 renderCount: 0175 };176 }177 affectedIDs[key][instanceID] = true;178 applyUpdate(stats);179 }180 flushHistory.forEach(function (flush) {181 var measurements = flush.measurements,182 treeSnapshot = flush.treeSnapshot,183 operations = flush.operations;184 var isDefinitelyNotWastedByID = {};185 operations.forEach(function (operation) {186 var instanceID = operation.instanceID;187 var nextParentID = instanceID;188 while (nextParentID) {189 isDefinitelyNotWastedByID[nextParentID] = true;190 nextParentID = treeSnapshot[nextParentID].parentID;191 }192 });193 var renderedCompositeIDs = {};194 measurements.forEach(function (measurement) {195 var instanceID = measurement.instanceID,196 timerType = measurement.timerType;197 if (timerType !== 'render') {198 return;199 }200 renderedCompositeIDs[instanceID] = true;201 });202 measurements.forEach(function (measurement) {203 var duration = measurement.duration,204 instanceID = measurement.instanceID,205 timerType = measurement.timerType;206 if (timerType !== 'render') {207 return;208 }209 var updateCount = treeSnapshot[instanceID].updateCount;210 if (isDefinitelyNotWastedByID[instanceID] || updateCount === 0) {211 return;212 }213 updateAggregatedStats(treeSnapshot, instanceID, function (stats) {214 stats.renderCount++;215 });216 var nextParentID = instanceID;217 while (nextParentID) {218 var isWasted = renderedCompositeIDs[nextParentID] && !isDefinitelyNotWastedByID[nextParentID];219 if (isWasted) {220 updateAggregatedStats(treeSnapshot, nextParentID, function (stats) {221 stats.inclusiveRenderDuration += duration;222 });223 }224 nextParentID = treeSnapshot[nextParentID].parentID;225 }226 });227 });228 return Object.keys(aggregatedStats).map(function (key) {229 return babelHelpers.extends({}, aggregatedStats[key], {230 instanceCount: Object.keys(affectedIDs[key]).length231 });232 }).sort(function (a, b) {233 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;234 });235}236function getOperations() {237 var flushHistory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getLastMeasurements();238 if (!__DEV__) {239 warnInProduction();240 return [];241 }242 var stats = [];243 flushHistory.forEach(function (flush, flushIndex) {244 var operations = flush.operations,245 treeSnapshot = flush.treeSnapshot;246 operations.forEach(function (operation) {247 var instanceID = operation.instanceID,248 type = operation.type,249 payload = operation.payload;250 var _treeSnapshot$instanc3 = treeSnapshot[instanceID],251 displayName = _treeSnapshot$instanc3.displayName,252 ownerID = _treeSnapshot$instanc3.ownerID;253 var owner = treeSnapshot[ownerID];254 var key = (owner ? owner.displayName + ' > ' : '') + displayName;255 stats.push({256 flushIndex: flushIndex,257 instanceID: instanceID,258 key: key,259 type: type,260 ownerID: ownerID,261 payload: payload262 });263 });264 });265 return stats;266}267function printExclusive(flushHistory) {268 if (!__DEV__) {269 warnInProduction();270 return;271 }272 var stats = getExclusive(flushHistory);273 var table = stats.map(function (item) {274 var key = item.key,275 instanceCount = item.instanceCount,276 totalDuration = item.totalDuration;277 var renderCount = item.counts.render || 0;278 var renderDuration = item.durations.render || 0;279 return {280 'Component': key,281 'Total time (ms)': roundFloat(totalDuration),282 'Instance count': instanceCount,283 'Total render time (ms)': roundFloat(renderDuration),284 'Average render time (ms)': renderCount ? roundFloat(renderDuration / renderCount) : undefined,285 'Render count': renderCount,286 'Total lifecycle time (ms)': roundFloat(totalDuration - renderDuration)287 };288 });289 consoleTable(table);290}291function printInclusive(flushHistory) {292 if (!__DEV__) {293 warnInProduction();294 return;295 }296 var stats = getInclusive(flushHistory);297 var table = stats.map(function (item) {298 var key = item.key,299 instanceCount = item.instanceCount,300 inclusiveRenderDuration = item.inclusiveRenderDuration,301 renderCount = item.renderCount;302 return {303 'Owner > Component': key,304 'Inclusive render time (ms)': roundFloat(inclusiveRenderDuration),305 'Instance count': instanceCount,306 'Render count': renderCount307 };308 });309 consoleTable(table);310}311function printWasted(flushHistory) {312 if (!__DEV__) {313 warnInProduction();314 return;315 }316 var stats = getWasted(flushHistory);317 var table = stats.map(function (item) {318 var key = item.key,319 instanceCount = item.instanceCount,320 inclusiveRenderDuration = item.inclusiveRenderDuration,321 renderCount = item.renderCount;322 return {323 'Owner > Component': key,324 'Inclusive wasted time (ms)': roundFloat(inclusiveRenderDuration),325 'Instance count': instanceCount,326 'Render count': renderCount327 };328 });329 consoleTable(table);330}331function printOperations(flushHistory) {332 if (!__DEV__) {333 warnInProduction();334 return;335 }336 var stats = getOperations(flushHistory);337 var table = stats.map(function (stat) {338 return {339 'Owner > Node': stat.key,340 'Operation': stat.type,341 'Payload': typeof stat.payload === 'object' ? JSON.stringify(stat.payload) : stat.payload,342 'Flush index': stat.flushIndex,343 'Owner Component ID': stat.ownerID,344 'DOM Component ID': stat.instanceID345 };346 });347 consoleTable(table);348}349var warnedAboutPrintDOM = false;350function printDOM(measurements) {351 warning(warnedAboutPrintDOM, '`ReactPerf.printDOM(...)` is deprecated. Use ' + '`ReactPerf.printOperations(...)` instead.');352 warnedAboutPrintDOM = true;353 return printOperations(measurements);354}355var warnedAboutGetMeasurementsSummaryMap = false;356function getMeasurementsSummaryMap(measurements) {357 warning(warnedAboutGetMeasurementsSummaryMap, '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' + '`ReactPerf.getWasted(...)` instead.');358 warnedAboutGetMeasurementsSummaryMap = true;359 return getWasted(measurements);360}361function start() {362 if (!__DEV__) {363 warnInProduction();364 return;365 }366 ReactDebugTool.beginProfiling();367}368function stop() {369 if (!__DEV__) {370 warnInProduction();371 return;372 }373 ReactDebugTool.endProfiling();...
ReactPerf.js
Source:ReactPerf.js
...134 }).sort(function(a, b) {135 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;136 });137 }138 function getWasted() {139 var flushHistory = arguments.length <= 0 || arguments[0] === undefined ? getFlushHistory() : arguments[0];140 var aggregatedStats = {};141 var affectedIDs = {};142 function updateAggregatedStats(treeSnapshot, instanceID, applyUpdate) {143 var _treeSnapshot$instanc2 = treeSnapshot[instanceID];144 var displayName = _treeSnapshot$instanc2.displayName;145 var ownerID = _treeSnapshot$instanc2.ownerID;146 var owner = treeSnapshot[ownerID];147 var key = (owner ? owner.displayName + ' > ' : '') + displayName;148 var stats = aggregatedStats[key];149 if (!stats) {150 affectedIDs[key] = {};151 stats = aggregatedStats[key] = {152 key: key,153 instanceCount: 0,154 inclusiveRenderDuration: 0,155 renderCount: 0156 };157 }158 affectedIDs[key][instanceID] = true;159 applyUpdate(stats);160 }161 flushHistory.forEach(function(flush) {162 var measurements = flush.measurements;163 var treeSnapshot = flush.treeSnapshot;164 var operations = flush.operations;165 var isDefinitelyNotWastedByID = {};166 operations.forEach(function(operation) {167 var instanceID = operation.instanceID;168 var nextParentID = instanceID;169 while (nextParentID) {170 isDefinitelyNotWastedByID[nextParentID] = true;171 nextParentID = treeSnapshot[nextParentID].parentID;172 }173 });174 var renderedCompositeIDs = {};175 measurements.forEach(function(measurement) {176 var instanceID = measurement.instanceID;177 var timerType = measurement.timerType;178 if (timerType !== 'render') {179 return;180 }181 renderedCompositeIDs[instanceID] = true;182 });183 measurements.forEach(function(measurement) {184 var duration = measurement.duration;185 var instanceID = measurement.instanceID;186 var timerType = measurement.timerType;187 if (timerType !== 'render') {188 return;189 }190 var updateCount = treeSnapshot[instanceID].updateCount;191 if (isDefinitelyNotWastedByID[instanceID] || updateCount === 0) {192 return;193 }194 updateAggregatedStats(treeSnapshot, instanceID, function(stats) {195 stats.renderCount++;196 });197 var nextParentID = instanceID;198 while (nextParentID) {199 var isWasted = renderedCompositeIDs[nextParentID] && !isDefinitelyNotWastedByID[nextParentID];200 if (isWasted) {201 updateAggregatedStats(treeSnapshot, nextParentID, function(stats) {202 stats.inclusiveRenderDuration += duration;203 });204 }205 nextParentID = treeSnapshot[nextParentID].parentID;206 }207 });208 });209 return Object.keys(aggregatedStats).map(function(key) {210 return _extends({}, aggregatedStats[key], {instanceCount: Object.keys(affectedIDs[key]).length});211 }).sort(function(a, b) {212 return b.inclusiveRenderDuration - a.inclusiveRenderDuration;213 });214 }215 function getOperations() {216 var flushHistory = arguments.length <= 0 || arguments[0] === undefined ? getFlushHistory() : arguments[0];217 var stats = [];218 flushHistory.forEach(function(flush, flushIndex) {219 var operations = flush.operations;220 var treeSnapshot = flush.treeSnapshot;221 operations.forEach(function(operation) {222 var instanceID = operation.instanceID;223 var type = operation.type;224 var payload = operation.payload;225 var _treeSnapshot$instanc3 = treeSnapshot[instanceID];226 var displayName = _treeSnapshot$instanc3.displayName;227 var ownerID = _treeSnapshot$instanc3.ownerID;228 var owner = treeSnapshot[ownerID];229 var key = (owner ? owner.displayName + ' > ' : '') + displayName;230 stats.push({231 flushIndex: flushIndex,232 instanceID: instanceID,233 key: key,234 type: type,235 ownerID: ownerID,236 payload: payload237 });238 });239 });240 return stats;241 }242 function printExclusive(flushHistory) {243 var stats = getExclusive(flushHistory);244 var table = stats.map(function(item) {245 var key = item.key;246 var instanceCount = item.instanceCount;247 var totalDuration = item.totalDuration;248 var renderCount = item.counts.render || 0;249 var renderDuration = item.durations.render || 0;250 return {251 'Component': key,252 'Total time (ms)': roundFloat(totalDuration),253 'Instance count': instanceCount,254 'Total render time (ms)': roundFloat(renderDuration),255 'Average render time (ms)': renderCount ? roundFloat(renderDuration / renderCount) : undefined,256 'Render count': renderCount,257 'Total lifecycle time (ms)': roundFloat(totalDuration - renderDuration)258 };259 });260 console.table(table);261 }262 function printInclusive(flushHistory) {263 var stats = getInclusive(flushHistory);264 var table = stats.map(function(item) {265 var key = item.key;266 var instanceCount = item.instanceCount;267 var inclusiveRenderDuration = item.inclusiveRenderDuration;268 var renderCount = item.renderCount;269 return {270 'Owner > Component': key,271 'Inclusive render time (ms)': roundFloat(inclusiveRenderDuration),272 'Instance count': instanceCount,273 'Render count': renderCount274 };275 });276 console.table(table);277 }278 function printWasted(flushHistory) {279 var stats = getWasted(flushHistory);280 var table = stats.map(function(item) {281 var key = item.key;282 var instanceCount = item.instanceCount;283 var inclusiveRenderDuration = item.inclusiveRenderDuration;284 var renderCount = item.renderCount;285 return {286 'Owner > Component': key,287 'Inclusive wasted time (ms)': roundFloat(inclusiveRenderDuration),288 'Instance count': instanceCount,289 'Render count': renderCount290 };291 });292 console.table(table);293 }294 function printOperations(flushHistory) {295 var stats = getOperations(flushHistory);296 var table = stats.map(function(stat) {297 return {298 'Owner > Node': stat.key,299 'Operation': stat.type,300 'Payload': typeof stat.payload === 'object' ? JSON.stringify(stat.payload) : stat.payload,301 'Flush index': stat.flushIndex,302 'Owner Component ID': stat.ownerID,303 'DOM Component ID': stat.instanceID304 };305 });306 console.table(table);307 }308 var warnedAboutPrintDOM = false;309 function printDOM(measurements) {310 process.env.NODE_ENV !== 'production' ? warning(warnedAboutPrintDOM, '`ReactPerf.printDOM(...)` is deprecated. Use ' + '`ReactPerf.printOperations(...)` instead.') : void 0;311 warnedAboutPrintDOM = true;312 return printOperations(measurements);313 }314 var warnedAboutGetMeasurementsSummaryMap = false;315 function getMeasurementsSummaryMap(measurements) {316 process.env.NODE_ENV !== 'production' ? warning(warnedAboutGetMeasurementsSummaryMap, '`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use ' + '`ReactPerf.getWasted(...)` instead.') : void 0;317 warnedAboutGetMeasurementsSummaryMap = true;318 return getWasted(measurements);319 }320 function start() {321 ReactDebugTool.beginProfiling();322 }323 function stop() {324 ReactDebugTool.endProfiling();325 }326 var ReactPerfAnalysis = {327 getLastMeasurements: getFlushHistory,328 getExclusive: getExclusive,329 getInclusive: getInclusive,330 getWasted: getWasted,331 getOperations: getOperations,332 printExclusive: printExclusive,...
fa18fcReactPerf.js
Source:fa18fcReactPerf.js
...135instanceCount:Object.keys(affectedIDs[key]).length});}).136sort(function(a,b){return(137b.inclusiveRenderDuration-a.inclusiveRenderDuration);});138}139function getWasted(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();140if(!__DEV__){141warnInProduction();142return[];143}144var aggregatedStats={};145var affectedIDs={};146function updateAggregatedStats(treeSnapshot,instanceID,applyUpdate){var _treeSnapshot$instanc2=147treeSnapshot[instanceID],displayName=_treeSnapshot$instanc2.displayName,ownerID=_treeSnapshot$instanc2.ownerID;148var owner=treeSnapshot[ownerID];149var key=(owner?owner.displayName+' > ':'')+displayName;150var stats=aggregatedStats[key];151if(!stats){152affectedIDs[key]={};153stats=aggregatedStats[key]={154key:key,155instanceCount:0,156inclusiveRenderDuration:0,157renderCount:0};158}159affectedIDs[key][instanceID]=true;160applyUpdate(stats);161}162flushHistory.forEach(function(flush){var163measurements=flush.measurements,treeSnapshot=flush.treeSnapshot,operations=flush.operations;164var isDefinitelyNotWastedByID={};165operations.forEach(function(operation){var166instanceID=operation.instanceID;167var nextParentID=instanceID;168while(nextParentID){169isDefinitelyNotWastedByID[nextParentID]=true;170nextParentID=treeSnapshot[nextParentID].parentID;171}172});173var renderedCompositeIDs={};174measurements.forEach(function(measurement){var175instanceID=measurement.instanceID,timerType=measurement.timerType;176if(timerType!=='render'){177return;178}179renderedCompositeIDs[instanceID]=true;180});181measurements.forEach(function(measurement){var182duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;183if(timerType!=='render'){184return;185}var186updateCount=treeSnapshot[instanceID].updateCount;187if(isDefinitelyNotWastedByID[instanceID]||updateCount===0){188return;189}190updateAggregatedStats(treeSnapshot,instanceID,function(stats){191stats.renderCount++;192});193var nextParentID=instanceID;194while(nextParentID){195var isWasted=196renderedCompositeIDs[nextParentID]&&197!isDefinitelyNotWastedByID[nextParentID];198if(isWasted){199updateAggregatedStats(treeSnapshot,nextParentID,function(stats){200stats.inclusiveRenderDuration+=duration;201});202}203nextParentID=treeSnapshot[nextParentID].parentID;204}205});206});207return Object.keys(aggregatedStats).208map(function(key){return _extends({},209aggregatedStats[key],{210instanceCount:Object.keys(affectedIDs[key]).length});}).211sort(function(a,b){return(212b.inclusiveRenderDuration-a.inclusiveRenderDuration);});213}214function getOperations(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();215if(!__DEV__){216warnInProduction();217return[];218}219var stats=[];220flushHistory.forEach(function(flush,flushIndex){var221operations=flush.operations,treeSnapshot=flush.treeSnapshot;222operations.forEach(function(operation){var223instanceID=operation.instanceID,type=operation.type,payload=operation.payload;var _treeSnapshot$instanc3=224treeSnapshot[instanceID],displayName=_treeSnapshot$instanc3.displayName,ownerID=_treeSnapshot$instanc3.ownerID;225var owner=treeSnapshot[ownerID];226var key=(owner?owner.displayName+' > ':'')+displayName;227stats.push({228flushIndex:flushIndex,229instanceID:instanceID,230key:key,231type:type,232ownerID:ownerID,233payload:payload});234});235});236return stats;237}238function printExclusive(flushHistory){239if(!__DEV__){240warnInProduction();241return;242}243var stats=getExclusive(flushHistory);244var table=stats.map(function(item){var245key=item.key,instanceCount=item.instanceCount,totalDuration=item.totalDuration;246var renderCount=item.counts.render||0;247var renderDuration=item.durations.render||0;248return{249'Component':key,250'Total time (ms)':roundFloat(totalDuration),251'Instance count':instanceCount,252'Total render time (ms)':roundFloat(renderDuration),253'Average render time (ms)':renderCount?254roundFloat(renderDuration/renderCount):255undefined,256'Render count':renderCount,257'Total lifecycle time (ms)':roundFloat(totalDuration-renderDuration)};258});259consoleTable(table);260}261function printInclusive(flushHistory){262if(!__DEV__){263warnInProduction();264return;265}266var stats=getInclusive(flushHistory);267var table=stats.map(function(item){var268key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;269return{270'Owner > Component':key,271'Inclusive render time (ms)':roundFloat(inclusiveRenderDuration),272'Instance count':instanceCount,273'Render count':renderCount};274});275consoleTable(table);276}277function printWasted(flushHistory){278if(!__DEV__){279warnInProduction();280return;281}282var stats=getWasted(flushHistory);283var table=stats.map(function(item){var284key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;285return{286'Owner > Component':key,287'Inclusive wasted time (ms)':roundFloat(inclusiveRenderDuration),288'Instance count':instanceCount,289'Render count':renderCount};290});291consoleTable(table);292}293function printOperations(flushHistory){294if(!__DEV__){295warnInProduction();296return;297}298var stats=getOperations(flushHistory);299var table=stats.map(function(stat){return{300'Owner > Node':stat.key,301'Operation':stat.type,302'Payload':typeof stat.payload==='object'?303JSON.stringify(stat.payload):304stat.payload,305'Flush index':stat.flushIndex,306'Owner Component ID':stat.ownerID,307'DOM Component ID':stat.instanceID};});308consoleTable(table);309}310var warnedAboutPrintDOM=false;311function printDOM(measurements){312warning(313warnedAboutPrintDOM,314'`ReactPerf.printDOM(...)` is deprecated. Use '+315'`ReactPerf.printOperations(...)` instead.');316warnedAboutPrintDOM=true;317return printOperations(measurements);318}319var warnedAboutGetMeasurementsSummaryMap=false;320function getMeasurementsSummaryMap(measurements){321warning(322warnedAboutGetMeasurementsSummaryMap,323'`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use '+324'`ReactPerf.getWasted(...)` instead.');325warnedAboutGetMeasurementsSummaryMap=true;326return getWasted(measurements);327}328function start(){329if(!__DEV__){330warnInProduction();331return;332}333ReactDebugTool.beginProfiling();334}335function stop(){336if(!__DEV__){337warnInProduction();338return;339}340ReactDebugTool.endProfiling();...
e3040dReactPerf.js
Source:e3040dReactPerf.js
...135instanceCount:Object.keys(affectedIDs[key]).length});}).136sort(function(a,b){return(137b.inclusiveRenderDuration-a.inclusiveRenderDuration);});138}139function getWasted(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();140if(!__DEV__){141warnInProduction();142return[];143}144var aggregatedStats={};145var affectedIDs={};146function updateAggregatedStats(treeSnapshot,instanceID,applyUpdate){var _treeSnapshot$instanc2=147treeSnapshot[instanceID],displayName=_treeSnapshot$instanc2.displayName,ownerID=_treeSnapshot$instanc2.ownerID;148var owner=treeSnapshot[ownerID];149var key=(owner?owner.displayName+' > ':'')+displayName;150var stats=aggregatedStats[key];151if(!stats){152affectedIDs[key]={};153stats=aggregatedStats[key]={154key:key,155instanceCount:0,156inclusiveRenderDuration:0,157renderCount:0};158}159affectedIDs[key][instanceID]=true;160applyUpdate(stats);161}162flushHistory.forEach(function(flush){var163measurements=flush.measurements,treeSnapshot=flush.treeSnapshot,operations=flush.operations;164var isDefinitelyNotWastedByID={};165operations.forEach(function(operation){var166instanceID=operation.instanceID;167var nextParentID=instanceID;168while(nextParentID){169isDefinitelyNotWastedByID[nextParentID]=true;170nextParentID=treeSnapshot[nextParentID].parentID;171}172});173var renderedCompositeIDs={};174measurements.forEach(function(measurement){var175instanceID=measurement.instanceID,timerType=measurement.timerType;176if(timerType!=='render'){177return;178}179renderedCompositeIDs[instanceID]=true;180});181measurements.forEach(function(measurement){var182duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;183if(timerType!=='render'){184return;185}var186updateCount=treeSnapshot[instanceID].updateCount;187if(isDefinitelyNotWastedByID[instanceID]||updateCount===0){188return;189}190updateAggregatedStats(treeSnapshot,instanceID,function(stats){191stats.renderCount++;192});193var nextParentID=instanceID;194while(nextParentID){195var isWasted=196renderedCompositeIDs[nextParentID]&&197!isDefinitelyNotWastedByID[nextParentID];198if(isWasted){199updateAggregatedStats(treeSnapshot,nextParentID,function(stats){200stats.inclusiveRenderDuration+=duration;201});202}203nextParentID=treeSnapshot[nextParentID].parentID;204}205});206});207return Object.keys(aggregatedStats).208map(function(key){return babelHelpers.extends({},209aggregatedStats[key],{210instanceCount:Object.keys(affectedIDs[key]).length});}).211sort(function(a,b){return(212b.inclusiveRenderDuration-a.inclusiveRenderDuration);});213}214function getOperations(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();215if(!__DEV__){216warnInProduction();217return[];218}219var stats=[];220flushHistory.forEach(function(flush,flushIndex){var221operations=flush.operations,treeSnapshot=flush.treeSnapshot;222operations.forEach(function(operation){var223instanceID=operation.instanceID,type=operation.type,payload=operation.payload;var _treeSnapshot$instanc3=224treeSnapshot[instanceID],displayName=_treeSnapshot$instanc3.displayName,ownerID=_treeSnapshot$instanc3.ownerID;225var owner=treeSnapshot[ownerID];226var key=(owner?owner.displayName+' > ':'')+displayName;227stats.push({228flushIndex:flushIndex,229instanceID:instanceID,230key:key,231type:type,232ownerID:ownerID,233payload:payload});234});235});236return stats;237}238function printExclusive(flushHistory){239if(!__DEV__){240warnInProduction();241return;242}243var stats=getExclusive(flushHistory);244var table=stats.map(function(item){var245key=item.key,instanceCount=item.instanceCount,totalDuration=item.totalDuration;246var renderCount=item.counts.render||0;247var renderDuration=item.durations.render||0;248return{249'Component':key,250'Total time (ms)':roundFloat(totalDuration),251'Instance count':instanceCount,252'Total render time (ms)':roundFloat(renderDuration),253'Average render time (ms)':renderCount?254roundFloat(renderDuration/renderCount):255undefined,256'Render count':renderCount,257'Total lifecycle time (ms)':roundFloat(totalDuration-renderDuration)};258});259consoleTable(table);260}261function printInclusive(flushHistory){262if(!__DEV__){263warnInProduction();264return;265}266var stats=getInclusive(flushHistory);267var table=stats.map(function(item){var268key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;269return{270'Owner > Component':key,271'Inclusive render time (ms)':roundFloat(inclusiveRenderDuration),272'Instance count':instanceCount,273'Render count':renderCount};274});275consoleTable(table);276}277function printWasted(flushHistory){278if(!__DEV__){279warnInProduction();280return;281}282var stats=getWasted(flushHistory);283var table=stats.map(function(item){var284key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;285return{286'Owner > Component':key,287'Inclusive wasted time (ms)':roundFloat(inclusiveRenderDuration),288'Instance count':instanceCount,289'Render count':renderCount};290});291consoleTable(table);292}293function printOperations(flushHistory){294if(!__DEV__){295warnInProduction();296return;297}298var stats=getOperations(flushHistory);299var table=stats.map(function(stat){return{300'Owner > Node':stat.key,301'Operation':stat.type,302'Payload':typeof stat.payload==='object'?303JSON.stringify(stat.payload):304stat.payload,305'Flush index':stat.flushIndex,306'Owner Component ID':stat.ownerID,307'DOM Component ID':stat.instanceID};});308consoleTable(table);309}310var warnedAboutPrintDOM=false;311function printDOM(measurements){312warning(313warnedAboutPrintDOM,314'`ReactPerf.printDOM(...)` is deprecated. Use '+315'`ReactPerf.printOperations(...)` instead.');316warnedAboutPrintDOM=true;317return printOperations(measurements);318}319var warnedAboutGetMeasurementsSummaryMap=false;320function getMeasurementsSummaryMap(measurements){321warning(322warnedAboutGetMeasurementsSummaryMap,323'`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use '+324'`ReactPerf.getWasted(...)` instead.');325warnedAboutGetMeasurementsSummaryMap=true;326return getWasted(measurements);327}328function start(){329if(!__DEV__){330warnInProduction();331return;332}333ReactDebugTool.beginProfiling();334}335function stop(){336if(!__DEV__){337warnInProduction();338return;339}340ReactDebugTool.endProfiling();...
2959baReactPerf.js
Source:2959baReactPerf.js
...135instanceCount:Object.keys(affectedIDs[key]).length});}).136sort(function(a,b){return(137b.inclusiveRenderDuration-a.inclusiveRenderDuration);});138}139function getWasted(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();140if(!__DEV__){141warnInProduction();142return[];143}144var aggregatedStats={};145var affectedIDs={};146function updateAggregatedStats(treeSnapshot,instanceID,applyUpdate){var _treeSnapshot$instanc2=147treeSnapshot[instanceID],displayName=_treeSnapshot$instanc2.displayName,ownerID=_treeSnapshot$instanc2.ownerID;148var owner=treeSnapshot[ownerID];149var key=(owner?owner.displayName+' > ':'')+displayName;150var stats=aggregatedStats[key];151if(!stats){152affectedIDs[key]={};153stats=aggregatedStats[key]={154key:key,155instanceCount:0,156inclusiveRenderDuration:0,157renderCount:0};158}159affectedIDs[key][instanceID]=true;160applyUpdate(stats);161}162flushHistory.forEach(function(flush){var163measurements=flush.measurements,treeSnapshot=flush.treeSnapshot,operations=flush.operations;164var isDefinitelyNotWastedByID={};165operations.forEach(function(operation){var166instanceID=operation.instanceID;167var nextParentID=instanceID;168while(nextParentID){169isDefinitelyNotWastedByID[nextParentID]=true;170nextParentID=treeSnapshot[nextParentID].parentID;171}172});173var renderedCompositeIDs={};174measurements.forEach(function(measurement){var175instanceID=measurement.instanceID,timerType=measurement.timerType;176if(timerType!=='render'){177return;178}179renderedCompositeIDs[instanceID]=true;180});181measurements.forEach(function(measurement){var182duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;183if(timerType!=='render'){184return;185}var186updateCount=treeSnapshot[instanceID].updateCount;187if(isDefinitelyNotWastedByID[instanceID]||updateCount===0){188return;189}190updateAggregatedStats(treeSnapshot,instanceID,function(stats){191stats.renderCount++;192});193var nextParentID=instanceID;194while(nextParentID){195var isWasted=196renderedCompositeIDs[nextParentID]&&197!isDefinitelyNotWastedByID[nextParentID];198if(isWasted){199updateAggregatedStats(treeSnapshot,nextParentID,function(stats){200stats.inclusiveRenderDuration+=duration;201});202}203nextParentID=treeSnapshot[nextParentID].parentID;204}205});206});207return Object.keys(aggregatedStats).208map(function(key){return babelHelpers.extends({},209aggregatedStats[key],{210instanceCount:Object.keys(affectedIDs[key]).length});}).211sort(function(a,b){return(212b.inclusiveRenderDuration-a.inclusiveRenderDuration);});213}214function getOperations(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();215if(!__DEV__){216warnInProduction();217return[];218}219var stats=[];220flushHistory.forEach(function(flush,flushIndex){var221operations=flush.operations,treeSnapshot=flush.treeSnapshot;222operations.forEach(function(operation){var223instanceID=operation.instanceID,type=operation.type,payload=operation.payload;var _treeSnapshot$instanc3=224treeSnapshot[instanceID],displayName=_treeSnapshot$instanc3.displayName,ownerID=_treeSnapshot$instanc3.ownerID;225var owner=treeSnapshot[ownerID];226var key=(owner?owner.displayName+' > ':'')+displayName;227stats.push({228flushIndex:flushIndex,229instanceID:instanceID,230key:key,231type:type,232ownerID:ownerID,233payload:payload});234});235});236return stats;237}238function printExclusive(flushHistory){239if(!__DEV__){240warnInProduction();241return;242}243var stats=getExclusive(flushHistory);244var table=stats.map(function(item){var245key=item.key,instanceCount=item.instanceCount,totalDuration=item.totalDuration;246var renderCount=item.counts.render||0;247var renderDuration=item.durations.render||0;248return{249'Component':key,250'Total time (ms)':roundFloat(totalDuration),251'Instance count':instanceCount,252'Total render time (ms)':roundFloat(renderDuration),253'Average render time (ms)':renderCount?254roundFloat(renderDuration/renderCount):255undefined,256'Render count':renderCount,257'Total lifecycle time (ms)':roundFloat(totalDuration-renderDuration)};258});259consoleTable(table);260}261function printInclusive(flushHistory){262if(!__DEV__){263warnInProduction();264return;265}266var stats=getInclusive(flushHistory);267var table=stats.map(function(item){var268key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;269return{270'Owner > Component':key,271'Inclusive render time (ms)':roundFloat(inclusiveRenderDuration),272'Instance count':instanceCount,273'Render count':renderCount};274});275consoleTable(table);276}277function printWasted(flushHistory){278if(!__DEV__){279warnInProduction();280return;281}282var stats=getWasted(flushHistory);283var table=stats.map(function(item){var284key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;285return{286'Owner > Component':key,287'Inclusive wasted time (ms)':roundFloat(inclusiveRenderDuration),288'Instance count':instanceCount,289'Render count':renderCount};290});291consoleTable(table);292}293function printOperations(flushHistory){294if(!__DEV__){295warnInProduction();296return;297}298var stats=getOperations(flushHistory);299var table=stats.map(function(stat){return{300'Owner > Node':stat.key,301'Operation':stat.type,302'Payload':typeof stat.payload==='object'?303JSON.stringify(stat.payload):304stat.payload,305'Flush index':stat.flushIndex,306'Owner Component ID':stat.ownerID,307'DOM Component ID':stat.instanceID};});308consoleTable(table);309}310var warnedAboutPrintDOM=false;311function printDOM(measurements){312warning(313warnedAboutPrintDOM,314'`ReactPerf.printDOM(...)` is deprecated. Use '+315'`ReactPerf.printOperations(...)` instead.');316warnedAboutPrintDOM=true;317return printOperations(measurements);318}319var warnedAboutGetMeasurementsSummaryMap=false;320function getMeasurementsSummaryMap(measurements){321warning(322warnedAboutGetMeasurementsSummaryMap,323'`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use '+324'`ReactPerf.getWasted(...)` instead.');325warnedAboutGetMeasurementsSummaryMap=true;326return getWasted(measurements);327}328function start(){329if(!__DEV__){330warnInProduction();331return;332}333ReactDebugTool.beginProfiling();334}335function stop(){336if(!__DEV__){337warnInProduction();338return;339}340ReactDebugTool.endProfiling();...
711832ReactPerf.js
Source:711832ReactPerf.js
...135instanceCount:Object.keys(affectedIDs[key]).length});}).136sort(function(a,b){return(137b.inclusiveRenderDuration-a.inclusiveRenderDuration);});138}139function getWasted(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();140if(!__DEV__){141warnInProduction();142return[];143}144var aggregatedStats={};145var affectedIDs={};146function updateAggregatedStats(treeSnapshot,instanceID,applyUpdate){var _treeSnapshot$instanc2=147treeSnapshot[instanceID],displayName=_treeSnapshot$instanc2.displayName,ownerID=_treeSnapshot$instanc2.ownerID;148var owner=treeSnapshot[ownerID];149var key=(owner?owner.displayName+' > ':'')+displayName;150var stats=aggregatedStats[key];151if(!stats){152affectedIDs[key]={};153stats=aggregatedStats[key]={154key:key,155instanceCount:0,156inclusiveRenderDuration:0,157renderCount:0};158}159affectedIDs[key][instanceID]=true;160applyUpdate(stats);161}162flushHistory.forEach(function(flush){var163measurements=flush.measurements,treeSnapshot=flush.treeSnapshot,operations=flush.operations;164var isDefinitelyNotWastedByID={};165operations.forEach(function(operation){var166instanceID=operation.instanceID;167var nextParentID=instanceID;168while(nextParentID){169isDefinitelyNotWastedByID[nextParentID]=true;170nextParentID=treeSnapshot[nextParentID].parentID;171}172});173var renderedCompositeIDs={};174measurements.forEach(function(measurement){var175instanceID=measurement.instanceID,timerType=measurement.timerType;176if(timerType!=='render'){177return;178}179renderedCompositeIDs[instanceID]=true;180});181measurements.forEach(function(measurement){var182duration=measurement.duration,instanceID=measurement.instanceID,timerType=measurement.timerType;183if(timerType!=='render'){184return;185}var186updateCount=treeSnapshot[instanceID].updateCount;187if(isDefinitelyNotWastedByID[instanceID]||updateCount===0){188return;189}190updateAggregatedStats(treeSnapshot,instanceID,function(stats){191stats.renderCount++;192});193var nextParentID=instanceID;194while(nextParentID){195var isWasted=196renderedCompositeIDs[nextParentID]&&197!isDefinitelyNotWastedByID[nextParentID];198if(isWasted){199updateAggregatedStats(treeSnapshot,nextParentID,function(stats){200stats.inclusiveRenderDuration+=duration;201});202}203nextParentID=treeSnapshot[nextParentID].parentID;204}205});206});207return Object.keys(aggregatedStats).208map(function(key){return babelHelpers.extends({},209aggregatedStats[key],{210instanceCount:Object.keys(affectedIDs[key]).length});}).211sort(function(a,b){return(212b.inclusiveRenderDuration-a.inclusiveRenderDuration);});213}214function getOperations(){var flushHistory=arguments.length>0&&arguments[0]!==undefined?arguments[0]:getLastMeasurements();215if(!__DEV__){216warnInProduction();217return[];218}219var stats=[];220flushHistory.forEach(function(flush,flushIndex){var221operations=flush.operations,treeSnapshot=flush.treeSnapshot;222operations.forEach(function(operation){var223instanceID=operation.instanceID,type=operation.type,payload=operation.payload;var _treeSnapshot$instanc3=224treeSnapshot[instanceID],displayName=_treeSnapshot$instanc3.displayName,ownerID=_treeSnapshot$instanc3.ownerID;225var owner=treeSnapshot[ownerID];226var key=(owner?owner.displayName+' > ':'')+displayName;227stats.push({228flushIndex:flushIndex,229instanceID:instanceID,230key:key,231type:type,232ownerID:ownerID,233payload:payload});234});235});236return stats;237}238function printExclusive(flushHistory){239if(!__DEV__){240warnInProduction();241return;242}243var stats=getExclusive(flushHistory);244var table=stats.map(function(item){var245key=item.key,instanceCount=item.instanceCount,totalDuration=item.totalDuration;246var renderCount=item.counts.render||0;247var renderDuration=item.durations.render||0;248return{249'Component':key,250'Total time (ms)':roundFloat(totalDuration),251'Instance count':instanceCount,252'Total render time (ms)':roundFloat(renderDuration),253'Average render time (ms)':renderCount?254roundFloat(renderDuration/renderCount):255undefined,256'Render count':renderCount,257'Total lifecycle time (ms)':roundFloat(totalDuration-renderDuration)};258});259consoleTable(table);260}261function printInclusive(flushHistory){262if(!__DEV__){263warnInProduction();264return;265}266var stats=getInclusive(flushHistory);267var table=stats.map(function(item){var268key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;269return{270'Owner > Component':key,271'Inclusive render time (ms)':roundFloat(inclusiveRenderDuration),272'Instance count':instanceCount,273'Render count':renderCount};274});275consoleTable(table);276}277function printWasted(flushHistory){278if(!__DEV__){279warnInProduction();280return;281}282var stats=getWasted(flushHistory);283var table=stats.map(function(item){var284key=item.key,instanceCount=item.instanceCount,inclusiveRenderDuration=item.inclusiveRenderDuration,renderCount=item.renderCount;285return{286'Owner > Component':key,287'Inclusive wasted time (ms)':roundFloat(inclusiveRenderDuration),288'Instance count':instanceCount,289'Render count':renderCount};290});291consoleTable(table);292}293function printOperations(flushHistory){294if(!__DEV__){295warnInProduction();296return;297}298var stats=getOperations(flushHistory);299var table=stats.map(function(stat){return{300'Owner > Node':stat.key,301'Operation':stat.type,302'Payload':typeof stat.payload==='object'?303JSON.stringify(stat.payload):304stat.payload,305'Flush index':stat.flushIndex,306'Owner Component ID':stat.ownerID,307'DOM Component ID':stat.instanceID};});308consoleTable(table);309}310var warnedAboutPrintDOM=false;311function printDOM(measurements){312warning(313warnedAboutPrintDOM,314'`ReactPerf.printDOM(...)` is deprecated. Use '+315'`ReactPerf.printOperations(...)` instead.');316warnedAboutPrintDOM=true;317return printOperations(measurements);318}319var warnedAboutGetMeasurementsSummaryMap=false;320function getMeasurementsSummaryMap(measurements){321warning(322warnedAboutGetMeasurementsSummaryMap,323'`ReactPerf.getMeasurementsSummaryMap(...)` is deprecated. Use '+324'`ReactPerf.getWasted(...)` instead.');325warnedAboutGetMeasurementsSummaryMap=true;326return getWasted(measurements);327}328function start(){329if(!__DEV__){330warnInProduction();331return;332}333ReactDebugTool.beginProfiling();334}335function stop(){336if(!__DEV__){337warnInProduction();338return;339}340ReactDebugTool.endProfiling();...
TimeWasted.js
Source:TimeWasted.js
1import React, { Component } from 'react';2import ChartComponent from './ChartComponent';3import excludedComponents from '../constants/excludedComponents';4import formatTime from '../utils/formatTime';5class TimeWasted extends Component {6 constructor(props) {7 super(props);8 this.state = {9 recording: false,10 measurements: [],11 activeMeasurement: 0,12 };13 }14 componentWillReceiveProps(nextProps) {15 }16 componentWillUpdate(nextProps, nextState) {17 }18 onMeasurementChange(measurement) {19 const measurementIndex = this.state.measurements.findIndex(m => m.createdAt === measurement.createdAt);20 this.setState({ activeMeasurement: measurementIndex });21 }22 toggleRecord() {23 if (!this.state.recording) {24 this.props.perf.start();25 } else {26 this.props.perf.stop();27 this.printResults();28 }29 this.setState({ recording: !this.state.recording });30 }31 printResults() {32 const getMeasurements = this.props.perf.getWasted ? this.props.perf.getWasted : this.props.perf.getMeasurementsSummaryMap;33 const measurements = getMeasurements(this.props.perf._allMeasurements)34 .filter(measurement => {35 const label = measurement.key.split(' > ').pop();36 return !excludedComponents.includes(label);37 });38 const timeWasted = {39 measurements,40 createdAt: new Date().getTime(),41 };42 const nState = this.state.measurements.concat(timeWasted);43 this.setState({ measurements: nState, activeMeasurement: (nState.length - 1) });44 }45 removeMeasurement(measurement) {46 const index = this.state.measurements.findIndex(m => m.createdAt === measurement.createdAt);47 const measurements = Object.assign([], this.state.measurements);48 measurements.splice(index, 1);49 this.setState({ measurements });50 }51 render() {52 return (<div className="time-wasted">53 <div className="left-hand">54 <div className="tools">55 <button56 onClick={this.toggleRecord.bind(this)}57 className={`recButton ${this.state.recording ? 'active' : null}`}58 />59 </div>60 {this.state.measurements.length > 0 ?61 <ul className="measurements">62 {this.state.measurements.map((measurement, i) => (<li63 className={`measurement ${i === this.state.activeMeasurement ? 'active' : ''}`}64 key={i}65 onClick={this.onMeasurementChange.bind(this, measurement)}66 >67 {formatTime(measurement.createdAt)}68 <button className="removeMeasurement x-button" onClick={this.removeMeasurement.bind(this, measurement)}>Ã</button>69 </li>)70 )}71 </ul> : <div className="no-measurements">No measurements yet, record to view some results</div>}72 </div>73 <div className="right-hand">74 {this.state.measurements[this.state.activeMeasurement] &&75 <ChartComponent76 width={10}77 height={10}78 label="Time wasted in miliseconds"79 measurement={this.state.measurements[this.state.activeMeasurement]}80 />81 }82 </div>83 </div>);84 }85}...
index.js
Source:index.js
...42function printPerfResults() {43 Perf.stop();44 Perf.printInclusive();45 Perf.printWasted();46 const totalWastedRenders = Perf.getWasted().reduce(47 (total, v) => total + v.renderCount,48 049 );50 const totalWastedTime = Perf.getWasted().reduce(51 (total, v) => total + v.inclusiveRenderDuration,52 053 );54 const totalRenderTime = Perf.getInclusive().find(v => v.key === 'PerfTest')55 .inclusiveRenderDuration;56 console.log('Render time:', Math.round(totalRenderTime), 'ms');57 console.log('Wasted time:', Math.round(totalWastedTime), 'ms');58 console.log('Wasted renders:', totalWastedRenders);...
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.waitForTimeout(1000);7 const wasted = await page.getWasted();8 console.log(wasted);9 await browser.close();10})();
Using AI Code Generation
1(async () => {2 const { chromium } = require('playwright');3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 const wasted = await page.evaluate(() => window.playwright.getWasted());7 console.log(wasted);8})();9{
Using AI Code Generation
1const { getWasted } = require('playwright/lib/utils/utils');2const { chromium } = require('playwright');3(async () => {4 const browser = await chromium.launch({ headless: false });5 const context = await browser.newContext();6 const page = await context.newPage();7 await page.click('text=Google apps');8 const wasted = getWasted();9 console.log(wasted);10 await browser.close();11})();
Using AI Code Generation
1const { chromium } = require('playwright');2const { getWasted } = require('playwright/lib/server/trace/recorder/recorderApp');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 await page.click('text=More information...');8 await page.close();9 const wasted = getWasted(page);10 console.log(wasted);11 await browser.close();12})();13 {14 },15 {16 },17 {18 },19 {20 },21 {22 },23 {24 },25 {
Using AI Code Generation
1const { getWasted } = require('@playwright/test/lib/utils/utils');2const { chromium } = require('@playwright/test');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const wasted = getWasted(page);8 console.log(wasted);9 await browser.close();10})();11const { getWasted } = require('@playwright/test/lib/utils/utils');12const { chromium } = require('@playwright/test');13(async () => {14 const browser = await chromium.launch();15 const context = await browser.newContext();16 const page = await context.newPage();17 const frame = page.frames()[1];18 const wasted = getWasted(frame);19 console.log(wasted);20 await browser.close();21})();22const { getWasted } = require('@playwright/test/lib/utils/utils');23const { chromium } = require('@playwright/test');24(async () => {25 const browser = await chromium.launch();26 const context = await browser.newContext();27 const page = await context.newPage();28 const frame = page.frames()[1];29 console.log(wasted);30 await browser.close();31})();32const { getWasted }
Using AI Code Generation
1const { getWasted } = require('@playwright/test/lib/utils/wasteful');2(async () => {3 const wasted = await getWasted();4 console.log(wasted);5})();6const { test } = require('@playwright/test');7test('wasted time', async ({ page, getWasted }) => {8 const wasted = await getWasted();9 console.log(wasted);10});
Using AI Code Generation
1const playwright = require('playwright');2const { getWasted } = require('playwright/lib/utils/utils');3(async () => {4 const browser = await playwright.chromium.launch({ headless: false });5 const context = await browser.newContext();6 const page = await context.newPage();7 const wasted = getWasted(page);8 console.log(wasted);9 await browser.close();10})();11const playwright = require('playwright');12(async () => {13 const browser = await playwright.chromium.launch({ headless: false });14 const context = await browser.newContext();15 const page = await context.newPage();16 await page.waitForTimeout(3000);17 const wasted = getWasted(page);18 console.log(wasted);19 await browser.close();20})();
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!!