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
----------------------------------------------------------------------