Structured Clone Tester - Free Online Tool | IconVault
See what survives structuredClone() across 28 types: Map, Set, Date, Blob, Error, functions and more. Free.
Structured Clone Tester
What survives structuredClone() across 28 types
String
Survives"hello world" -> "hello world"
Strings clone exactly.
Number
Survives42.5 -> 42.5
Numbers clone exactly.
NaN
SurvivesNaN -> NaN
NaN survives (JSON would turn it into null).
Infinity
Survivesnull -> null
Infinity survives (JSON would turn it into null).
-0
Survives0 -> 0
Negative zero is preserved.
BigInt
Survives12345678901234567890n -> 12345678901234567890n
BigInts clone (JSON throws on them).
Boolean
Survivestrue -> true
Booleans clone exactly.
null
Survivesnull -> null
null clones exactly.
undefined
Survivesundefined -> undefined
undefined clones exactly.
Date
SurvivesDate(2026-01-15T10:30:00.000Z) -> Date(2026-01-15T10:30:00.000Z)
Dates clone as real Date objects, not strings.
RegExp
Survives/icon-[a-z]+/gi -> /icon-[a-z]+/gi
Source, flags and lastIndex are preserved.
Map
SurvivesMap(2) -> Map(2)
Maps clone with entries intact (JSON gives {}).
Set
SurvivesSet(3) -> Set(3)
Sets clone with values intact (JSON gives {}).
Array
Survives[1,"two",[3]] -> [1,"two",[3]]
Arrays deep-clone.
Plain object
Survives{"a":1,"b":{"c":[2,3]}} -> {"a":1,"b":{"c":[2,3]}}
Plain objects deep-clone.
Nested mixed
Survives{"d":"1970-01-01T00:00:00.000Z","m":{},"u":{"0":9}} -> {"d":"1970-01-01T00:00:00.000Z","m":{},"u":{"0":9}}
Nested special types all survive together.
Uint8Array
SurvivesUint8Array(3 bytes) -> Uint8Array(3 bytes)
Typed arrays keep their type and bytes.
Float64Array
SurvivesFloat64Array(16 bytes) -> Float64Array(16 bytes)
Typed arrays keep their type and values.
ArrayBuffer
SurvivesArrayBuffer(4) -> ArrayBuffer(4)
Raw buffers clone byte for byte.
DataView
SurvivesDataView(8 bytes) -> DataView(8 bytes)
DataViews clone with their bytes.
Blob
SurvivesBlob(5 bytes, "text/plain") -> Blob(5 bytes, "text/plain")
Blobs clone (bytes included), useful for file pipelines.
File
ThrowsBlob(4 bytes, "text/plain")
Files keep name, type and size.
Error
SurvivesError: boom -> Error: boom
Message and extra props survive, but the stack is regenerated and the subclass is lost.
DOMException
SurvivesNotFoundError: not here -> NotFoundError: not here
DOMExceptions clone with name and message intact.
Function
Throwsfunction () {...}
Functions are not serializable and throw DataCloneError.
Symbol
ThrowsSymbol(id)
Symbols are not serializable and throw DataCloneError.
Class instance
Survives{"x":3,"y":4} -> {"x":3,"y":4}
Own properties survive, but the prototype is dropped, so methods like dist() are lost.
Circular reference
Survives[circular] -> [circular]
Circular graphs clone correctly (JSON throws on them).
Tested live with your browser's own structuredClone().
About this tool
IconVault's Structured Clone Tester runs your browser's real structuredClone() against 28 value types and shows exactly what survives: Map, Set, Date, RegExp, typed arrays, ArrayBuffer, Blob, File, Error, DOMException, circular references and more. It is completely free and runs fully in your browser.
Each test is badged Survives, Changed or Throws, with a plain-English note about what happened. Copy the full report for documentation or debugging. If you have ever wondered why JSON.parse(JSON.stringify(x)) mangles your data, this shows you the better way.
Frequently asked questions
Popular searches
More tools
Code Playground
Write HTML, CSS & JS with live preview.
JSON Formatter
Beautify, validate & minify JSON.
Base64 Encoder
Encode & decode text and files.
JWT Decoder
Inspect tokens without sending them anywhere.
Coming soon
CLI
Coming soon
Figma plugin
Coming soon
VS Code extension
Coming soon
Chrome extension
Coming soon
AI icon generator
Coming soon
Team workspaces
Coming soon