aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@bcoe/v8-coverage/src/lib/clone.js
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/@bcoe/v8-coverage/src/lib/clone.js
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/@bcoe/v8-coverage/src/lib/clone.js')
-rw-r--r--vanilla/node_modules/@bcoe/v8-coverage/src/lib/clone.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/vanilla/node_modules/@bcoe/v8-coverage/src/lib/clone.js b/vanilla/node_modules/@bcoe/v8-coverage/src/lib/clone.js
new file mode 100644
index 0000000..44c5e27
--- /dev/null
+++ b/vanilla/node_modules/@bcoe/v8-coverage/src/lib/clone.js
@@ -0,0 +1,75 @@
+/**
+ * Creates a deep copy of a process coverage.
+ *
+ * @param processCov Process coverage to clone.
+ * @return Cloned process coverage.
+ */
+function cloneProcessCov(processCov) {
+ const result = [];
+ for (const scriptCov of processCov.result) {
+ result.push(cloneScriptCov(scriptCov));
+ }
+
+ return {
+ result,
+ };
+}
+
+/**
+ * Creates a deep copy of a script coverage.
+ *
+ * @param scriptCov Script coverage to clone.
+ * @return Cloned script coverage.
+ */
+function cloneScriptCov(scriptCov) {
+ const functions = [];
+ for (const functionCov of scriptCov.functions) {
+ functions.push(cloneFunctionCov(functionCov));
+ }
+
+ return {
+ scriptId: scriptCov.scriptId,
+ url: scriptCov.url,
+ functions,
+ };
+}
+
+/**
+ * Creates a deep copy of a function coverage.
+ *
+ * @param functionCov Function coverage to clone.
+ * @return Cloned function coverage.
+ */
+function cloneFunctionCov(functionCov) {
+ const ranges = [];
+ for (const rangeCov of functionCov.ranges) {
+ ranges.push(cloneRangeCov(rangeCov));
+ }
+
+ return {
+ functionName: functionCov.functionName,
+ ranges,
+ isBlockCoverage: functionCov.isBlockCoverage,
+ };
+}
+
+/**
+ * Creates a deep copy of a function coverage.
+ *
+ * @param rangeCov Range coverage to clone.
+ * @return Cloned range coverage.
+ */
+function cloneRangeCov(rangeCov) {
+ return {
+ startOffset: rangeCov.startOffset,
+ endOffset: rangeCov.endOffset,
+ count: rangeCov.count,
+ };
+}
+
+module.exports = {
+ cloneProcessCov,
+ cloneScriptCov,
+ cloneFunctionCov,
+ cloneRangeCov,
+};