Răsfoiți Sursa

wip: make tests pass again

Evan You 5 ani în urmă
părinte
comite
f8e2361d83

+ 10 - 0
packages/runtime-core/src/compat/compatConfig.ts

@@ -41,3 +41,13 @@ export function softAssertCompatEnabled(key: DeprecationTypes, ...args: any[]) {
   }
   return isCompatEnabled(key)
 }
+
+// disable features that conflict with v3 behavior
+if (__TEST__) {
+  configureCompat({
+    COMPONENT_ASYNC: { enabled: false },
+    COMPONENT_FUNCTIONAL: { enabled: false },
+    WATCH_ARRAY: { enabled: false },
+    INSTANCE_ATTRS_CLASS_STYLE: { enabled: false }
+  })
+}

+ 1 - 1
packages/runtime-core/src/compat/component.ts

@@ -1,4 +1,4 @@
-import { isArray, isFunction, isObject, isPromise } from '@vue/shared/src'
+import { isArray, isFunction, isObject, isPromise } from '@vue/shared'
 import { defineAsyncComponent } from '../apiAsyncComponent'
 import { Component, ComponentOptions, FunctionalComponent } from '../component'
 import { isVNode } from '../vnode'

+ 1 - 1
packages/runtime-core/src/componentEmits.ts

@@ -57,7 +57,7 @@ export function emit(
       propsOptions: [propsOptions]
     } = instance
     if (emitsOptions) {
-      if (!(event in emitsOptions)) {
+      if (!(event in emitsOptions) && !event.startsWith('hook:')) {
         if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {
           warn(
             `Component emitted event "${event}" but it is neither declared in ` +

+ 5 - 2
packages/runtime-dom/src/directives/vOn.ts

@@ -60,8 +60,11 @@ export const withKeys = (fn: Function, modifiers: string[]) => {
   let globalKeyCodes: LegacyConfig['keyCodes']
   if (__COMPAT__) {
     if (compatUtils.isCompatEnabled(DeprecationTypes.CONFIG_KEY_CODES)) {
-      globalKeyCodes = ((getCurrentInstance()!.appContext
-        .config as any) as LegacyConfig).keyCodes
+      const instance = getCurrentInstance()
+      if (instance) {
+        globalKeyCodes = ((instance.appContext.config as any) as LegacyConfig)
+          .keyCodes
+      }
     }
     if (__DEV__ && modifiers.some(m => /^\d+$/.test(m))) {
       compatUtils.warnDeprecation(DeprecationTypes.V_ON_KEYCODE_MODIFIER)