this.value[Symbol.iterator] is not a function
Author: thoughtsunificatorCreated Sep 2, 2026Updated Sep 2, 2026
Labelsneeds triage
"ava": "8.0.1"
import ava from "ava"
ava("Set a property and its value two depth deep", (test) => {
const dynamicObject = new DynamicObject()
dynamicObject.foo.bar = 1
console.log(dynamicObject.foo.bar)
test.deepEqual(dynamicObject.foo, {})
test.is(dynamicObject.foo.bar, 1)
})
function DynamicObject(_data={}) {
function wrapValue(t,p,v,handler) {
const s = Symbol()
const o = Proxy.revocable(v, handler)
t[p] = o.proxy
return o.proxy
}
const handler = {
get: (t, p) => {
let v = t[p]
if(!v) {
const placeholder = {}
const proxy = wrapValue(t, p, placeholder, handler)
v = proxy
}
return v
},
}
return new Proxy(_data, handler)
}Output is:
✘ [fail]: Set a property and its value two depth deep Error thrown in test
─
Set a property and its value two depth deep
Error thrown in test:
TypeError {
message: 'this.value[Symbol.iterator] is not a function',
}
TypeError: this.value[Symbol.iterator] is not a function
at ObjectValue.createIterableRecursor (/home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/node_modules/concordance/lib/complexValues/object.js:131:51)
at /home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/node_modules/concordance/lib/complexValues/object.js:207:82
at Object.replay (/home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/node_modules/concordance/lib/recursorUtils.js:55:22)
at Object.recursor (/home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/node_modules/concordance/lib/complexValues/object.js:207:44)
at format (/home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/node_modules/concordance/lib/diff.js:146:46)
at Object.diffDescriptors (/home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/node_modules/concordance/lib/diff.js:377:11)
at formatDescriptorDiff (file:///home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/node_modules/ava/lib/assert.js:16:26)
at ExecutionContext.deepEqual (file:///home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/node_modules/ava/lib/assert.js:342:24)
at file:///home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/index.js:7:7
at Test.callFn (file:///home/foo/p/nodejs-packages/ava/issue-symbol-iterator-is-not-a-function/node_modules/ava/lib/test.js:532:26)
─
1 test failed
shell returned 1
Press ENTER or type command to continueI expect the test to pass.
Source: avajs/ava