From: Evan You Date: Tue, 17 Mar 2020 14:35:32 +0000 (-0400) Subject: fix(runtime-core): fix boolean props validation X-Git-Tag: v3.0.0-alpha.10~43 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3b282e7e3c96786af0a5ff61822882d1ed3f4db3;p=thirdparty%2Fvuejs%2Fcore.git fix(runtime-core): fix boolean props validation --- diff --git a/packages/runtime-core/__tests__/component.spec.ts b/packages/runtime-core/__tests__/component.spec.ts index 4fd8707b6b..dad6f8ca8b 100644 --- a/packages/runtime-core/__tests__/component.spec.ts +++ b/packages/runtime-core/__tests__/component.spec.ts @@ -6,11 +6,8 @@ import { nextTick, defineComponent } from '@vue/runtime-test' -import { mockWarn } from '@vue/shared' describe('renderer: component', () => { - mockWarn() - test.todo('should work') test.todo('shouldUpdateComponent') @@ -43,7 +40,6 @@ describe('renderer: component', () => { expect(b1).toBe(true) expect(b2).toBe(true) expect(b3).toBe('') - expect('type check failed for prop "b1"').toHaveBeenWarned() }) }) diff --git a/packages/runtime-core/src/componentProps.ts b/packages/runtime-core/src/componentProps.ts index c2cbb473d6..c243d5179e 100644 --- a/packages/runtime-core/src/componentProps.ts +++ b/packages/runtime-core/src/componentProps.ts @@ -156,7 +156,6 @@ export function resolveProps( const key = needCastKeys[i] let opt = options[key] if (opt == null) continue - const isAbsent = !hasOwn(props, key) const hasDefault = hasOwn(opt, 'default') const currentValue = props[key] // default values @@ -166,7 +165,7 @@ export function resolveProps( } // boolean casting if (opt[BooleanFlags.shouldCast]) { - if (isAbsent && !hasDefault) { + if (!hasOwn(props, key) && !hasDefault) { setProp(key, false) } else if ( opt[BooleanFlags.shouldCastTrue] && @@ -181,13 +180,7 @@ export function resolveProps( for (const key in options) { let opt = options[key] if (opt == null) continue - let rawValue - if (!(key in rawProps) && hyphenate(key) in rawProps) { - rawValue = rawProps[hyphenate(key)] - } else { - rawValue = rawProps[key] - } - validateProp(key, toRaw(rawValue), opt, !hasOwn(props, key)) + validateProp(key, props[key], opt, !hasOwn(props, key)) } } } else {