@memlab/core 1.1.39 → 1.1.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/lib/TestUtils.d.ts +1 -1
- package/dist/__tests__/lib/TestUtils.js +4 -5
- package/dist/__tests__/parser/HeapParser.test.d.ts +1 -1
- package/dist/__tests__/parser/HeapParser.test.js +1 -1
- package/dist/__tests__/parser/NodeHeap.test.d.ts +1 -1
- package/dist/__tests__/parser/NodeHeap.test.js +1 -1
- package/dist/__tests__/parser/StringNode.test.d.ts +1 -1
- package/dist/__tests__/parser/StringNode.test.js +1 -1
- package/dist/__tests__/parser/traverse/HeapNodeTraverse.test.d.ts +1 -1
- package/dist/__tests__/parser/traverse/HeapNodeTraverse.test.js +1 -1
- package/dist/__tests__/utils/utils.test.d.ts +1 -1
- package/dist/__tests__/utils/utils.test.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -3
- package/dist/lib/BaseOption.d.ts +1 -1
- package/dist/lib/BaseOption.js +1 -1
- package/dist/lib/BrowserInfo.d.ts +1 -1
- package/dist/lib/BrowserInfo.js +1 -1
- package/dist/lib/Config.d.ts +4 -1
- package/dist/lib/Config.d.ts.map +1 -1
- package/dist/lib/Config.js +29 -11
- package/dist/lib/Console.d.ts +1 -1
- package/dist/lib/Console.js +1 -1
- package/dist/lib/Constant.d.ts +1 -1
- package/dist/lib/Constant.js +1 -1
- package/dist/lib/FileManager.d.ts +1 -1
- package/dist/lib/FileManager.d.ts.map +1 -1
- package/dist/lib/FileManager.js +3 -3
- package/dist/lib/HeapAnalyzer.d.ts +1 -1
- package/dist/lib/HeapAnalyzer.js +9 -9
- package/dist/lib/HeapParser.d.ts +1 -1
- package/dist/lib/HeapParser.js +7 -7
- package/dist/lib/InternalValueSetter.d.ts +1 -1
- package/dist/lib/InternalValueSetter.js +3 -3
- package/dist/lib/NodeHeap.d.ts +1 -1
- package/dist/lib/NodeHeap.js +5 -6
- package/dist/lib/PackageInfoLoader.js +1 -1
- package/dist/lib/ProcessManager.d.ts +1 -1
- package/dist/lib/ProcessManager.js +1 -1
- package/dist/lib/RunInfoUtils.d.ts +1 -1
- package/dist/lib/SerializationHelper.d.ts +1 -1
- package/dist/lib/SerializationHelper.js +1 -1
- package/dist/lib/Serializer.d.ts +1 -1
- package/dist/lib/Serializer.d.ts.map +1 -1
- package/dist/lib/Serializer.js +28 -10
- package/dist/lib/StringLoader.d.ts +1 -2
- package/dist/lib/StringLoader.d.ts.map +1 -1
- package/dist/lib/StringLoader.js +1 -1
- package/dist/lib/TraceSampler.d.ts +1 -1
- package/dist/lib/TraceSampler.js +1 -1
- package/dist/lib/Types.d.ts +1 -1
- package/dist/lib/Types.js +1 -1
- package/dist/lib/Utils.d.ts +1 -1
- package/dist/lib/Utils.js +24 -15
- package/dist/lib/charts/MemoryBarChart.d.ts +1 -1
- package/dist/lib/charts/MemoryBarChart.js +1 -1
- package/dist/lib/heap-data/HeapEdge.d.ts +1 -1
- package/dist/lib/heap-data/HeapEdge.js +1 -1
- package/dist/lib/heap-data/HeapLocation.d.ts +1 -1
- package/dist/lib/heap-data/HeapLocation.js +1 -1
- package/dist/lib/heap-data/HeapNode.d.ts +1 -1
- package/dist/lib/heap-data/HeapNode.js +2 -3
- package/dist/lib/heap-data/HeapSnapshot.d.ts +1 -1
- package/dist/lib/heap-data/HeapSnapshot.js +1 -1
- package/dist/lib/heap-data/HeapStringNode.d.ts +1 -1
- package/dist/lib/heap-data/HeapStringNode.js +1 -1
- package/dist/lib/heap-data/HeapUtils.d.ts +1 -1
- package/dist/lib/heap-data/HeapUtils.js +3 -3
- package/dist/lib/heap-data/MemLabTagStore.d.ts +1 -1
- package/dist/lib/heap-data/MemLabTagStore.js +1 -1
- package/dist/lib/heap-data/utils/NumericDictionary.d.ts +1 -1
- package/dist/lib/heap-data/utils/NumericDictionary.js +1 -1
- package/dist/lib/leak-filters/BaseLeakFilter.rule.d.ts +1 -1
- package/dist/lib/leak-filters/BaseLeakFilter.rule.js +2 -2
- package/dist/lib/leak-filters/LeakFilterRuleList.d.ts +1 -1
- package/dist/lib/leak-filters/LeakFilterRuleList.js +1 -1
- package/dist/lib/leak-filters/LeakObjectFilter.d.ts +1 -1
- package/dist/lib/leak-filters/LeakObjectFilter.js +1 -1
- package/dist/lib/leak-filters/rules/FilterByExternalFilter.rule.d.ts +1 -1
- package/dist/lib/leak-filters/rules/FilterByExternalFilter.rule.js +1 -1
- package/dist/lib/leak-filters/rules/FilterDetachedDOMElement.rule.d.ts +1 -1
- package/dist/lib/leak-filters/rules/FilterDetachedDOMElement.rule.js +1 -1
- package/dist/lib/leak-filters/rules/FilterHermesNode.rule.d.ts +1 -1
- package/dist/lib/leak-filters/rules/FilterHermesNode.rule.js +1 -1
- package/dist/lib/leak-filters/rules/FilterOverSizedNodeAsLeak.rule.d.ts +1 -1
- package/dist/lib/leak-filters/rules/FilterOverSizedNodeAsLeak.rule.js +1 -1
- package/dist/lib/leak-filters/rules/FilterStackTraceFrame.rule.d.ts +1 -1
- package/dist/lib/leak-filters/rules/FilterStackTraceFrame.rule.js +1 -1
- package/dist/lib/leak-filters/rules/FilterTrivialNode.rule.d.ts +1 -1
- package/dist/lib/leak-filters/rules/FilterTrivialNode.rule.js +1 -1
- package/dist/lib/leak-filters/rules/FilterUnmountedFiberNode.rule.d.ts +1 -1
- package/dist/lib/leak-filters/rules/FilterUnmountedFiberNode.rule.js +1 -1
- package/dist/lib/leak-filters/rules/FilterUserTaggedLeaks.rule.d.ts +1 -1
- package/dist/lib/leak-filters/rules/FilterUserTaggedLeaks.rule.js +1 -1
- package/dist/lib/leak-filters/rules/FilterXMLHTTPRequest.rule.d.ts +1 -1
- package/dist/lib/leak-filters/rules/FilterXMLHTTPRequest.rule.js +1 -1
- package/dist/lib/trace-filters/BaseTraceFilter.rule.d.ts +1 -1
- package/dist/lib/trace-filters/BaseTraceFilter.rule.js +2 -2
- package/dist/lib/trace-filters/LeakTraceFilter.d.ts +1 -1
- package/dist/lib/trace-filters/LeakTraceFilter.js +1 -1
- package/dist/lib/trace-filters/TraceFilterRuleList.d.ts +1 -1
- package/dist/lib/trace-filters/TraceFilterRuleList.js +1 -1
- package/dist/lib/trace-filters/rules/FilterAttachedDOMToDetachedDOMTrace.rule.d.ts +1 -1
- package/dist/lib/trace-filters/rules/FilterAttachedDOMToDetachedDOMTrace.rule.js +1 -1
- package/dist/lib/trace-filters/rules/FilterCppRootsToDetachedDOMTrace.rule.d.ts +1 -1
- package/dist/lib/trace-filters/rules/FilterCppRootsToDetachedDOMTrace.rule.js +1 -1
- package/dist/lib/trace-filters/rules/FilterDOMNodeChainTrace.rule.d.ts +1 -1
- package/dist/lib/trace-filters/rules/FilterDOMNodeChainTrace.rule.js +1 -1
- package/dist/lib/trace-filters/rules/FilterHermesTrace.rule.d.ts +1 -1
- package/dist/lib/trace-filters/rules/FilterHermesTrace.rule.js +1 -1
- package/dist/lib/trace-filters/rules/FilterInternalNodeTrace.rule.d.ts +1 -1
- package/dist/lib/trace-filters/rules/FilterInternalNodeTrace.rule.js +1 -1
- package/dist/lib/trace-filters/rules/FilterPendingActivitiesTrace.rule.d.ts +1 -1
- package/dist/lib/trace-filters/rules/FilterPendingActivitiesTrace.rule.js +1 -1
- package/dist/lib/trace-filters/rules/FilterShadowRootTrace.rule.d.ts +1 -1
- package/dist/lib/trace-filters/rules/FilterShadowRootTrace.rule.js +1 -1
- package/dist/lib/trace-filters/rules/FilterStyleEngineTrace.rule.d.ts +1 -1
- package/dist/lib/trace-filters/rules/FilterStyleEngineTrace.rule.js +1 -1
- package/dist/logger/LeakClusterLogger.d.ts +1 -1
- package/dist/logger/LeakClusterLogger.js +3 -3
- package/dist/logger/LeakTraceDetailsLogger.d.ts +1 -1
- package/dist/logger/LeakTraceDetailsLogger.js +1 -1
- package/dist/modes/BaseMode.d.ts +1 -1
- package/dist/modes/BaseMode.js +1 -1
- package/dist/modes/InteractionTestMode.d.ts +1 -1
- package/dist/modes/InteractionTestMode.js +1 -1
- package/dist/modes/MeasureMode.d.ts +1 -1
- package/dist/modes/MeasureMode.js +1 -1
- package/dist/modes/RunningModes.d.ts +1 -1
- package/dist/modes/RunningModes.js +1 -1
- package/dist/paths/TraceFinder.d.ts +1 -1
- package/dist/paths/TraceFinder.js +2 -2
- package/dist/trace-cluster/ClusterUtils.d.ts +1 -1
- package/dist/trace-cluster/ClusterUtils.d.ts.map +1 -1
- package/dist/trace-cluster/ClusterUtils.js +1 -1
- package/dist/trace-cluster/ClusterUtilsHelper.d.ts +1 -1
- package/dist/trace-cluster/ClusterUtilsHelper.d.ts.map +1 -1
- package/dist/trace-cluster/ClusterUtilsHelper.js +3 -3
- package/dist/trace-cluster/ClusteringHeuristics.d.ts +1 -1
- package/dist/trace-cluster/ClusteringHeuristics.d.ts.map +1 -1
- package/dist/trace-cluster/ClusteringHeuristics.js +1 -1
- package/dist/trace-cluster/EvalutationMetric.d.ts +1 -1
- package/dist/trace-cluster/EvalutationMetric.d.ts.map +1 -1
- package/dist/trace-cluster/EvalutationMetric.js +1 -1
- package/dist/trace-cluster/MultiIterationSeqClustering.d.ts +1 -1
- package/dist/trace-cluster/MultiIterationSeqClustering.js +1 -1
- package/dist/trace-cluster/SequentialClustering.d.ts +1 -1
- package/dist/trace-cluster/SequentialClustering.js +1 -1
- package/dist/trace-cluster/TraceBucket.d.ts +1 -1
- package/dist/trace-cluster/TraceBucket.js +1 -1
- package/dist/trace-cluster/TraceElement.d.ts +1 -1
- package/dist/trace-cluster/TraceElement.js +1 -1
- package/dist/trace-cluster/strategies/MLTraceSimilarityStrategy.d.ts +1 -1
- package/dist/trace-cluster/strategies/MLTraceSimilarityStrategy.js +1 -1
- package/dist/trace-cluster/strategies/TraceAsClusterStrategy.d.ts +1 -1
- package/dist/trace-cluster/strategies/TraceAsClusterStrategy.js +1 -1
- package/dist/trace-cluster/strategies/TraceSimilarityStrategy.d.ts +1 -1
- package/dist/trace-cluster/strategies/TraceSimilarityStrategy.js +1 -1
- package/dist/trace-cluster/strategies/machine-learning/DistanceMatrix.d.ts +2 -2
- package/dist/trace-cluster/strategies/machine-learning/DistanceMatrix.d.ts.map +1 -1
- package/dist/trace-cluster/strategies/machine-learning/DistanceMatrix.js +1 -1
- package/dist/trace-cluster/strategies/machine-learning/HAC.d.ts +2 -2
- package/dist/trace-cluster/strategies/machine-learning/HAC.d.ts.map +1 -1
- package/dist/trace-cluster/strategies/machine-learning/HAC.js +1 -1
- package/dist/trace-cluster/strategies/machine-learning/Ngram.d.ts +1 -1
- package/dist/trace-cluster/strategies/machine-learning/Ngram.js +2 -3
- package/dist/trace-cluster/strategies/machine-learning/TfidfVectorizer.d.ts +1 -1
- package/dist/trace-cluster/strategies/machine-learning/TfidfVectorizer.js +1 -1
- package/package.json +3 -3
package/dist/lib/NodeHeap.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
* @format
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
12
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -21,7 +21,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
21
21
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.
|
|
24
|
+
exports.tagObject = tagObject;
|
|
25
|
+
exports.dumpNodeHeapSnapshot = dumpNodeHeapSnapshot;
|
|
26
|
+
exports.getNodeInnocentHeap = getNodeInnocentHeap;
|
|
27
|
+
exports.takeNodeMinimalHeap = takeNodeMinimalHeap;
|
|
25
28
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
26
29
|
const path_1 = __importDefault(require("path"));
|
|
27
30
|
const v8_1 = __importDefault(require("v8"));
|
|
@@ -71,7 +74,6 @@ function tagObject(o, tag) {
|
|
|
71
74
|
MemLabTagStore_1.default.tagObject(o, tag);
|
|
72
75
|
return o;
|
|
73
76
|
}
|
|
74
|
-
exports.tagObject = tagObject;
|
|
75
77
|
/**
|
|
76
78
|
* Take a heap snapshot of the current program state and save it as a
|
|
77
79
|
* `.heapsnapshot` file under a randomly generated folder inside the system's
|
|
@@ -101,7 +103,6 @@ function dumpNodeHeapSnapshot() {
|
|
|
101
103
|
v8_1.default.writeHeapSnapshot(file);
|
|
102
104
|
return file;
|
|
103
105
|
}
|
|
104
|
-
exports.dumpNodeHeapSnapshot = dumpNodeHeapSnapshot;
|
|
105
106
|
/**
|
|
106
107
|
* Take a heap snapshot of the current program state
|
|
107
108
|
* and parse it as {@link IHeapSnapshot}. Notice that
|
|
@@ -137,7 +138,6 @@ function getNodeInnocentHeap() {
|
|
|
137
138
|
return snapshot;
|
|
138
139
|
});
|
|
139
140
|
}
|
|
140
|
-
exports.getNodeInnocentHeap = getNodeInnocentHeap;
|
|
141
141
|
/**
|
|
142
142
|
* Take a heap snapshot of the current program state
|
|
143
143
|
* and parse it as {@link IHeapSnapshot}. Notice that
|
|
@@ -171,4 +171,3 @@ function takeNodeMinimalHeap() {
|
|
|
171
171
|
return snapshot;
|
|
172
172
|
});
|
|
173
173
|
}
|
|
174
|
-
exports.takeNodeMinimalHeap = takeNodeMinimalHeap;
|
|
@@ -20,7 +20,7 @@ exports.PackageInfoLoader = void 0;
|
|
|
20
20
|
* LICENSE file in the root directory of this source tree.
|
|
21
21
|
*
|
|
22
22
|
* @format
|
|
23
|
-
* @oncall
|
|
23
|
+
* @oncall memory_lab
|
|
24
24
|
*/
|
|
25
25
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
26
26
|
const path_1 = __importDefault(require("path"));
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
* @format
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
|
-
* @oncall
|
|
8
|
+
* @oncall memory_lab
|
|
9
9
|
*/
|
|
10
10
|
import type { IHeapNode, IHeapSnapshot, ISerializationHelper, ISerializedInfo, JSONifyArgs, JSONifyOptions, Nullable } from './Types';
|
|
11
11
|
export declare class SerializationHelper implements ISerializationHelper {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
* @format
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
package/dist/lib/Serializer.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
|
-
* @oncall
|
|
8
|
+
* @oncall memory_lab
|
|
9
9
|
*/
|
|
10
10
|
import type { E2EStepInfo, HeapNodeIdSet, IHeapEdge, IHeapNode, IHeapSnapshot, ISerializedInfo, JSONifyArgs, LeakTracePathItem, Nullable } from './Types';
|
|
11
11
|
declare function JSONifyPath(path: LeakTracePathItem, snapshot: IHeapSnapshot, args: JSONifyArgs): Nullable<ISerializedInfo>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Serializer.d.ts","sourceRoot":"","sources":["../../src/lib/Serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EAEX,iBAAiB,EACjB,QAAQ,EAGT,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Serializer.d.ts","sourceRoot":"","sources":["../../src/lib/Serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EAEX,iBAAiB,EACjB,QAAQ,EAGT,MAAM,SAAS,CAAC;AAwejB,iBAAS,WAAW,CAClB,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,WAAW,GAChB,QAAQ,CAAC,eAAe,CAAC,CA8C3B;AA+ID,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AA6BF,iBAAS,kBAAkB,CACzB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CASR;AAED,KAAK,mBAAmB,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAChD,CAAC;AAEF,iBAAS,yBAAyB,CAChC,gBAAgB,EAAE,mBAAmB,EAAE,EACvC,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAgBR;AAED,iBAAS,8BAA8B,CACrC,gBAAgB,EAAE,mBAAmB,EAAE,GACtC,MAAM,CAMR;AAiBD,iBAAS,kBAAkB,CACzB,SAAS,EAAE,WAAW,EAAE,EACxB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAmBR;AAED,iBAAS,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAI7E;AAoBD,iBAAS,iBAAiB,CACxB,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAeR;AAkBD,iBAAS,aAAa,CACpB,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CA2ER;;;;;;;;;;;AAED,wBASE"}
|
package/dist/lib/Serializer.js
CHANGED
|
@@ -292,7 +292,7 @@ function iterateSelectedEdges(node, callback) {
|
|
|
292
292
|
return;
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
-
if (edgesProcessed++ >
|
|
295
|
+
if (edgesProcessed++ > Config_1.default.maxNumOfEdgesToJSONifyPerNode) {
|
|
296
296
|
return { stop: true };
|
|
297
297
|
}
|
|
298
298
|
return callback(edge);
|
|
@@ -323,42 +323,60 @@ function JSONifyOrdinaryValue(node, args, options) {
|
|
|
323
323
|
});
|
|
324
324
|
return info;
|
|
325
325
|
}
|
|
326
|
-
function
|
|
326
|
+
function reduceOptionDepths(options) {
|
|
327
|
+
const ret = Object.assign({}, options);
|
|
328
|
+
if (options.forceJSONifyDepth != null) {
|
|
329
|
+
const delta = options.forceJSONifyDepth <= 0 ? 0 : -1;
|
|
330
|
+
options.forceJSONifyDepth += delta;
|
|
331
|
+
}
|
|
332
|
+
return ret;
|
|
333
|
+
}
|
|
334
|
+
function reachedMaxDepth(options) {
|
|
335
|
+
if (options.forceJSONifyDepth == null) {
|
|
336
|
+
return false;
|
|
337
|
+
}
|
|
338
|
+
return options.forceJSONifyDepth <= 0;
|
|
339
|
+
}
|
|
340
|
+
function JSONifyNode(node, args, inputOptions) {
|
|
327
341
|
if (!node) {
|
|
328
342
|
return {};
|
|
329
343
|
}
|
|
330
344
|
let info;
|
|
345
|
+
const options = reduceOptionDepths(inputOptions);
|
|
331
346
|
// defense against infinite recursion
|
|
332
347
|
if (options.processedNodeId.has(node.id)) {
|
|
333
348
|
info = JSONifyNodeShallow(node);
|
|
334
349
|
return info;
|
|
335
350
|
}
|
|
336
351
|
options.processedNodeId.add(node.id);
|
|
337
|
-
const
|
|
338
|
-
if (Utils_1.default.isDetachedDOMNode(node) &&
|
|
352
|
+
const reachedDepthLimit = reachedMaxDepth(options);
|
|
353
|
+
if (Utils_1.default.isDetachedDOMNode(node) && !reachedDepthLimit) {
|
|
339
354
|
info = JSONifyDetachedHTMLElement(node, args, Object.assign(Object.assign({}, EMPTY_JSONIFY_OPTIONS), { processedNodeId: options.processedNodeId }));
|
|
340
355
|
}
|
|
341
|
-
else if (Utils_1.default.isFiberNode(node) &&
|
|
356
|
+
else if (Utils_1.default.isFiberNode(node) && !reachedDepthLimit) {
|
|
342
357
|
info = JSONifyFiberNode(node, args, options);
|
|
343
358
|
}
|
|
344
359
|
else if (Utils_1.default.shouldShowMoreInfo(node)) {
|
|
345
360
|
info = JSONifyNodeOneLevel(node);
|
|
346
361
|
}
|
|
347
|
-
else if (node.type === 'closure') {
|
|
362
|
+
else if (node.type === 'closure' && !reachedDepthLimit) {
|
|
348
363
|
info = JSONifyClosure(node, args, options);
|
|
349
364
|
}
|
|
350
|
-
else if (node.type === 'code') {
|
|
365
|
+
else if (node.type === 'code' && !reachedDepthLimit) {
|
|
351
366
|
info = JSONifyCode(node, args, options);
|
|
352
367
|
}
|
|
353
|
-
else if (node.name === 'system / Context') {
|
|
368
|
+
else if (node.name === 'system / Context' && !reachedDepthLimit) {
|
|
354
369
|
info = JSONifyContext(node, args, options);
|
|
355
370
|
}
|
|
356
371
|
else if (node.type === 'number') {
|
|
357
372
|
info = JSONifyNumberNode(node, args, options);
|
|
358
373
|
}
|
|
359
|
-
else {
|
|
374
|
+
else if (!reachedDepthLimit) {
|
|
360
375
|
info = JSONifyOrdinaryValue(node, args, options);
|
|
361
376
|
}
|
|
377
|
+
else {
|
|
378
|
+
info = JSONifyNodeInShort(node);
|
|
379
|
+
}
|
|
362
380
|
options.processedNodeId.delete(node.id);
|
|
363
381
|
if (node.location) {
|
|
364
382
|
info[`${filterJSONPropName('allocation location (extra)')}`] = {
|
|
@@ -405,7 +423,7 @@ function JSONifyPath(path, snapshot, args) {
|
|
|
405
423
|
nextNode.highlight = true;
|
|
406
424
|
}
|
|
407
425
|
const edgeRetainSize = pathItem.edgeRetainSize;
|
|
408
|
-
ret[`${idx++}: ${getEdgeNameInJSON(edge, edgeRetainSize)}${getNodeNameInJSON(nextNode, args)}`] = JSONifyNode(nextNode, args, Object.assign(Object.assign({}, EMPTY_JSONIFY_OPTIONS), { processedNodeId: new Set(), serializationHelper }));
|
|
426
|
+
ret[`${idx++}: ${getEdgeNameInJSON(edge, edgeRetainSize)}${getNodeNameInJSON(nextNode, args)}`] = JSONifyNode(nextNode, args, Object.assign(Object.assign({}, EMPTY_JSONIFY_OPTIONS), { processedNodeId: new Set(), serializationHelper, forceJSONifyDepth: Config_1.default.maxLevelsOfTraceToJSONify }));
|
|
409
427
|
pathItem = pathItem.next;
|
|
410
428
|
}
|
|
411
429
|
return ret;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringLoader.d.ts","sourceRoot":"","sources":["../../src/lib/StringLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG
|
|
1
|
+
{"version":3,"file":"StringLoader.d.ts","sourceRoot":"","sources":["../../src/lib/StringLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,WAAW,GAAG,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;AAIhD,cAAM,YAAY;IAChB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAY7C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkFtE,4BAA4B,CAC1B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,CAAC;IA8FlB,4BAA4B,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC;CAmHxB;;AAED,wBAAkC"}
|
package/dist/lib/StringLoader.js
CHANGED
package/dist/lib/TraceSampler.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
* @format
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
package/dist/lib/Types.d.ts
CHANGED
package/dist/lib/Types.js
CHANGED
package/dist/lib/Utils.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
|
-
* @oncall
|
|
8
|
+
* @oncall memory_lab
|
|
9
9
|
*/
|
|
10
10
|
import type { HaltOrThrowOptions, HeapNodeIdSet, ShellOptions, StringRecord } from './Types';
|
|
11
11
|
import { MemLabConfig } from './Config';
|
package/dist/lib/Utils.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
* @format
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
12
|
if (k2 === undefined) k2 = k;
|
|
@@ -24,13 +24,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
24
24
|
}) : function(o, v) {
|
|
25
25
|
o["default"] = v;
|
|
26
26
|
});
|
|
27
|
-
var __importStar = (this && this.__importStar) || function (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
27
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
28
|
+
var ownKeys = function(o) {
|
|
29
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
30
|
+
var ar = [];
|
|
31
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
32
|
+
return ar;
|
|
33
|
+
};
|
|
34
|
+
return ownKeys(o);
|
|
35
|
+
};
|
|
36
|
+
return function (mod) {
|
|
37
|
+
if (mod && mod.__esModule) return mod;
|
|
38
|
+
var result = {};
|
|
39
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
40
|
+
__setModuleDefault(result, mod);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
})();
|
|
34
44
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
35
45
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
36
46
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -44,7 +54,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
44
54
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
45
55
|
};
|
|
46
56
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
-
exports.
|
|
57
|
+
exports.resolveSnapshotFilePath = resolveSnapshotFilePath;
|
|
58
|
+
exports.runShell = runShell;
|
|
48
59
|
const fs_1 = __importDefault(require("fs"));
|
|
49
60
|
const path_1 = __importDefault(require("path"));
|
|
50
61
|
const child_process_1 = __importDefault(require("child_process"));
|
|
@@ -1158,8 +1169,8 @@ function checkUninstalledLibrary(ex) {
|
|
|
1158
1169
|
});
|
|
1159
1170
|
}
|
|
1160
1171
|
}
|
|
1161
|
-
function closePuppeteer(
|
|
1162
|
-
return __awaiter(this,
|
|
1172
|
+
function closePuppeteer(browser_1, pages_1) {
|
|
1173
|
+
return __awaiter(this, arguments, void 0, function* (browser, pages, options = {}) {
|
|
1163
1174
|
if (Config_1.default.isLocalPuppeteer && !options.warmup) {
|
|
1164
1175
|
yield Promise.all(pages.map(page => page.close()));
|
|
1165
1176
|
yield browser.disconnect();
|
|
@@ -1315,7 +1326,6 @@ function resolveSnapshotFilePath(snapshotFile) {
|
|
|
1315
1326
|
}
|
|
1316
1327
|
return file;
|
|
1317
1328
|
}
|
|
1318
|
-
exports.resolveSnapshotFilePath = resolveSnapshotFilePath;
|
|
1319
1329
|
function getSnapshotDirForAnalysis() {
|
|
1320
1330
|
const dir = Config_1.default.externalSnapshotDir;
|
|
1321
1331
|
if (!dir) {
|
|
@@ -1642,7 +1652,7 @@ function haltOrThrow(errorInfo, options = {}) {
|
|
|
1642
1652
|
var _a;
|
|
1643
1653
|
const err = getError(errorInfo);
|
|
1644
1654
|
const halt = () => __awaiter(this, void 0, void 0, function* () {
|
|
1645
|
-
var
|
|
1655
|
+
var _a;
|
|
1646
1656
|
if (options.printErrorBeforeHalting !== false) {
|
|
1647
1657
|
// only print the error.message when there is no
|
|
1648
1658
|
// primary message to print or there is no print callback
|
|
@@ -1651,7 +1661,7 @@ function haltOrThrow(errorInfo, options = {}) {
|
|
|
1651
1661
|
}
|
|
1652
1662
|
// only print stack trace in verbose mode
|
|
1653
1663
|
if (Config_1.default.verbose) {
|
|
1654
|
-
Console_1.default.lowLevel((
|
|
1664
|
+
Console_1.default.lowLevel((_a = err.stack) !== null && _a !== void 0 ? _a : '', {
|
|
1655
1665
|
annotation: Console_1.default.annotations.STACK_TRACE,
|
|
1656
1666
|
});
|
|
1657
1667
|
}
|
|
@@ -1802,7 +1812,6 @@ function runShell(command, options = {}) {
|
|
|
1802
1812
|
}
|
|
1803
1813
|
return ret && ret.toString('UTF-8');
|
|
1804
1814
|
}
|
|
1805
|
-
exports.runShell = runShell;
|
|
1806
1815
|
function getRetainedSize(node) {
|
|
1807
1816
|
return node.retainedSize;
|
|
1808
1817
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
8
|
* @lightSyntaxTransform
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
import type { IHeapNode, IHeapEdge, Nullable, EdgeIterationCallback, Predicator, IHeapStringNode, AnyRecord, AnyValue } from '../Types';
|
|
12
12
|
import type HeapSnapshot from './HeapSnapshot';
|
|
@@ -6,21 +6,20 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
8
|
* @lightSyntaxTransform
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
'use strict';
|
|
12
12
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.isHeapStringType =
|
|
16
|
+
exports.isHeapStringType = isHeapStringType;
|
|
17
17
|
const HeapUtils_1 = require("./HeapUtils");
|
|
18
18
|
const HeapEdge_1 = __importDefault(require("./HeapEdge"));
|
|
19
19
|
const HeapLocation_1 = __importDefault(require("./HeapLocation"));
|
|
20
20
|
function isHeapStringType(type) {
|
|
21
21
|
return ['string', 'sliced string', 'concatenated string'].includes(type);
|
|
22
22
|
}
|
|
23
|
-
exports.isHeapStringType = isHeapStringType;
|
|
24
23
|
class HeapNode {
|
|
25
24
|
constructor(heapSnapshot, idx) {
|
|
26
25
|
this.heapSnapshot = heapSnapshot;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
8
|
* @lightSyntaxTransform
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
import type { AnyRecord, AnyValue, IHeapNode, IHeapNodes, IHeapEdges, IHeapSnapshot, HeapNodeTypes, HeapEdgeTypes, HeapSnapshotMeta, RawHeapSnapshot, Nullable } from '../Types';
|
|
12
12
|
import HeapNode from './HeapNode';
|
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @format
|
|
8
8
|
* @lightSyntaxTransform
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
'use strict';
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.
|
|
13
|
+
exports.NodeDetachState = void 0;
|
|
14
|
+
exports.throwError = throwError;
|
|
14
15
|
exports.NodeDetachState = {
|
|
15
16
|
Unknown: 0,
|
|
16
17
|
Attached: 1,
|
|
@@ -22,4 +23,3 @@ function throwError(error) {
|
|
|
22
23
|
}
|
|
23
24
|
throw error;
|
|
24
25
|
}
|
|
25
|
-
exports.throwError = throwError;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
* @format
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.LeakObjectFilterRuleBase = exports.LeakDecision = void 0;
|
|
@@ -19,7 +19,7 @@ var LeakDecision;
|
|
|
19
19
|
LeakDecision["LEAK"] = "leak";
|
|
20
20
|
LeakDecision["MAYBE_LEAK"] = "maybe-leak";
|
|
21
21
|
LeakDecision["NOT_LEAK"] = "not-leak";
|
|
22
|
-
})(LeakDecision
|
|
22
|
+
})(LeakDecision || (exports.LeakDecision = LeakDecision = {}));
|
|
23
23
|
class LeakObjectFilterRuleBase {
|
|
24
24
|
beforeFiltering(
|
|
25
25
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
* @format
|
|
9
|
-
* @oncall
|
|
9
|
+
* @oncall memory_lab
|
|
10
10
|
*/
|
|
11
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|