`Reactive Set contains both the raw and reactive`
).toHaveBeenWarned()
})
+
+ it('thisArg', () => {
+ const raw = new Set([ 'value' ])
+ const proxy = reactive(raw)
+ const thisArg = {}
+ let count = 0
+ proxy.forEach(function (this :{}, value, _, set) {
+ ++count
+ expect(this).toBe(thisArg)
+ expect(value).toBe('value')
+ expect(set).toBe(proxy)
+ }, thisArg)
+ expect(count).toBe(1)
+ })
})
})
// 1. invoked with the reactive map as `this` and 3rd arg
// 2. the value received should be a corresponding reactive/readonly.
function wrappedCallback(value: unknown, key: unknown) {
- return callback.call(observed, wrap(value), wrap(key), observed)
+ return callback.call(thisArg, wrap(value), wrap(key), observed)
}
- return getProto(target).forEach.call(target, wrappedCallback, thisArg)
+ return getProto(target).forEach.call(target, wrappedCallback)
}
}