* [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: