From f75e99f703389b09af8573ccab55884f853b16e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20M=C3=A9tais?= Date: Fri, 23 Oct 2015 17:31:00 +0200 Subject: [PATCH] Fix bug where scrollExecutionTree is empty --- lib/tools/jsExecutionTransformer.js | 36 ++++++++++++++++------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/lib/tools/jsExecutionTransformer.js b/lib/tools/jsExecutionTransformer.js index a215341..2a6214e 100644 --- a/lib/tools/jsExecutionTransformer.js +++ b/lib/tools/jsExecutionTransformer.js @@ -121,24 +121,28 @@ var jsExecutionTransformer = function() { debug('JS execution transformation complete'); - debug('Starting scroll execution transformation'); - offenders.DOMaccessesOnScroll = JSON.parse(data.toolsResults.phantomas.offenders.scrollExecutionTree[0]); - if (offenders.DOMaccessesOnScroll.children) { - offenders.DOMaccessesOnScroll.children.forEach(function(node) { - - // Mark a event flag - if (['documentScroll', 'windowScroll', 'window.onscroll'].indexOf(node.data.type) >= 0) { - node.windowPerformance = true; - } + if (data.toolsResults.phantomas.offenders.scrollExecutionTree) { + debug('Starting scroll execution transformation'); + offenders.DOMaccessesOnScroll = JSON.parse(data.toolsResults.phantomas.offenders.scrollExecutionTree[0]); + if (offenders.DOMaccessesOnScroll.children) { + offenders.DOMaccessesOnScroll.children.forEach(function(node) { + + // Mark a event flag + if (['documentScroll', 'windowScroll', 'window.onscroll'].indexOf(node.data.type) >= 0) { + node.windowPerformance = true; + } - // Transform domPaths into objects - changeListOfDomPaths(node); - - // Count the number of DOM accesses, by counting the tree leafs - metrics.DOMaccessesOnScroll += countTreeLeafs(node); - }); + // Transform domPaths into objects + changeListOfDomPaths(node); + + // Count the number of DOM accesses, by counting the tree leafs + metrics.DOMaccessesOnScroll += countTreeLeafs(node); + }); + } + debug('Scroll execution transformation complete'); + } else { + debug('Could not parse scrollExecutionTree'); } - debug('Scroll execution transformation complete'); } catch(err) { throw err;