summaryrefslogtreecommitdiff
path: root/tests/node_compat/test/parallel/test-util-inspect-long-running.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/node_compat/test/parallel/test-util-inspect-long-running.js')
-rw-r--r--tests/node_compat/test/parallel/test-util-inspect-long-running.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/node_compat/test/parallel/test-util-inspect-long-running.js b/tests/node_compat/test/parallel/test-util-inspect-long-running.js
new file mode 100644
index 000000000..67dc03ba4
--- /dev/null
+++ b/tests/node_compat/test/parallel/test-util-inspect-long-running.js
@@ -0,0 +1,27 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+'use strict';
+
+require('../common');
+
+// Test that huge objects don't crash due to exceeding the maximum heap size.
+
+const util = require('util');
+
+// Create a difficult to stringify object. Without the artificial limitation
+// this would crash or throw an maximum string size error.
+let last = {};
+const obj = last;
+
+for (let i = 0; i < 1000; i++) {
+ last.next = { circular: obj, last, obj: { a: 1, b: 2, c: true } };
+ last = last.next;
+ obj[i] = last;
+}
+
+util.inspect(obj, { depth: Infinity });