Просмотр исходного кода

fix(weex): donot rethrow the captured error on weex platform (#7024)

Hanks 8 лет назад
Родитель
Сommit
c2b1cfe9cc
2 измененных файлов с 7 добавлено и 4 удалено
  1. 5 2
      src/core/util/env.js
  2. 2 2
      src/core/util/error.js

+ 5 - 2
src/core/util/env.js

@@ -1,16 +1,19 @@
 /* @flow */
+declare var WXEnvironment: any;
 
 // can we use __proto__?
 export const hasProto = '__proto__' in {}
 
 // Browser environment sniffing
 export const inBrowser = typeof window !== 'undefined'
+export const inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform
+export const weexPlatform = inWeex && WXEnvironment.platform.toLowerCase()
 export const UA = inBrowser && window.navigator.userAgent.toLowerCase()
 export const isIE = UA && /msie|trident/.test(UA)
 export const isIE9 = UA && UA.indexOf('msie 9.0') > 0
 export const isEdge = UA && UA.indexOf('edge/') > 0
-export const isAndroid = UA && UA.indexOf('android') > 0
-export const isIOS = UA && /iphone|ipad|ipod|ios/.test(UA)
+export const isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android')
+export const isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios')
 export const isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge
 
 // Firefox has a "watch" function on Object.prototype...

+ 2 - 2
src/core/util/error.js

@@ -2,7 +2,7 @@
 
 import config from '../config'
 import { warn } from './debug'
-import { inBrowser } from './env'
+import { inBrowser, inWeex } from './env'
 
 export function handleError (err: Error, vm: any, info: string) {
   if (vm) {
@@ -40,7 +40,7 @@ function logError (err, vm, info) {
     warn(`Error in ${info}: "${err.toString()}"`, vm)
   }
   /* istanbul ignore else */
-  if (inBrowser && typeof console !== 'undefined') {
+  if ((inBrowser || inWeex) && typeof console !== 'undefined') {
     console.error(err)
   } else {
     throw err