Review Schema Markup Generator - Online JSON‑LD for Testimonials
Create a Review or aggregateRating structured data. Perfect for star ratings in search results. Copy the code.
UD5 Toolkit
Interactive deep copy tester — write any JavaScript object, clone it, and verify true deep cloning in real time.
Supported in all modern browsers// Run structuredClone() to see the original object here
// Run structuredClone() to see the cloned object here
| Type | Support | Notes |
|---|---|---|
| Primitives (string, number, boolean, null, undefined, bigint) | Fully preserved | |
| Plain Objects & Arrays | Deeply cloned | |
| Date | Preserved as Date instance | |
| RegExp | Preserved as RegExp instance | |
| Map & Set | Deeply cloned with entries | |
| ArrayBuffer & TypedArrays | Binary data preserved | |
| Blob & File | Preserved | |
| ImageData | Pixel data cloned | |
| Circular References | Handled natively | |
| NaN, Infinity, -Infinity | Preserved (unlike JSON) |
| Type | Support | Notes |
|---|---|---|
| Functions | Throws DataCloneError | |
| Symbols | Throws DataCloneError | |
| DOM Nodes | Throws DataCloneError | |
| WeakMap & WeakSet | Throws DataCloneError | |
| Prototype Chain | Not preserved; plain Object only | |
| Error.stack | Error objects clone but lose stack | |
| Class Instances | Lose prototype, become plain objects |
| Feature | structuredClone() | JSON methods | Spread / Object.assign |
|---|---|---|---|
| Deep Copy | Shallow only | ||
| Circular References | Throws error | ||
| Date objects | Becomes string | Shared ref | |
| RegExp | Becomes {} | Shared ref | |
| Map / Set | Not supported | Shared ref | |
| undefined values | Preserved | Removed | Preserved |
| NaN / Infinity | Preserved | → null | Preserved |
| ArrayBuffer | Shared ref | ||
| Blob / File | Shared ref |
JSON.parse(JSON.stringify()) and safer than manual shallow copying with spread operators.
JSON.parse(JSON.stringify()), which throws a TypeError: Converting circular structure to JSON error. Try the "Circular Reference" preset above to see it in action.
Window or MutationObserver. If your object graph contains any of these, a DataCloneError will be thrown. Additionally, prototype chains are not preserved — cloned class instances become plain objects. Error objects clone but lose their stack property.
undefined and NaN values, handles circular references, and is generally faster for complex objects. JSON methods are still useful when you need cross-environment serialization (e.g., sending data over HTTP) or when you intentionally want to strip functions and prototypes. For pure in-memory deep cloning in the browser, structuredClone() is the recommended approach.
@ungap/structured-clone. Check caniuse.com/structured-clone for the latest compatibility data.
Object.prototype. If you clone an instance of a custom class, the clone will be a plain object without the class's methods. If you need prototype preservation, consider a custom deep clone implementation or a library like Lodash's _.cloneDeep().
structuredClone(value, { transfer: [...] }) allows you to transfer ownership of ArrayBuffer objects (and similar transferable types) to the clone. After transfer, the original buffer becomes detached (length 0) and unusable. This is useful for zero-copy data transfer between workers. For basic deep cloning, you typically don't need this option — just call structuredClone(yourObject).
Create a Review or aggregateRating structured data. Perfect for star ratings in search results. Copy the code.
Paste a sample JSON object and generate a basic JSON Schema describing its types and required fields. Local inference.
Paste a passage and automatically remove every nth word to create a fill‑in‑the‑blank exercise. For teaching and self‑study.
Acquire and release locks across tabs. Prevent race conditions in IndexedDB or localStorage. Visual queue and lock state.
Execute GraphQL queries against any endpoint with variables and headers. Explore schema via introspection. All requests made directly from your browser.
Generate an Article or BlogPosting structured data with headline, author, and image. For rich blog results.
Create random strings of any length using custom character sets. Perfect for generating API tokens, salts, and unique codes. Fully client-side secure.
Run the classic FizzBuzz with custom rules. See the output for any range. A beginner programmer's playground.
Fill in a form to generate a valid package.json for your Node.js project. Includes popular scripts and fields. Local only.
Simulate memory page reference strings with FIFO, LRU, and Optimal algorithms. See page fault count. OS concept demo.
Build a complete Event structured data with performer, location, and dates. Get Google‑ready JSON‑LD for tickets.
Calculate large Fibonacci numbers in a Web Worker. See the UI remain responsive. Copy the pattern for your app.
Split a text into an array of individual characters, ready to paste into code. Options for quotes and newlines.
Build a recipe rich snippet by filling out ingredients, cook time, and nutrition. Get the valid JSON-LD code.
Create a Product structured data with reviews, price, and availability. Boost your ecommerce visibility in search.
Drop landmarks onto an aged parchment background to create a custom treasure map. Print for kids.
Open many parallel WebSocket connections and send messages. Test your server's concurrency. All from your browser.
Log your coin collection with country, year, grade, and images. Filter and export as spreadsheet. All data local.
Set a cron expression and see a calendar of the next 1,000 execution times. Never miss a schedule again.
Generate random icebreaker questions for meetings, parties, or classrooms. Categories for work, fun, and deep talks.
Enter your FAQ questions and answers, and get ready‑to‑paste JSON-LD structured data. Boost search appearance.
Browse thousands of Unicode characters, search by name or code, and copy symbols to clipboard. Supports emojis, arrows, and math symbols.
Search and extract values from a large JSON object using dot/bracket notation. Quickly locate deeply nested fields. Data stays local in your browser.
Experience the four stages of rock tumbling virtually. Start with rough stones and watch them polish over 'days'. Satisfying.
Add semi-transparent text watermark to images. Customize position, opacity, rotation, and font. Batch processing with instant download. Fully local & private.
Compare two JSON objects and see added, removed, or changed keys. Visual tree view with color highlighting. Handles nested structures. Local processing.
Paste a JSON object and see a dynamic, draggable tree graph representation. Excellent for debugging nested data.
Generate a sheet of random arithmetic problems (+, -, ×, ÷) with configurable digits. For kids and brain training.
Paste a JSON Schema and automatically render a complete, styled HTML form with validation. Perfect for prototyping APIs. Works entirely in the browser.
Test prompt formatting without calling an LLM. See how your prompt would look with different templates. Dev tool.