diff --git a/lib/json-dry.js b/lib/json-dry.js index 6d2d1d5..b8c5ca9 100644 --- a/lib/json-dry.js +++ b/lib/json-dry.js @@ -956,7 +956,19 @@ class UndrierValue extends Value { if (placeholder.waiters.length) { while (placeholder.waiters.length) { let waiter = placeholder.waiters.shift(); - waiter.holder[waiter.key] = result; + let holder = waiter.holder; + + let recursive = 0; + while (holder && holder.$replaced) { + holder = holder.$replaced; + recursive++; + + if (recursive > 10) { + break; + } + } + + holder[waiter.key] = result; } } }