* [jsfm] support to pass ArrayBuffer to native

Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/c938f642
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/c938f642
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/c938f642

Branch: refs/heads/0.16-dev
Commit: c938f6420499586dfd383de712b6af7fabbb3830
Parents: f40f596
Author: Hanks <zhanghan...@gmail.com>
Authored: Tue Aug 1 17:55:36 2017 +0800
Committer: Hanks <zhanghan...@gmail.com>
Committed: Tue Aug 1 17:55:36 2017 +0800

----------------------------------------------------------------------
 html5/runtime/task-center.js | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c938f642/html5/runtime/task-center.js
----------------------------------------------------------------------
diff --git a/html5/runtime/task-center.js b/html5/runtime/task-center.js
index e538631..6a0d273 100644
--- a/html5/runtime/task-center.js
+++ b/html5/runtime/task-center.js
@@ -45,7 +45,7 @@ export class TaskCenter {
 
   typof (v) {
     const s = Object.prototype.toString.call(v)
-    return s.substring(8, s.length - 1).toLowerCase()
+    return s.substring(8, s.length - 1)
   }
 
   /**
@@ -59,18 +59,18 @@ export class TaskCenter {
     const type = this.typof(v)
 
     switch (type) {
-      case 'undefined':
-      case 'null':
+      case 'Undefined':
+      case 'Null':
         return ''
-      case 'regexp':
+      case 'RegExp':
         return v.toString()
-      case 'date':
+      case 'Date':
         return v.toISOString()
-      case 'number':
-      case 'string':
-      case 'boolean':
-      case 'array':
-      case 'object':
+      case 'Number':
+      case 'String':
+      case 'Boolean':
+      case 'Array':
+      case 'Object':
         if (v instanceof Element) {
           return v.ref
         }
@@ -78,7 +78,21 @@ export class TaskCenter {
           return v.$el.ref
         }
         return v
-      case 'function':
+
+      case 'ArrayBuffer':
+        return { type, buffer: v }
+      case 'Int8Array':
+      case 'Uint8Array':
+      case 'Uint8ClampedArray':
+      case 'Int16Array':
+      case 'Uint16Array':
+      case 'Int32Array':
+      case 'Uint32Array':
+      case 'Float32Array':
+      case 'Float64Array':
+        return { type, buffer: v.buffer }
+
+      case 'Function':
         return this.callbackManager.add(v).toString()
       /* istanbul ignore next */
       default:

Reply via email to