]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(shared): toNumber should only coerce strings
authorEvan You <yyx990803@gmail.com>
Mon, 14 Nov 2022 09:50:56 +0000 (17:50 +0800)
committerEvan You <yyx990803@gmail.com>
Mon, 14 Nov 2022 09:50:56 +0000 (17:50 +0800)
packages/runtime-core/src/components/Suspense.ts
packages/shared/src/index.ts

index 6ccca1e26b84e07723a54586ffd6462e53bde47b..2862178758f85a422c66374cce6e099bdd3f9c22 100644 (file)
@@ -423,7 +423,7 @@ function createSuspenseBoundary(
     o: { parentNode, remove }
   } = rendererInternals
 
-  const timeout = toNumber(vnode.props && vnode.props.timeout)
+  const timeout = vnode.props ? toNumber(vnode.props.timeout) : undefined
   if (__DEV__) {
     assertNumber(timeout, `Suspense timeout`)
   }
index 5c1629d5bc45e791e5f5ec320b77d63811f950c4..e3fcd86627ba0ee4832baade5adb5206e22759f8 100644 (file)
@@ -163,10 +163,11 @@ export const looseToNumber = (val: any): any => {
 }
 
 /**
+ * Only conerces number-like strings
  * "123-foo" will be returned as-is
  */
 export const toNumber = (val: any): any => {
-  const n = Number(val)
+  const n = isString(val) ? Number(val) : NaN
   return isNaN(n) ? val : n
 }