mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
remove dependency between aggrow and stackRegistry
Reviewed By: bnham Differential Revision: D3876267 fbshipit-source-id: 2ad7e70445f3f4641cde554e94de000403368233
This commit is contained in:
1 parent
1502e66c31
commit
217a4449d4
7 files changed
+108
-82
No files matched your search
@@ -1,8 +1,8 @@
|
||||
SHELL := /bin/bash
|
||||
|
||||
all:
|
||||
NODE_PATH="../../../../node_modules/" babel --presets babel-preset-react-native -d out src
|
||||
for f in out/*.js; do echo "// @generated" >> $$f; done
|
||||
NODE_PATH="../../../../node_modules/" babel --presets babel-preset-react-native --source-maps inline -d out src
|
||||
for f in out/*.js; do echo -e "\n// @generated" >> $$f; done
|
||||
|
||||
watch:
|
||||
NODE_PATH="../../../../node_modules/" babel --watch --presets babel-preset-react-native -d out src
|
||||
@@ -46,17 +46,16 @@ return stackIdMap[id];
|
||||
|
||||
}
|
||||
|
||||
function stackRegistry(interner){// eslint-disable-line no-unused-vars
|
||||
function stackRegistry(){// eslint-disable-line no-unused-vars
|
||||
return{
|
||||
root:{id:0},
|
||||
nodeCount:1,
|
||||
insert:function insertNode(parent,label){
|
||||
var labelId=interner.intern(label);
|
||||
var node=parent[labelId];
|
||||
insert:function insertNode(parent,frameId){
|
||||
var node=parent[frameId];
|
||||
if(node===undefined){
|
||||
node={id:this.nodeCount};
|
||||
this.nodeCount++;
|
||||
parent[labelId]=node;
|
||||
parent[frameId]=node;
|
||||
}
|
||||
return node;
|
||||
},
|
||||
@@ -116,7 +115,7 @@ return new stackData(stackIdMap,maxStackDepth);
|
||||
|
||||
}
|
||||
|
||||
function aggrow(strings,stacks,numRows){// eslint-disable-line no-unused-vars
|
||||
function aggrow(numRows){// eslint-disable-line no-unused-vars
|
||||
// expander ID definitions
|
||||
var FIELD_EXPANDER_ID_MIN=0x0000;
|
||||
var FIELD_EXPANDER_ID_MAX=0x7fff;
|
||||
@@ -142,16 +141,16 @@ var NODE_REORDER_BIT=0x0004;// children need to be sorted
|
||||
var NODE_REPOSITION_BIT=0x0008;// children need position
|
||||
var NODE_INDENT_SHIFT=16;
|
||||
|
||||
function calleeFrameGetter(stack,depth){
|
||||
function calleeFrameIdGetter(stack,depth){
|
||||
return stack[depth];
|
||||
}
|
||||
|
||||
function callerFrameGetter(stack,depth){
|
||||
function callerFrameIdGetter(stack,depth){
|
||||
return stack[stack.length-depth-1];
|
||||
}
|
||||
|
||||
function createStackComparers(stackGetter,frameGetter){
|
||||
var comparers=new Array(stacks.maxDepth);var _loop=function _loop(
|
||||
function createStackComparers(stackGetter,frameIdGetter,maxStackDepth){
|
||||
var comparers=new Array(maxStackDepth);var _loop=function _loop(
|
||||
depth){
|
||||
var captureDepth=depth;// NB: to capture depth per loop iteration
|
||||
comparers[depth]=function calleeStackComparer(rowA,rowB){
|
||||
@@ -166,8 +165,8 @@ return-1;
|
||||
}else if(b.length<=captureDepth){
|
||||
return 1;
|
||||
}
|
||||
return frameGetter(a,captureDepth)-frameGetter(b,captureDepth);
|
||||
};};for(var depth=0;depth<stacks.maxDepth;depth++){_loop(depth);
|
||||
return frameIdGetter(a,captureDepth)-frameIdGetter(b,captureDepth);
|
||||
};};for(var depth=0;depth<maxStackDepth;depth++){_loop(depth);
|
||||
}
|
||||
return comparers;
|
||||
}
|
||||
@@ -325,6 +324,7 @@ nextActiveIndex));
|
||||
function addChildrenWithStackExpander(row,expander,activeIndex,depth,nextActiveIndex){
|
||||
var rowIndices=row.indices;
|
||||
var stackGetter=expander.stackGetter;
|
||||
var frameIdGetter=expander.frameIdGetter;
|
||||
var frameGetter=expander.frameGetter;
|
||||
var comparer=expander.comparers[depth];
|
||||
var expandNextFrame=activeIndex|depth+1<<ACTIVE_EXPANDER_FRAME_SHIFT;
|
||||
@@ -357,10 +357,10 @@ if(begin<rowIndices.length){
|
||||
var end=begin+1;
|
||||
while(end<rowIndices.length){
|
||||
var endStack=stackGetter(rowIndices[end]);
|
||||
if(frameGetter(beginStack,depth)!==frameGetter(endStack,depth)){
|
||||
if(frameIdGetter(beginStack,depth)!==frameIdGetter(endStack,depth)){
|
||||
row.children.push(createTreeNode(
|
||||
row,
|
||||
columnName+strings.get(frameGetter(beginStack,depth)),
|
||||
columnName+frameGetter(frameIdGetter(beginStack,depth)),
|
||||
rowIndices.subarray(begin,end),
|
||||
expandNextFrame));
|
||||
begin=end;
|
||||
@@ -370,7 +370,7 @@ end++;
|
||||
}
|
||||
row.children.push(createTreeNode(
|
||||
row,
|
||||
columnName+strings.get(frameGetter(beginStack,depth)),
|
||||
columnName+frameGetter(frameIdGetter(beginStack,depth)),
|
||||
rowIndices.subarray(begin,end),
|
||||
expandNextFrame));
|
||||
}
|
||||
@@ -418,27 +418,29 @@ comparer:comparer});
|
||||
|
||||
return FIELD_EXPANDER_ID_MIN+state.fieldExpanders.length-1;
|
||||
},
|
||||
addCalleeStackExpander:function addCalleeStackExpander(name,stackGetter){
|
||||
addCalleeStackExpander:function addCalleeStackExpander(name,maxStackDepth,stackGetter,frameGetter){
|
||||
if(STACK_EXPANDER_ID_MIN+state.fieldExpanders.length>=STACK_EXPANDER_ID_MAX){
|
||||
throw'too many stack expanders!';
|
||||
}
|
||||
state.stackExpanders.push({
|
||||
name:name,// name for column
|
||||
stackGetter:stackGetter,// row index -> stack array
|
||||
comparers:createStackComparers(stackGetter,calleeFrameGetter),// depth -> comparer
|
||||
frameGetter:calleeFrameGetter});
|
||||
comparers:createStackComparers(stackGetter,calleeFrameIdGetter,maxStackDepth),// depth -> comparer
|
||||
frameIdGetter:calleeFrameIdGetter,// (stack, depth) -> string id
|
||||
frameGetter:frameGetter});
|
||||
|
||||
return STACK_EXPANDER_ID_MIN+state.stackExpanders.length-1;
|
||||
},
|
||||
addCallerStackExpander:function addCallerStackExpander(name,stackGetter){
|
||||
addCallerStackExpander:function addCallerStackExpander(name,maxStackDepth,stackGetter,frameGetter){
|
||||
if(STACK_EXPANDER_ID_MIN+state.fieldExpanders.length>=STACK_EXPANDER_ID_MAX){
|
||||
throw'too many stack expanders!';
|
||||
}
|
||||
state.stackExpanders.push({
|
||||
name:name,
|
||||
stackGetter:stackGetter,
|
||||
comparers:createStackComparers(stackGetter,callerFrameGetter),
|
||||
frameGetter:callerFrameGetter});
|
||||
comparers:createStackComparers(stackGetter,callerFrameIdGetter,maxStackDepth),
|
||||
frameIdGetter:callerFrameIdGetter,
|
||||
frameGetter:frameGetter});
|
||||
|
||||
return STACK_EXPANDER_ID_MIN+state.stackExpanders.length-1;
|
||||
},
|
||||
@@ -616,4 +618,6 @@ contract:function contract(row){
|
||||
contractRow(row);
|
||||
}};
|
||||
|
||||
}// @generated
|
||||
}
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hZ2dyb3cuanMiXSwibmFtZXMiOlsic3RyaW5nSW50ZXJuZXIiLCJzdHJpbmdzIiwiaWRzIiwiaW50ZXJuIiwiaW50ZXJuU3RyaW5nIiwicyIsImZpbmQiLCJ1bmRlZmluZWQiLCJpZCIsImxlbmd0aCIsInB1c2giLCJnZXQiLCJnZXRTdHJpbmciLCJzdGFja0RhdGEiLCJzdGFja0lkTWFwIiwibWF4RGVwdGgiLCJnZXRTdGFjayIsInN0YWNrUmVnaXN0cnkiLCJyb290Iiwibm9kZUNvdW50IiwiaW5zZXJ0IiwiaW5zZXJ0Tm9kZSIsInBhcmVudCIsImZyYW1lSWQiLCJub2RlIiwiZmxhdHRlbiIsImZsYXR0ZW5TdGFja3MiLCJzdGFja0ZyYW1lQ291bnQiLCJjb3VudFN0YWNrcyIsInRyZWUiLCJkZXB0aCIsImxlYWYiLCJjb25zb2xlIiwibG9nIiwidG9TdHJpbmciLCJBcnJheSIsInN0YWNrQXJyYXkiLCJJbnQzMkFycmF5IiwibWF4U3RhY2tEZXB0aCIsImZsYXR0ZW5TdGFja3NJbXBsIiwic3RhY2siLCJjaGlsZFN0YWNrIiwiTWF0aCIsIm1heCIsIk51bWJlciIsInBvcCIsInN1YmFycmF5IiwibmV3U3RhY2siLCJpIiwiYWdncm93IiwibnVtUm93cyIsIkZJRUxEX0VYUEFOREVSX0lEX01JTiIsIkZJRUxEX0VYUEFOREVSX0lEX01BWCIsIlNUQUNLX0VYUEFOREVSX0lEX01JTiIsIlNUQUNLX0VYUEFOREVSX0lEX01BWCIsIklOVkFMSURfQUNUSVZFX0VYUEFOREVSIiwiQUNUSVZFX0VYUEFOREVSX01BU0siLCJBQ1RJVkVfRVhQQU5ERVJfRlJBTUVfU0hJRlQiLCJBR0dSRUdBVE9SX0lEX01BWCIsIkFDVElWRV9BR0dSRUdBVE9SX01BU0siLCJBQ1RJVkVfQUdHUkVHQVRPUl9BU0NfQklUIiwiTk9ERV9FWFBBTkRFRF9CSVQiLCJOT0RFX1JFQUdHUkVHQVRFX0JJVCIsIk5PREVfUkVPUkRFUl9CSVQiLCJOT0RFX1JFUE9TSVRJT05fQklUIiwiTk9ERV9JTkRFTlRfU0hJRlQiLCJjYWxsZWVGcmFtZUlkR2V0dGVyIiwiY2FsbGVyRnJhbWVJZEdldHRlciIsImNyZWF0ZVN0YWNrQ29tcGFyZXJzIiwic3RhY2tHZXR0ZXIiLCJmcmFtZUlkR2V0dGVyIiwiY29tcGFyZXJzIiwiY2FwdHVyZURlcHRoIiwiY2FsbGVlU3RhY2tDb21wYXJlciIsInJvd0EiLCJyb3dCIiwiYSIsImIiLCJjcmVhdGVUcmVlTm9kZSIsImxhYmVsIiwiaW5kaWNlcyIsImV4cGFuZGVyIiwiaW5kZW50Iiwic3RhdGUiLCJjaGlsZHJlbiIsImFnZ3JlZ2F0ZXMiLCJ0b3AiLCJoZWlnaHQiLCJub1NvcnRPcmRlciIsImZpZWxkRXhwYW5kZXJzIiwic3RhY2tFeHBhbmRlcnMiLCJhY3RpdmVFeHBhbmRlcnMiLCJhZ2dyZWdhdG9ycyIsImFjdGl2ZUFnZ3JlZ2F0b3JzIiwic29ydGVyIiwiZXZhbHVhdGVBZ2dyZWdhdGUiLCJyb3ciLCJqIiwiYWdncmVnYXRvciIsImV2YWx1YXRlQWdncmVnYXRlcyIsImV2YWx1YXRlT3JkZXIiLCJjaGlsZCIsInNvcnQiLCJldmFsdWF0ZVBvc2l0aW9uIiwiY2hpbGRUb3AiLCJnZXRSb3dzSW1wbCIsInJlc3VsdCIsInVwZGF0ZUhlaWdodCIsImhlaWdodENoYW5nZSIsImFkZENoaWxkcmVuV2l0aEZpZWxkRXhwYW5kZXIiLCJuZXh0QWN0aXZlSW5kZXgiLCJyb3dJbmRpY2VzIiwiY29tcGFyZXIiLCJiZWdpbiIsImVuZCIsIm5hbWUiLCJmb3JtYXR0ZXIiLCJhZGRDaGlsZHJlbldpdGhTdGFja0V4cGFuZGVyIiwiYWN0aXZlSW5kZXgiLCJmcmFtZUdldHRlciIsImV4cGFuZE5leHRGcmFtZSIsImNvbHVtbk5hbWUiLCJiZWdpblN0YWNrIiwiZW5kU3RhY2siLCJjb250cmFjdFJvdyIsInBydW5lRXhwYW5kZXJzIiwib2xkRXhwYW5kZXIiLCJuZXdFeHBhbmRlciIsImFkZEZpZWxkRXhwYW5kZXIiLCJhZGRDYWxsZWVTdGFja0V4cGFuZGVyIiwiYWRkQ2FsbGVyU3RhY2tFeHBhbmRlciIsImdldEV4cGFuZGVycyIsImV4cGFuZGVycyIsImdldEV4cGFuZGVyTmFtZSIsInNldEFjdGl2ZUV4cGFuZGVycyIsInNsaWNlIiwiZ2V0QWN0aXZlRXhwYW5kZXJzIiwiYWRkQWdncmVnYXRvciIsImdldEFnZ3JlZ2F0b3JzIiwiZ2V0QWdncmVnYXRvck5hbWUiLCJzZXRBY3RpdmVBZ2dyZWdhdG9ycyIsImFzY2VuZGluZyIsImNhcHR1cmVTb3J0ZXIiLCJjYXB0dXJlSW5kZXgiLCJjIiwiZ2V0QWN0aXZlQWdncmVnYXRvcnMiLCJnZXRSb3dzIiwiZ2V0Um93TGFiZWwiLCJnZXRSb3dJbmRlbnQiLCJnZXRSb3dBZ2dyZWdhdGUiLCJpbmRleCIsImdldEhlaWdodCIsImNhbkV4cGFuZCIsImNhbkNvbnRyYWN0IiwiZXhwYW5kIiwiZXhJZCIsImNvbnRyYWN0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7QUFRQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxRQUFTQSxlQUFULEVBQTBCLENBQUU7QUFDMUIsR0FBTUMsU0FBVSxFQUFoQjtBQUNBLEdBQU1DLEtBQU0sRUFBWjtBQUNBLE1BQU87QUFDTEMsT0FBUSxRQUFTQyxhQUFULENBQXNCQyxDQUF0QixDQUF5QjtBQUMvQixHQUFNQyxNQUFPSixJQUFJRyxDQUFKLENBQWI7QUFDQSxHQUFJQyxPQUFTQyxTQUFiLENBQXdCO0FBQ3RCLEdBQU1DLElBQUtQLFFBQVFRLE1BQW5CO0FBQ0FQLElBQUlHLENBQUosRUFBU0csRUFBVDtBQUNBUCxRQUFRUyxJQUFSLENBQWFMLENBQWI7QUFDQSxNQUFPRyxHQUFQO0FBQ0QsQ0FMRCxJQUtPO0FBQ0wsTUFBT0YsS0FBUDtBQUNEO0FBQ0YsQ0FYSTtBQVlMSyxJQUFLLFFBQVNDLFVBQVQsQ0FBbUJKLEVBQW5CLENBQXVCO0FBQzFCLE1BQU9QLFNBQVFPLEVBQVIsQ0FBUDtBQUNELENBZEksQ0FBUDs7QUFnQkQ7O0FBRUQsUUFBU0ssVUFBVCxDQUFtQkMsVUFBbkIsQ0FBK0JDLFFBQS9CLENBQXlDLENBQUU7QUFDekMsTUFBTztBQUNMQSxTQUFVQSxRQURMO0FBRUxKLElBQUssUUFBU0ssU0FBVCxDQUFrQlIsRUFBbEIsQ0FBc0I7QUFDekIsTUFBT00sWUFBV04sRUFBWCxDQUFQO0FBQ0QsQ0FKSSxDQUFQOztBQU1EOztBQUVELFFBQVNTLGNBQVQsRUFBeUIsQ0FBRTtBQUN6QixNQUFPO0FBQ0xDLEtBQU0sQ0FBRVYsR0FBSSxDQUFOLENBREQ7QUFFTFcsVUFBVyxDQUZOO0FBR0xDLE9BQVEsUUFBU0MsV0FBVCxDQUFvQkMsTUFBcEIsQ0FBNEJDLE9BQTVCLENBQXFDO0FBQzNDLEdBQUlDLE1BQU9GLE9BQU9DLE9BQVAsQ0FBWDtBQUNBLEdBQUlDLE9BQVNqQixTQUFiLENBQXdCO0FBQ3RCaUIsS0FBTyxDQUFFaEIsR0FBSSxLQUFLVyxTQUFYLENBQVA7QUFDQSxLQUFLQSxTQUFMO0FBQ0FHLE9BQU9DLE9BQVAsRUFBa0JDLElBQWxCO0FBQ0Q7QUFDRCxNQUFPQSxLQUFQO0FBQ0QsQ0FYSTtBQVlMQyxRQUFTLFFBQVNDLGNBQVQsRUFBeUI7QUFDaEMsR0FBSUMsaUJBQWtCLENBQXRCO0FBQ0EsUUFBU0MsWUFBVCxDQUFxQkMsSUFBckIsQ0FBMkJDLEtBQTNCLENBQWtDO0FBQ2hDLEdBQUlDLE1BQU8sSUFBWDtBQUNBLElBQUssR0FBTVIsUUFBWCxHQUFzQk0sS0FBdEIsQ0FBNEI7QUFDMUIsR0FBSU4sVUFBWSxJQUFoQixDQUFzQjtBQUNwQlEsS0FBT0gsWUFBWUMsS0FBS04sT0FBTCxDQUFaLENBQTJCTyxNQUFRLENBQW5DLENBQVA7QUFDRDtBQUNGO0FBQ0QsR0FBSUMsSUFBSixDQUFVO0FBQ1JKLGlCQUFtQkcsS0FBbkI7QUFDRDtBQUNELE1BQU8sTUFBUDtBQUNEO0FBQ0RGLFlBQVksS0FBS1YsSUFBakIsQ0FBdUIsQ0FBdkI7QUFDQWMsUUFBUUMsR0FBUixDQUFZLGdDQUFrQyxDQUFDTixnQkFBa0IsQ0FBbkIsRUFBc0JPLFFBQXRCLEVBQWxDLENBQXFFLEdBQWpGO0FBQ0EsR0FBTXBCLFlBQWEsR0FBSXFCLE1BQUosQ0FBVSxLQUFLaEIsU0FBZixDQUFuQjtBQUNBLEdBQU1pQixZQUFhLEdBQUlDLFdBQUosQ0FBZVYsZ
Line truncated
|
||||
// @generated
|
||||
@@ -145,28 +145,28 @@ return type.getRef().value.name;// element.type symbolicated name
|
||||
return'#unknown';
|
||||
}
|
||||
|
||||
function buildReactComponentTree(visitor,registry){
|
||||
function buildReactComponentTree(visitor,registry,strings){
|
||||
var ref=visitor.getRef();
|
||||
if(ref.reactTree||ref.reactParent===undefined){
|
||||
return;// has one or doesn't need one
|
||||
}
|
||||
var parentVisitor=ref.reactParent;
|
||||
if(parentVisitor===null){
|
||||
ref.reactTree=registry.insert(registry.root,getInternalInstanceName(visitor));
|
||||
ref.reactTree=registry.insert(registry.root,strings.intern(getInternalInstanceName(visitor)));
|
||||
}else if(parentVisitor){
|
||||
var parentRef=parentVisitor.getRef();
|
||||
buildReactComponentTree(parentVisitor,registry);
|
||||
buildReactComponentTree(parentVisitor,registry,strings);
|
||||
var relativeName=getInternalInstanceName(visitor);
|
||||
if(ref.reactKey){
|
||||
relativeName=ref.reactKey+': '+relativeName;
|
||||
}
|
||||
ref.reactTree=registry.insert(parentRef.reactTree,relativeName);
|
||||
ref.reactTree=registry.insert(parentRef.reactTree,strings.intern(relativeName));
|
||||
}else{
|
||||
throw'non react instance parent of react instance';
|
||||
}
|
||||
}
|
||||
|
||||
function markReactComponentTree(refs,registry){
|
||||
function markReactComponentTree(refs,registry,strings){
|
||||
// annotate all refs that are react internal instances with their parent and name
|
||||
// ref.reactParent = visitor that points to parent instance,
|
||||
// null if we know it's an instance, but don't have a parent yet
|
||||
@@ -201,7 +201,7 @@ edgeRef.reactParent=visitorClone;
|
||||
// build tree of react internal instances (since that's what has the structure)
|
||||
// fill in ref.reactTree = path registry node
|
||||
forEachRef(refs,function(visitor){
|
||||
buildReactComponentTree(visitor,registry);
|
||||
buildReactComponentTree(visitor,registry,strings);
|
||||
});
|
||||
// hook in components by looking at their _reactInternalInstance fields
|
||||
forEachRef(refs,function(visitor){
|
||||
@@ -253,14 +253,14 @@ ref.module='#unknown '+name;
|
||||
});
|
||||
}
|
||||
|
||||
function registerPathToRoot(refs,registry){
|
||||
markReactComponentTree(refs,registry);
|
||||
function registerPathToRoot(refs,registry,strings){
|
||||
markReactComponentTree(refs,registry,strings);
|
||||
markModules(refs);
|
||||
var breadth=[];
|
||||
forEachRef(refs,function(visitor){
|
||||
var ref=visitor.getRef();
|
||||
if(ref.type==='CallbackGlobalObject'){
|
||||
ref.rootPath=registry.insert(registry.root,ref.type);
|
||||
ref.rootPath=registry.insert(registry.root,strings.intern(ref.type));
|
||||
breadth.push(visitor.clone());
|
||||
}
|
||||
});var _loop=function _loop(){
|
||||
@@ -276,7 +276,7 @@ var pathName=edgeRef.type;
|
||||
if(edgeName){
|
||||
pathName=edgeName+': '+pathName;
|
||||
}
|
||||
edgeRef.rootPath=registry.insert(ref.rootPath,pathName);
|
||||
edgeRef.rootPath=registry.insert(ref.rootPath,strings.intern(pathName));
|
||||
nextBreadth.push(edgeVisitor.clone());
|
||||
// copy module and react tree forward
|
||||
if(edgeRef.module===undefined){
|
||||
@@ -330,10 +330,10 @@ newData.set(data);
|
||||
var dataOffset=this.data.length;
|
||||
this.data=null;
|
||||
|
||||
registerPathToRoot(capture.refs,this.stacks);
|
||||
registerPathToRoot(capture.refs,this.stacks,this.strings);
|
||||
var internedCaptureId=this.strings.intern(captureId);
|
||||
var noneString=this.strings.intern('#none');
|
||||
var noneStack=this.stacks.insert(this.stacks.root,'#none');
|
||||
var noneStack=this.stacks.insert(this.stacks.root,noneString);
|
||||
forEachRef(capture.refs,function(visitor){
|
||||
var ref=visitor.getRef();
|
||||
var id=visitor.id;
|
||||
@@ -382,7 +382,7 @@ var agStrings=this.strings;
|
||||
var agStacks=this.stacks.flatten();
|
||||
var agData=this.data;
|
||||
var agNumRows=agData.length/numFields;
|
||||
var ag=new aggrow(agStrings,agStacks,agNumRows);
|
||||
var ag=new aggrow(agNumRows);
|
||||
|
||||
ag.addFieldExpander('Id',
|
||||
function getId(row){
|
||||
@@ -414,11 +414,19 @@ function compareSize(rowA,rowB){
|
||||
return agData[rowA*numFields+traceField]-agData[rowB*numFields+traceField];
|
||||
});
|
||||
|
||||
var pathExpander=ag.addCalleeStackExpander('Path',
|
||||
function getStack(row){return agStacks.get(agData[row*numFields+pathField]);});
|
||||
var pathExpander=ag.addCalleeStackExpander(
|
||||
'Path',
|
||||
agStacks.maxDepth,
|
||||
function getStack(row){return agStacks.get(agData[row*numFields+pathField]);},
|
||||
function getFrame(id){return agStrings.get(id);});
|
||||
|
||||
|
||||
var reactExpander=ag.addCalleeStackExpander(
|
||||
'React Tree',
|
||||
agStacks.maxDepth,
|
||||
function getStack(row){return agStacks.get(agData[row*numFields+reactField]);},
|
||||
function getFrame(id){return agStrings.get(id);});
|
||||
|
||||
var reactExpander=ag.addCalleeStackExpander('React Tree',
|
||||
function getStack(row){return agStacks.get(agData[row*numFields+reactField]);});
|
||||
|
||||
var valueExpander=ag.addFieldExpander('Value',
|
||||
function getValue(row){return agStrings.get(agData[row*numFields+valueField]);},
|
||||
@@ -469,4 +477,6 @@ var r=new captureRegistry();
|
||||
r.register('trace',preLoadedCapture);
|
||||
preLoadedCapture=undefined;// let GG clean up the capture
|
||||
ReactDOM.render(React.createElement(Table,{aggrow:r.getAggrow()}),document.body);
|
||||
}// @generated
|
||||
}
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFwQ2FwdHVyZS5qcyJdLCJuYW1lcyI6WyJSZWZWaXNpdG9yIiwicmVmcyIsImlkIiwicHJvdG90eXBlIiwibW92ZVRvRWRnZSIsIm5hbWUiLCJyZWYiLCJlZGdlcyIsImVkZ2VJZCIsInVuZGVmaW5lZCIsIm1vdmVUb0ZpcnN0IiwiY2FsbGJhY2siLCJmb3JFYWNoRWRnZSIsInZpc2l0b3IiLCJnZXRUeXBlIiwidHlwZSIsImdldFJlZiIsImNsb25lIiwiaXNEZWZpbmVkIiwiZ2V0VmFsdWUiLCJ2YWx1ZSIsInJvcGUiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJpbmRleCIsInBhcnNlSW50Iiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiam9pbiIsInVybCIsImxpbmUiLCJjb2wiLCJmdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwiZXhlY3V0YWJsZSIsImZvckVhY2hSZWYiLCJmaXJzdFJlZiIsImdldEludGVybmFsSW5zdGFuY2VOYW1lIiwiZGlzcGxheU5hbWUiLCJidWlsZFJlYWN0Q29tcG9uZW50VHJlZSIsInJlZ2lzdHJ5Iiwic3RyaW5ncyIsInJlYWN0VHJlZSIsInJlYWN0UGFyZW50IiwicGFyZW50VmlzaXRvciIsImluc2VydCIsInJvb3QiLCJpbnRlcm4iLCJwYXJlbnRSZWYiLCJyZWxhdGl2ZU5hbWUiLCJyZWFjdEtleSIsIm1hcmtSZWFjdENvbXBvbmVudFRyZWUiLCJ2aXNpdG9yQ2xvbmUiLCJlZGdlTmFtZSIsImVkZ2VWaXNpdG9yIiwiZWRnZVJlZiIsImNoaWxkTmFtZSIsImNoaWxkVmlzaXRvciIsImNoaWxkUmVmIiwiaW5zdGFuY2VSZWYiLCJmdW5jdGlvblVybEZpbGVOYW1lIiwiZmlsZSIsImxhc3RJbmRleE9mIiwibWFya01vZHVsZXMiLCJtb2R1bGVzIiwibWVtYmVyTmFtZSIsIm1lbWJlciIsIm1vZHVsZSIsInJlZ2lzdGVyUGF0aFRvUm9vdCIsImJyZWFkdGgiLCJyb290UGF0aCIsInB1c2giLCJuZXh0QnJlYWR0aCIsImkiLCJwYXRoTmFtZSIsImNhcHR1cmVSZWdpc3RyeSIsInN0cmluZ0ludGVybmVyIiwic3RhY2tzIiwic3RhY2tSZWdpc3RyeSIsImRhdGEiLCJJbnQzMkFycmF5IiwiaWRGaWVsZCIsInR5cGVGaWVsZCIsInNpemVGaWVsZCIsInRyYWNlRmllbGQiLCJwYXRoRmllbGQiLCJyZWFjdEZpZWxkIiwidmFsdWVGaWVsZCIsIm1vZHVsZUZpZWxkIiwibnVtRmllbGRzIiwicmVnaXN0ZXIiLCJyZWdpc3RlckNhcHR1cmUiLCJjYXB0dXJlSWQiLCJjYXB0dXJlIiwicm93Q291bnQiLCJtYXJrZWRCbG9ja3MiLCJjb25zb2xlIiwibG9nIiwidG9TdHJpbmciLCJuZXdEYXRhIiwic2V0IiwiZGF0YU9mZnNldCIsImludGVybmVkQ2FwdHVyZUlkIiwibm9uZVN0cmluZyIsIm5vbmVTdGFjayIsInNpemUiLCJibG9jayIsImNhcGFjaXR5IiwiY2VsbFNpemUiLCJnZXRBZ2dyb3ciLCJhZ1N0cmluZ3MiLCJhZ1N0YWNrcyIsImZsYXR0ZW4iLCJhZ0RhdGEiLCJhZ051bVJvd3MiLCJhZyIsImFnZ3JvdyIsImFkZEZpZWxkRXhwYW5kZXIiLCJnZXRJZCIsInJvdyIsImNvbXBhcmVBZGRyZXNzIiwicm93QSIsInJvd0IiLCJ0eXBlRXhwYW5kZXIiLCJnZXQiLCJjb21wYXJlVHlwZSIsImdldFNpemUiLCJjb21wYXJlU2l6ZSIsInBhdGhFeHBhbmRlciIsImFkZENhbGxlZVN0YWNrRXhwYW5kZXIiLCJtYXhEZXB0aCIsImdldFN0YWNrIiwiZ2V0RnJhbWUiLCJyZWFjdEV4cGFuZGVyIiwidmFsdWVFeHBhbmRlciIsImNvbXBhcmVWYWx1ZSIsIm1vZHVsZUV4cGFuZGVyIiwiZ2V0TW9kdWxlIiwiY29tcGFyZU1vZHVsZSIsInNpemVBZ2dyZWdhdG9yIiwiYWRkQWdncmVnYXRvciIsImFnZ3JlZ2F0ZVNpemUiLCJpbmRpY2VzIiwiZm9ybWF0U2l6ZSIsInNvcnRTaXplIiwiYSIsImIiLCJjb3VudEFnZ3JlZ2F0b3IiLCJhZ2dyZWdhdGVDb3VudCIsImZvcm1hdENvdW50Iiwic29ydENvdW50Iiwic2V0QWN0aXZlRXhwYW5kZXJzIiwic2V0QWN0aXZlQWdncmVnYXRvcnMiLCJwcmVMb2FkZWRDYXB0dXJlIiwiciIsIlJlYWN0RE9NIiwicmVuZGVyIiwiZG9jdW1lbnQiLCJib2R5Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7QUFRQTtBQUNBO0FBQ0E7O0FBRUEsUUFBU0EsV0FBVCxDQUFvQkMsSUFBcEIsQ0FBMEJDLEVBQTFCLENBQThCO0FBQzVCLEtBQUtELElBQUwsQ0FBWUEsSUFBWjtBQUNBLEtBQUtDLEVBQUwsQ0FBVUEsRUFBVjtBQUNEOztBQUVERixXQUFXRyxTQUFYLENBQXVCO0FBQ3JCQyxXQUFZLFFBQVNBLFdBQVQsQ0FBb0JDLElBQXBCLENBQTBCO0FBQ3BDLEdBQU1DLEtBQU0sS0FBS0wsSUFBTCxDQUFVLEtBQUtDLEVBQWYsQ0FBWjtBQUNBLEdBQUlJLEtBQU9BLElBQUlDLEtBQWYsQ0FBc0I7QUFDcEIsR0FBTUEsT0FBUUQsSUFBSUMsS0FBbEI7QUFDQSxJQUFLLEdBQU1DLE9BQVgsR0FBcUJELE1BQXJCLENBQTRCO0FBQzFCLEdBQUlBLE1BQU1DLE1BQU4sSUFBa0JILElBQXRCLENBQTRCO0FBQzFCLEtBQUtILEVBQUwsQ0FBVU0sTUFBVjtBQUNBLE1BQU8sS0FBUDtBQUNEO0FBQ0Y7QUFDRjtBQUNELEtBQUtOLEVBQUwsQ0FBVU8sU0FBVjtBQUNBLE1BQU8sS0FBUDtBQUNELENBZG9CO0FBZXJCQyxZQUFhLFFBQVNBLFlBQVQsQ0FBcUJDLFFBQXJCLENBQStCO0FBQzFDLEdBQU1MLEtBQU0sS0FBS0wsSUFBTCxDQUFVLEtBQUtDLEVBQWYsQ0FBWjtBQUNBLEdBQUlJLEtBQU9BLElBQUlDLEtBQWYsQ0FBc0I7QUFDcEIsR0FBTUEsT0FBUUQsSUFBSUMsS0FBbEI7QUFDQSxJQUFLLEdBQU1DLE9BQVgsR0FBcUJELE1BQXJCLENBQTRCO0FBQzFCLEtBQUtMLEVBQUwsQ0FBVU0sTUFBVjtBQUNBLEdBQUlHLFNBQVNKLE1BQU1DLE1BQU4sQ0FBVCxDQUF3QixJQUF4QixDQUFKLENBQW1DO0FBQ2pDLE1BQU8sS0FBUDtBQUNEO0FBQ0Y7QUFDRjtBQUNELEtBQUtOLEVBQUwsQ0FBVU8sU0FBVjtBQUNBLE1BQU8sS0FBUDtBQUNELENBNUJvQjtBQTZCckJHLFlBQWEsUUFBU0EsWUFBVCxDQUFxQkQsUUFBckIsQ0FBK0I7QUFDMUMsR0FBTUwsS0FBTSxLQUFLTCxJQUFMLENBQVUsS0FBS0MsRUFBZixDQUFaO0FBQ0EsR0FBSUksS0FBT0EsSUFBSUMsS0FBZixDQUFzQjtBQUNwQixHQUFNQSxPQUFRRCxJQUFJQyxLQUFsQjtBQUNBLEdBQU1NLFNBQVUsR0FBSWIsV0FBSixDQUFlLEtBQUtDLElBQXBCLENBQTBCUSxTQUExQixDQUFoQjtBQUNBLElBQUssR0FBTUQsT0FBWCxHQUFxQkQsTUFBckIsQ0FBNEI7QUFDMUJNLFFBQVFYLEVBQVIsQ0FBYU0sTUFBYjtBQUNBRyxTQUFTSixNQUFNQyxNQUFOLENBQVQsQ0FBd0JLLE9BQXhCO0FBQ0Q7QUFDRjtBQUNGLENBdkNvQjtBQXdDckJDLFFBQVMsUUFBU0EsUUFBVCxFQUFtQjtBQUMxQixHQUFNUixLQUFNLEtBQUtMLElBQUwsQ0FBVSxLQUFLQyxFQUFmLENBQVo7QUFDQSxHQUFJSSxHQUFKLENBQVM7QUFDUCxNQUFPQSxLQUFJUyxJQUFYO0FBQ0Q7QUFDRCxNQUFPTixVQUFQO0FBQ0QsQ0E5Q29CO0FBK0NyQk8sT0FBUSxRQUFTQSxPQUFULEVBQWtCO0FBQ3hCLE1BQU8sTUFBS2YsSUFBTCxDQUFVLEtBQUtDLEVBQWYsQ0FBUDtBQUNELENBakRvQjtBQWtEckJlLE1BQU8sUUFBU0EsTUFBVCxFQUFpQjtBQUN0QixNQUFPLElBQUlqQixXQUFKLENBQWUsS0FBS0MsSUFBcEIsQ0FBMEIsS0FBS0MsRUFBL0IsQ0FBUDtBQUNELENBcERvQjtBQXFEckJnQixVQUFXLFFBQVNBLFVBQVQsRUFBcUI7QUFDOUIsTUFBTyxDQUFDLENBQUMsS0FBS2hCLEVBQWQ7QUFDRCxDQXZEb0I7QUF3RHJCaUIsU0FBVSxRQUFTQSxTQUFULEVBQW9CO0FBQzVCLEdBQU1iLEtBQU0sS0FBS0wsSUFBTCxDQUFVLEtBQUtDLEVBQWYsQ0FBWjtBQUNBLEdBQUlJLEdBQUosQ0FBUztBQUNQL
Line truncated
|
||||
// @generated
|
||||
@@ -546,4 +546,6 @@ document.body.addEventListener('keydown',this.keydown);
|
||||
|
||||
{
|
||||
document.body.removeEventListener('keydown',this.keydown);
|
||||
}}]);return Table;}(React.Component);// @generated
|
||||
}}]);return Table;}(React.Component);
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90YWJsZS5qcyJdLCJuYW1lcyI6WyJyb3dIZWlnaHQiLCJ0cmVlSW5kZW50IiwiRHJhZ2dhYmxlIiwicHJvcHMiLCJpZCIsImRyYWdTdGFydCIsImUiLCJkYXRhVHJhbnNmZXIiLCJzZXREYXRhIiwiUmVhY3QiLCJjbG9uZUVsZW1lbnQiLCJjaGlsZHJlbiIsImRyYWdnYWJsZSIsIm9uRHJhZ1N0YXJ0IiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiZWxlbWVudCIsImlzUmVxdWlyZWQiLCJzdHJpbmciLCJEcm9wVGFyZ2V0IiwidGhpc0lkIiwiZHJvcEZpbHRlciIsImRyb3BBY3Rpb24iLCJvbkRyYWdPdmVyIiwic291cmNlSWQiLCJnZXREYXRhIiwicHJldmVudERlZmF1bHQiLCJvbkRyb3AiLCJmdW5jIiwiRXhwYW5kZXJDb25maWd1cmF0aW9uIiwiYWdncm93IiwiZXhwYW5kZXIiLCJ0b1N0cmluZyIsIndpZHRoIiwiaGVpZ2h0IiwiYm9yZGVyIiwibWFyZ2luIiwiZ2V0RXhwYW5kZXJOYW1lIiwiVGFibGVDb25maWd1cmF0aW9uIiwic3RhdGUiLCJleHBhbmRlZCIsImV4IiwiZXhwYW5kZXJUZXh0IiwiY29uZmlnIiwiZ2V0RXhwYW5kZXJzIiwibWFwIiwicmVuZGVyRXhwYW5kZXIiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsIm92ZXJmbG93IiwiYm9yZGVyTGVmdCIsInNldFN0YXRlIiwib2JqZWN0IiwiVGFibGVIZWFkZXIiLCJhZ2dyZWdhdG9ycyIsImdldEFjdGl2ZUFnZ3JlZ2F0b3JzIiwiZXhwYW5kZXJzIiwiZ2V0QWN0aXZlRXhwYW5kZXJzIiwiaGVhZGVycyIsImkiLCJsZW5ndGgiLCJuYW1lIiwiZ2V0QWdncmVnYXRvck5hbWUiLCJwdXNoIiwicyIsInN0YXJ0c1dpdGgiLCJiYWNrZ3JvdW5kQ29sb3IiLCJmbGV4U2hyaW5rIiwidGV4dEFsaWduIiwiYmciLCJzZXAiLCJhbGlnbkl0ZW1zIiwiYm9yZGVyQm90dG9tIiwiVGFibGUiLCJ2aWV3cG9ydCIsInRvcCIsImN1cnNvciIsInRhcmdldCIsIk1hdGgiLCJmbG9vciIsInNjcm9sbFRvcCIsImNsaWVudEhlaWdodCIsImNlaWwiLCJyb3ciLCJuZXdDdXJzb3IiLCJjb250cmFjdCIsImNvbnNvbGUiLCJsb2ciLCJleHBhbmQiLCJfc2Nyb2xsRGl2Iiwic2Nyb2xsRGl2IiwiZ2V0Um93cyIsImtleUNvZGUiLCJfa2VlcEN1cnNvckluVmlld3BvcnQiLCJnZXRIZWlnaHQiLCJjYW5Db250cmFjdCIsIl9jb250cmFjdFJvdyIsImdldFJvd0luZGVudCIsImluZGVudCIsImNhbkV4cGFuZCIsIl9leHBhbmRSb3ciLCJkIiwic0luZGV4IiwicGFyc2VJbnQiLCJzdWJzdHIiLCJkSW5kZXgiLCJhY3RpdmUiLCJkcmFnZ2VkIiwic3BsaWNlIiwic2V0QWN0aXZlQWdncmVnYXRvcnMiLCJzZXRBY3RpdmVFeHBhbmRlcnMiLCJzRXhwYW5kZXIiLCJzdWJzdHJpbmciLCJmbGV4R3JvdyIsInNjcm9sbCIsImRpdiIsInBvc2l0aW9uIiwicmVuZGVyVmlydHVhbGl6ZWRSb3dzIiwicm93cyIsInJlbmRlclJvdyIsImNoaWxkIiwiY29sdW1ucyIsInJvd1RleHQiLCJhZ2dyZWdhdGVzIiwicGFyZW50IiwiYWdncmVnYXRlIiwiZ2V0Um93QWdncmVnYXRlIiwibWFyZ2luTGVmdCIsImdldFJvd0xhYmVsIiwid2hpdGVTcGFjZSIsIm1hcmdpblJpZ2h0Iiwia2V5ZG93biIsImJpbmQiLCJkb2N1bWVudCIsImJvZHkiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztBQVNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLEdBQU1BLFdBQVksRUFBbEI7QUFDQSxHQUFNQyxZQUFhLEVBQW5CLEM7O0FBRU1DLFMsa0VBQW9DO0FBQ3hDLG1CQUFZQyxLQUFaLENBQW1CO0FBQ1hBLEtBRFc7QUFFbEIs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
Line truncated
|
||||
// @generated
|
||||
@@ -46,17 +46,16 @@ function stackData(stackIdMap, maxDepth) { // eslint-disable-line no-unused-vars
|
||||
};
|
||||
}
|
||||
|
||||
function stackRegistry(interner) { // eslint-disable-line no-unused-vars
|
||||
function stackRegistry() { // eslint-disable-line no-unused-vars
|
||||
return {
|
||||
root: { id: 0 },
|
||||
nodeCount: 1,
|
||||
insert: function insertNode(parent, label) {
|
||||
const labelId = interner.intern(label);
|
||||
let node = parent[labelId];
|
||||
insert: function insertNode(parent, frameId) {
|
||||
let node = parent[frameId];
|
||||
if (node === undefined) {
|
||||
node = { id: this.nodeCount };
|
||||
this.nodeCount++;
|
||||
parent[labelId] = node;
|
||||
parent[frameId] = node;
|
||||
}
|
||||
return node;
|
||||
},
|
||||
@@ -116,7 +115,7 @@ function stackRegistry(interner) { // eslint-disable-line no-unused-vars
|
||||
};
|
||||
}
|
||||
|
||||
function aggrow(strings, stacks, numRows) { // eslint-disable-line no-unused-vars
|
||||
function aggrow(numRows) { // eslint-disable-line no-unused-vars
|
||||
// expander ID definitions
|
||||
const FIELD_EXPANDER_ID_MIN = 0x0000;
|
||||
const FIELD_EXPANDER_ID_MAX = 0x7fff;
|
||||
@@ -142,17 +141,17 @@ function aggrow(strings, stacks, numRows) { // eslint-disable-line no-unused-var
|
||||
const NODE_REPOSITION_BIT = 0x0008; // children need position
|
||||
const NODE_INDENT_SHIFT = 16;
|
||||
|
||||
function calleeFrameGetter(stack, depth) {
|
||||
function calleeFrameIdGetter(stack, depth) {
|
||||
return stack[depth];
|
||||
}
|
||||
|
||||
function callerFrameGetter(stack, depth) {
|
||||
function callerFrameIdGetter(stack, depth) {
|
||||
return stack[stack.length - depth - 1];
|
||||
}
|
||||
|
||||
function createStackComparers(stackGetter, frameGetter) {
|
||||
const comparers = new Array(stacks.maxDepth);
|
||||
for (let depth = 0; depth < stacks.maxDepth; depth++) {
|
||||
function createStackComparers(stackGetter, frameIdGetter, maxStackDepth) {
|
||||
const comparers = new Array(maxStackDepth);
|
||||
for (let depth = 0; depth < maxStackDepth; depth++) {
|
||||
const captureDepth = depth; // NB: to capture depth per loop iteration
|
||||
comparers[depth] = function calleeStackComparer(rowA, rowB) {
|
||||
const a = stackGetter(rowA);
|
||||
@@ -166,7 +165,7 @@ function aggrow(strings, stacks, numRows) { // eslint-disable-line no-unused-var
|
||||
} else if (b.length <= captureDepth) {
|
||||
return 1;
|
||||
}
|
||||
return frameGetter(a, captureDepth) - frameGetter(b, captureDepth);
|
||||
return frameIdGetter(a, captureDepth) - frameIdGetter(b, captureDepth);
|
||||
};
|
||||
}
|
||||
return comparers;
|
||||
@@ -325,6 +324,7 @@ function aggrow(strings, stacks, numRows) { // eslint-disable-line no-unused-var
|
||||
function addChildrenWithStackExpander(row, expander, activeIndex, depth, nextActiveIndex) {
|
||||
const rowIndices = row.indices;
|
||||
const stackGetter = expander.stackGetter;
|
||||
const frameIdGetter = expander.frameIdGetter;
|
||||
const frameGetter = expander.frameGetter;
|
||||
const comparer = expander.comparers[depth];
|
||||
const expandNextFrame = activeIndex | ((depth + 1) << ACTIVE_EXPANDER_FRAME_SHIFT);
|
||||
@@ -357,10 +357,10 @@ function aggrow(strings, stacks, numRows) { // eslint-disable-line no-unused-var
|
||||
let end = begin + 1;
|
||||
while (end < rowIndices.length) {
|
||||
const endStack = stackGetter(rowIndices[end]);
|
||||
if (frameGetter(beginStack, depth) !== frameGetter(endStack, depth)) {
|
||||
if (frameIdGetter(beginStack, depth) !== frameIdGetter(endStack, depth)) {
|
||||
row.children.push(createTreeNode(
|
||||
row,
|
||||
columnName + strings.get(frameGetter(beginStack, depth)),
|
||||
columnName + frameGetter(frameIdGetter(beginStack, depth)),
|
||||
rowIndices.subarray(begin, end),
|
||||
expandNextFrame));
|
||||
begin = end;
|
||||
@@ -370,7 +370,7 @@ function aggrow(strings, stacks, numRows) { // eslint-disable-line no-unused-var
|
||||
}
|
||||
row.children.push(createTreeNode(
|
||||
row,
|
||||
columnName + strings.get(frameGetter(beginStack, depth)),
|
||||
columnName + frameGetter(frameIdGetter(beginStack, depth)),
|
||||
rowIndices.subarray(begin, end),
|
||||
expandNextFrame));
|
||||
}
|
||||
@@ -418,27 +418,29 @@ function aggrow(strings, stacks, numRows) { // eslint-disable-line no-unused-var
|
||||
});
|
||||
return FIELD_EXPANDER_ID_MIN + state.fieldExpanders.length - 1;
|
||||
},
|
||||
addCalleeStackExpander: function addCalleeStackExpander(name, stackGetter) {
|
||||
addCalleeStackExpander: function addCalleeStackExpander(name, maxStackDepth, stackGetter, frameGetter) {
|
||||
if (STACK_EXPANDER_ID_MIN + state.fieldExpanders.length >= STACK_EXPANDER_ID_MAX) {
|
||||
throw 'too many stack expanders!';
|
||||
}
|
||||
state.stackExpanders.push({
|
||||
name: name, // name for column
|
||||
stackGetter: stackGetter, // row index -> stack array
|
||||
comparers: createStackComparers(stackGetter, calleeFrameGetter), // depth -> comparer
|
||||
frameGetter: calleeFrameGetter, // (stack, depth) -> string id
|
||||
comparers: createStackComparers(stackGetter, calleeFrameIdGetter, maxStackDepth), // depth -> comparer
|
||||
frameIdGetter: calleeFrameIdGetter, // (stack, depth) -> string id
|
||||
frameGetter: frameGetter,
|
||||
});
|
||||
return STACK_EXPANDER_ID_MIN + state.stackExpanders.length - 1;
|
||||
},
|
||||
addCallerStackExpander: function addCallerStackExpander(name, stackGetter) {
|
||||
addCallerStackExpander: function addCallerStackExpander(name, maxStackDepth, stackGetter, frameGetter) {
|
||||
if (STACK_EXPANDER_ID_MIN + state.fieldExpanders.length >= STACK_EXPANDER_ID_MAX) {
|
||||
throw 'too many stack expanders!';
|
||||
}
|
||||
state.stackExpanders.push({
|
||||
name: name,
|
||||
stackGetter: stackGetter,
|
||||
comparers: createStackComparers(stackGetter, callerFrameGetter),
|
||||
frameGetter: callerFrameGetter,
|
||||
comparers: createStackComparers(stackGetter, callerFrameIdGetter, maxStackDepth),
|
||||
frameIdGetter: callerFrameIdGetter,
|
||||
frameGetter: frameGetter,
|
||||
});
|
||||
return STACK_EXPANDER_ID_MIN + state.stackExpanders.length - 1;
|
||||
},
|
||||
|
||||
@@ -145,28 +145,28 @@ function getInternalInstanceName(visitor) {
|
||||
return '#unknown';
|
||||
}
|
||||
|
||||
function buildReactComponentTree(visitor, registry) {
|
||||
function buildReactComponentTree(visitor, registry, strings) {
|
||||
const ref = visitor.getRef();
|
||||
if (ref.reactTree || ref.reactParent === undefined) {
|
||||
return; // has one or doesn't need one
|
||||
}
|
||||
const parentVisitor = ref.reactParent;
|
||||
if (parentVisitor === null) {
|
||||
ref.reactTree = registry.insert(registry.root, getInternalInstanceName(visitor));
|
||||
ref.reactTree = registry.insert(registry.root, strings.intern(getInternalInstanceName(visitor)));
|
||||
} else if (parentVisitor) {
|
||||
const parentRef = parentVisitor.getRef();
|
||||
buildReactComponentTree(parentVisitor, registry);
|
||||
buildReactComponentTree(parentVisitor, registry, strings);
|
||||
let relativeName = getInternalInstanceName(visitor);
|
||||
if (ref.reactKey) {
|
||||
relativeName = ref.reactKey + ': ' + relativeName;
|
||||
}
|
||||
ref.reactTree = registry.insert(parentRef.reactTree, relativeName);
|
||||
ref.reactTree = registry.insert(parentRef.reactTree, strings.intern(relativeName));
|
||||
} else {
|
||||
throw 'non react instance parent of react instance';
|
||||
}
|
||||
}
|
||||
|
||||
function markReactComponentTree(refs, registry) {
|
||||
function markReactComponentTree(refs, registry, strings) {
|
||||
// annotate all refs that are react internal instances with their parent and name
|
||||
// ref.reactParent = visitor that points to parent instance,
|
||||
// null if we know it's an instance, but don't have a parent yet
|
||||
@@ -201,7 +201,7 @@ function markReactComponentTree(refs, registry) {
|
||||
// build tree of react internal instances (since that's what has the structure)
|
||||
// fill in ref.reactTree = path registry node
|
||||
forEachRef(refs, (visitor) => {
|
||||
buildReactComponentTree(visitor, registry);
|
||||
buildReactComponentTree(visitor, registry, strings);
|
||||
});
|
||||
// hook in components by looking at their _reactInternalInstance fields
|
||||
forEachRef(refs, (visitor) => {
|
||||
@@ -253,14 +253,14 @@ function markModules(refs) {
|
||||
});
|
||||
}
|
||||
|
||||
function registerPathToRoot(refs, registry) {
|
||||
markReactComponentTree(refs, registry);
|
||||
function registerPathToRoot(refs, registry, strings) {
|
||||
markReactComponentTree(refs, registry, strings);
|
||||
markModules(refs);
|
||||
let breadth = [];
|
||||
forEachRef(refs, (visitor) => {
|
||||
const ref = visitor.getRef();
|
||||
if (ref.type === 'CallbackGlobalObject') {
|
||||
ref.rootPath = registry.insert(registry.root, ref.type);
|
||||
ref.rootPath = registry.insert(registry.root, strings.intern(ref.type));
|
||||
breadth.push(visitor.clone());
|
||||
}
|
||||
});
|
||||
@@ -276,7 +276,7 @@ function registerPathToRoot(refs, registry) {
|
||||
if (edgeName) {
|
||||
pathName = edgeName + ': ' + pathName;
|
||||
}
|
||||
edgeRef.rootPath = registry.insert(ref.rootPath, pathName);
|
||||
edgeRef.rootPath = registry.insert(ref.rootPath, strings.intern(pathName));
|
||||
nextBreadth.push(edgeVisitor.clone());
|
||||
// copy module and react tree forward
|
||||
if (edgeRef.module === undefined) {
|
||||
@@ -330,10 +330,10 @@ function captureRegistry() {
|
||||
let dataOffset = this.data.length;
|
||||
this.data = null;
|
||||
|
||||
registerPathToRoot(capture.refs, this.stacks);
|
||||
registerPathToRoot(capture.refs, this.stacks, this.strings);
|
||||
const internedCaptureId = this.strings.intern(captureId);
|
||||
const noneString = this.strings.intern('#none');
|
||||
const noneStack = this.stacks.insert(this.stacks.root, '#none');
|
||||
const noneStack = this.stacks.insert(this.stacks.root, noneString);
|
||||
forEachRef(capture.refs, (visitor) => {
|
||||
const ref = visitor.getRef();
|
||||
const id = visitor.id;
|
||||
@@ -382,7 +382,7 @@ function captureRegistry() {
|
||||
const agStacks = this.stacks.flatten();
|
||||
const agData = this.data;
|
||||
const agNumRows = agData.length / numFields;
|
||||
const ag = new aggrow(agStrings, agStacks, agNumRows);
|
||||
const ag = new aggrow(agNumRows);
|
||||
|
||||
ag.addFieldExpander('Id',
|
||||
function getId(row) {
|
||||
@@ -414,11 +414,19 @@ function captureRegistry() {
|
||||
return agData[rowA * numFields + traceField] - agData[rowB * numFields + traceField];
|
||||
});
|
||||
|
||||
const pathExpander = ag.addCalleeStackExpander('Path',
|
||||
function getStack(row) { return agStacks.get(agData[row * numFields + pathField]); });
|
||||
const pathExpander = ag.addCalleeStackExpander(
|
||||
'Path',
|
||||
agStacks.maxDepth,
|
||||
function getStack(row) { return agStacks.get(agData[row * numFields + pathField]); },
|
||||
function getFrame(id) { return agStrings.get(id); },
|
||||
);
|
||||
|
||||
const reactExpander = ag.addCalleeStackExpander('React Tree',
|
||||
function getStack(row) { return agStacks.get(agData[row * numFields + reactField]); });
|
||||
const reactExpander = ag.addCalleeStackExpander(
|
||||
'React Tree',
|
||||
agStacks.maxDepth,
|
||||
function getStack(row) { return agStacks.get(agData[row * numFields + reactField]); },
|
||||
function getFrame(id) { return agStrings.get(id); },
|
||||
);
|
||||
|
||||
const valueExpander = ag.addFieldExpander('Value',
|
||||
function getValue(row) { return agStrings.get(agData[row * numFields + valueField]); },
|
||||
|
||||
@@ -109,7 +109,7 @@ function symbolicateHeapCaptureFunctions(capture, onFailure, onSuccess) {
|
||||
if (original.name) {
|
||||
ref.value.name = original.name;
|
||||
} else if (!ref.value.name) {
|
||||
ref.value.name = path.posix.basename(original.source) + ':' + original.line;
|
||||
ref.value.name = path.posix.basename(original.source || '') + ':' + original.line;
|
||||
}
|
||||
ref.value.url = original.source;
|
||||
ref.value.line = original.line;
|
||||
|
||||
Reference in new issue
Block a user