patchProp(el, 'id', null, '')
expect(el.hasAttribute('id')).toBe(true)
+
+ // #2677
+ const img = document.createElement('img')
+ patchProp(img, 'width', null, '')
+ expect(el.hasAttribute('width')).toBe(false)
+ patchProp(img, 'width', null, 0)
+ expect(img.hasAttribute('width')).toBe(true)
+
+ patchProp(img, 'width', null, null)
+ expect(img.hasAttribute('width')).toBe(false)
+ patchProp(img, 'width', null, 0)
+ expect(img.hasAttribute('width')).toBe(true)
+
+ patchProp(img, 'width', null, undefined)
+ expect(img.hasAttribute('width')).toBe(false)
+ patchProp(img, 'width', null, 0)
+ expect(img.hasAttribute('width')).toBe(true)
})
test('form attribute', () => {
// e.g. <div :id="null">
el[key] = ''
el.removeAttribute(key)
+ } else if ((value == null || value === '') && typeof el[key] === 'number') {
+ // e.g. <img :width="null">
+ el[key] = 0
+ el.removeAttribute(key)
} else {
// some properties perform value validation and throw
try {