You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by da...@apache.org on 2017/08/17 03:59:40 UTC

[23/43] incubator-weex git commit: Merge branch '0.16-dev' into jsfm-feature-0.22

Merge branch '0.16-dev' into jsfm-feature-0.22


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

Branch: refs/heads/0.16-dev
Commit: 229740a583b540e01e50fccfc3273bfc9415921f
Parents: 41c7877 1ebd484
Author: Hanks <zh...@gmail.com>
Authored: Tue Aug 8 17:01:41 2017 +0800
Committer: Hanks <zh...@gmail.com>
Committed: Tue Aug 8 17:01:41 2017 +0800

----------------------------------------------------------------------
 build/karma.vue.conf.js                         |   2 +-
 examples/vue/components/scroller.vue            |   9 +-
 examples/vue/modules/picker.vue                 | 149 ++++++++-----------
 .../vue/components/scrollable/scroller.js       |   8 +-
 .../render/vue/components/scrollable/style.css  |   5 +
 html5/render/vue/modules/dom.js                 |  97 ++++++------
 html5/runtime/bridge/normalize.js               |  13 +-
 html5/test/render/vue/modules/dom.js            |  17 ++-
 ios/playground/Podfile                          |   2 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |   4 +-
 .../WeexSDK/Sources/Component/WXEditComponent.m |  11 +-
 .../Sources/Component/WXImageComponent.m        |  29 ++--
 .../Sources/Component/WXTextAreaComponent.m     |   2 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h |   1 +
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m |  33 ++--
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |   1 +
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |   5 +
 .../Sources/Network/WXResourceResponse.h        |   2 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDefine.h      |   2 +
 package.json                                    |   3 +-
 pre-build/native-bundle-main.js                 |  16 +-
 test/pages/components/hyperlink_target.vue      |   1 +
 vue.html                                        |   3 +
 23 files changed, 228 insertions(+), 187 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/229740a5/html5/runtime/bridge/normalize.js
----------------------------------------------------------------------
diff --cc html5/runtime/bridge/normalize.js
index 5cdc08a,0000000..6913c63
mode 100644,000000..100644
--- a/html5/runtime/bridge/normalize.js
+++ b/html5/runtime/bridge/normalize.js
@@@ -1,72 -1,0 +1,81 @@@
 +import { typof, bufferToBase64, base64ToBuffer } from '../utils'
 +
 +/**
 + * Normalize a primitive value.
 + * @param  {any}        v
 + * @return {primitive}
 + */
 +export function normalizePrimitive (v) {
 +  const type = typof(v)
 +
 +  switch (type) {
 +    case 'Undefined':
 +    case 'Null':
 +      return ''
 +
 +    case 'RegExp':
 +      return v.toString()
 +    case 'Date':
 +      return v.toISOString()
 +
 +    case 'Number':
 +    case 'String':
 +    case 'Boolean':
-     case 'Array':
-     case 'Object':
 +      return v
 +
++    case 'Array':
++      return v.map(normalizePrimitive)
++
++    case 'Object': {
++      const obj = {}
++      for (const k in v) {
++        obj[k] = normalizePrimitive(v[k])
++      }
++      return obj
++    }
++
 +    case 'ArrayBuffer':
 +      return {
 +        '@type': 'binary',
 +        dataType: type,
 +        base64: bufferToBase64(v)
 +      }
 +
 +    case 'Int8Array':
 +    case 'Uint8Array':
 +    case 'Uint8ClampedArray':
 +    case 'Int16Array':
 +    case 'Uint16Array':
 +    case 'Int32Array':
 +    case 'Uint32Array':
 +    case 'Float32Array':
 +    case 'Float64Array':
 +      return {
 +        '@type': 'binary',
 +        dataType: type,
 +        base64: bufferToBase64(v.buffer)
 +      }
 +
 +    default:
 +      return JSON.stringify(v)
 +  }
 +}
 +
 +export function decodePrimitive (data) {
 +  if (typof(data) === 'Object') {
 +    // decode base64 into binary
 +    if (data['@type'] && data['@type'] === 'binary') {
 +      return base64ToBuffer(data.base64 || '')
 +    }
 +
 +    const realData = {}
 +    for (const key in data) {
 +      realData[key] = decodePrimitive(data[key])
 +    }
 +    return realData
 +  }
 +  if (typof(data) === 'Array') {
 +    return data.map(decodePrimitive)
 +  }
 +  return data
 +}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/229740a5/package.json
----------------------------------------------------------------------