You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by zs...@apache.org on 2017/04/12 06:35:04 UTC

[01/12] incubator-weex git commit: add link from customer view to actul dom.

Repository: incubator-weex
Updated Branches:
  refs/heads/0.12-dev 579a2b320 -> 03f44343e


add link from customer view to actul dom.


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

Branch: refs/heads/0.12-dev
Commit: 87fb7947a6e739560d639276f053e9fee918a0a9
Parents: 80df1aa
Author: \u884c\u4e45 <yi...@alibaba-inc.com>
Authored: Thu Mar 30 11:55:06 2017 +0800
Committer: \u884c\u4e45 <yi...@alibaba-inc.com>
Committed: Thu Mar 30 11:55:06 2017 +0800

----------------------------------------------------------------------
 .../java/com/taobao/weex/ui/component/WXDiv.java |  4 +++-
 .../com/taobao/weex/ui/view/IRenderStatus.java   |  2 ++
 .../com/taobao/weex/ui/view/WXFrameLayout.java   | 19 ++++++++++++++++++-
 .../com/taobao/weex/ui/view/WXImageView.java     |  6 ++++++
 .../java/com/taobao/weex/ui/view/WXTextView.java |  7 +++++++
 5 files changed, 36 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/87fb7947/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java
index dec86e9..5ccc51f 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java
@@ -238,7 +238,9 @@ public class WXDiv extends WXVContainer<WXFrameLayout> {
 
   @Override
   protected WXFrameLayout initComponentHostView(@NonNull Context context) {
-    return new WXFrameLayout(context);
+    WXFrameLayout frameLayout =new WXFrameLayout(context);
+    frameLayout.holdComponent(this);
+    return frameLayout;
   }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/87fb7947/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
index 0c3de42..fceeae7 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
@@ -211,4 +211,6 @@ import com.taobao.weex.ui.component.WXComponent;
 public interface IRenderStatus<T extends WXComponent> {
 
   public void holdComponent(T component);
+
+  public T getComponent();
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/87fb7947/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
index 53b9749..58bb038 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
@@ -206,21 +206,27 @@ package com.taobao.weex.ui.view;
 
 import android.content.Context;
 import android.graphics.Canvas;
+import android.support.annotation.Nullable;
 import android.view.MotionEvent;
 import android.widget.FrameLayout;
 
+import com.taobao.weex.ui.component.WXDiv;
 import com.taobao.weex.ui.view.gesture.WXGesture;
 import com.taobao.weex.ui.view.gesture.WXGestureObservable;
 import com.taobao.weex.utils.WXViewUtils;
 
+import java.lang.ref.WeakReference;
+
 /**
  * FrameLayout wrapper
  *
  */
-public class WXFrameLayout extends FrameLayout implements WXGestureObservable {
+public class WXFrameLayout extends FrameLayout implements WXGestureObservable,IRenderStatus<WXDiv> {
 
   private WXGesture wxGesture;
 
+  private WeakReference<WXDiv> mWeakReference;
+
   public WXFrameLayout(Context context) {
     super(context);
   }
@@ -244,4 +250,15 @@ public class WXFrameLayout extends FrameLayout implements WXGestureObservable {
     WXViewUtils.clipCanvasWithinBorderBox(this, canvas);
     super.onDraw(canvas);
   }
+
+  @Override
+  public void holdComponent(WXDiv component) {
+    mWeakReference = new WeakReference<WXDiv>(component);
+  }
+
+  @Nullable
+  @Override
+  public WXDiv getComponent() {
+    return mWeakReference.get();
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/87fb7947/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
index 1f049f5..4e662e4 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
@@ -306,6 +306,12 @@ public class WXImageView extends ImageView implements WXGestureObservable,
     mWeakReference = new WeakReference<>(component);
   }
 
+  @Nullable
+  @Override
+  public WXImage getComponent() {
+    return mWeakReference.get();
+  }
+
   @Override
   public int getNaturalWidth() {
     Drawable drawable = getDrawable();

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/87fb7947/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
index 763328b..6fd6dda 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
@@ -206,6 +206,7 @@ package com.taobao.weex.ui.view;
 
 import android.content.Context;
 import android.graphics.Canvas;
+import android.support.annotation.Nullable;
 import android.text.Layout;
 import android.text.TextUtils;
 import android.view.MotionEvent;
@@ -297,4 +298,10 @@ public class WXTextView extends View implements WXGestureObservable, IWXTextView
   public void holdComponent(WXText component) {
     mWeakReference = new WeakReference<>(component);
   }
+
+  @Nullable
+  @Override
+  public WXText getComponent() {
+    return mWeakReference.get();
+  }
 }


[06/12] incubator-weex git commit: Merge remote-tracking branch 'origin/0.12-dev' into feature-android-vdom-properties

Posted by zs...@apache.org.
Merge remote-tracking branch 'origin/0.12-dev' into feature-android-vdom-properties


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

Branch: refs/heads/0.12-dev
Commit: 9fe977c166525b1f08607ac6edba57f5b43c200a
Parents: 5595415 41c8ef6
Author: \u884c\u4e45 <yi...@alibaba-inc.com>
Authored: Thu Apr 6 15:47:37 2017 +0800
Committer: \u884c\u4e45 <yi...@alibaba-inc.com>
Committed: Thu Apr 6 15:47:37 2017 +0800

----------------------------------------------------------------------
 android/sdk/assets/main.js                      |  14 +--
 .../java/com/taobao/weex/WXSDKInstance.java     |   5 +-
 build/config.js                                 |   8 +-
 build/karma.vue.conf.js                         |  15 ++-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |   8 --
 ios/sdk/WeexSDK/Resources/main.js               |  14 +--
 .../Component/WXComponent+GradientColor.h       |  18 ---
 .../Component/WXComponent+GradientColor.m       | 124 -------------------
 .../Sources/Component/WXComponent_internal.h    |   3 +
 .../WeexSDK/Sources/Layout/WXComponent+Layout.m |   1 -
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |  29 ++++-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |   2 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h     |  27 ++++
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.m     | 101 +++++++++++++++
 .../Sources/View/WXComponent+ViewManagement.m   |   1 -
 package.json                                    |   7 +-
 16 files changed, 195 insertions(+), 182 deletions(-)
----------------------------------------------------------------------



[11/12] incubator-weex git commit: Merge branch '0.12-dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex into 0.12-dev

Posted by zs...@apache.org.
Merge branch '0.12-dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex into 0.12-dev

* '0.12-dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex: (46 commits)
  * [test] fix js lint
  * [android] Change compiling error due to enableLayerType
  * [android] Fix layerType name in WXComponent
  * [ios] remove the overflow:hidden limit for border-x-x-radius on image component
  * [test] use '@ignore-' in test case description to ignore in run script
  * [all] add DISCLAIMER
  * [all] update LICENSE
  * [jsfm] fix lint err in license header
  * [ios] fix issue that image's frame can not be changed
  * [android] fix wximage#setSrc when view not created or after destory.
  * [android] fix npe when remove event
  * [android] update isHardwareSupport resuse isCPUSupport
  * [all] update NOTICE
  * [test] fix android code license
  * [test] update license header chck by danger
  * [test] change src-header to asf required
  * [ios] move UIGraphicsEndImageContext() to override endDrawContext:
  * [android] update NavigatorModule add judge callback
  * [android] update embed support activity lifecycle
  * [ios] use xcode 8.3
  ...

# Conflicts:
#	test/scripts/components/recycler.test.js


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

Branch: refs/heads/0.12-dev
Commit: cc45cdc8823431fd548c9c64a8637a4408522c40
Parents: 8dcc235 579a2b3
Author: zshshr <zh...@gmail.com>
Authored: Wed Apr 12 14:11:42 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Wed Apr 12 14:11:42 2017 +0800

----------------------------------------------------------------------
 .rat-excludes                                   |  11 +
 .travis.yml                                     |   2 +-
 DISCLAIMER                                      |   1 +
 LICENSE                                         |   2 +-
 NOTICE                                          |   7 +-
 .../alibaba/weex/commons/ApplicationTest.java   | 222 +-----
 .../weex/commons/AbstractWeexActivity.java      | 222 +-----
 .../weex/commons/SimpleWeexActivity.java        | 220 +-----
 .../weex/commons/WXAnalyzerDelegate.java        | 220 +-----
 .../alibaba/weex/commons/adapter/BlurTool.java  | 220 +-----
 .../commons/adapter/BlurTransformation.java     | 222 +-----
 .../adapter/DefaultWebSocketAdapter.java        | 220 +-----
 .../adapter/DefaultWebSocketAdapterFactory.java | 220 +-----
 .../commons/adapter/FrescoImageAdapter.java     | 220 +-----
 .../commons/adapter/FrescoImageComponent.java   | 220 +-----
 .../weex/commons/adapter/FrescoImageView.java   | 220 +-----
 .../weex/commons/adapter/ImageAdapter.java      | 220 +-----
 .../commons/adapter/JSExceptionAdapter.java     | 220 +-----
 .../alibaba/weex/commons/util/AssertUtil.java   | 220 +-----
 .../alibaba/weex/commons/util/ScreenUtil.java   | 220 +-----
 .../java/com/alibaba/weex/ApplicationTest.java  |  20 +-
 .../com/alibaba/weex/WeappJsBaseTestCase.java   |  18 +
 .../benchmark/BenchmarkActivityTestRule.java    | 218 +-----
 .../alibaba/weex/benchmark/BenchmarkTest.java   | 218 +-----
 .../com/alibaba/weex/benchmark/BoxPlot.java     | 218 +-----
 .../java/com/alibaba/weex/benchmark/Repeat.java | 218 +-----
 .../com/alibaba/weex/benchmark/RepeatRule.java  | 218 +-----
 .../weex/benchmark/WeexNativeCompareTest.java   | 218 +-----
 .../java/com/alibaba/weex/util/Falcon.java      |  18 +
 .../java/com/alibaba/weex/util/ScreenShot.java  |  18 +
 .../com/alibaba/weex/util/SdCardHelper.java     |  18 +
 .../java/com/alibaba/weex/util/TestFlow.java    |  18 +
 .../java/com/alibaba/weex/util/ViewUtil.java    |  18 +
 .../com/alibaba/weex/BenchmarkActivity.java     | 218 +-----
 .../java/com/alibaba/weex/IndexActivity.java    | 220 +-----
 .../java/com/alibaba/weex/SplashActivity.java   | 220 +-----
 .../src/main/java/com/alibaba/weex/Utility.java | 220 +-----
 .../java/com/alibaba/weex/WXApplication.java    | 220 +-----
 .../java/com/alibaba/weex/WXBaseActivity.java   | 220 +-----
 .../java/com/alibaba/weex/WXDebugActivity.java  | 220 +-----
 .../java/com/alibaba/weex/WXPageActivity.java   | 220 +-----
 .../com/alibaba/weex/constants/Constants.java   | 220 +-----
 .../alibaba/weex/extend/PlayDebugAdapter.java   | 220 +-----
 .../extend/WXInstanceStatisticsListener.java    | 220 +-----
 .../extend/adapter/InterceptWXHttpAdapter.java  | 220 +-----
 .../alibaba/weex/extend/component/RichText.java | 220 +-----
 .../extend/component/WXComponentSyncTest.java   | 220 +-----
 .../alibaba/weex/extend/component/WXMask.java   | 126 +---
 .../extend/component/dom/WXMaskDomObject.java   | 220 +-----
 .../weex/extend/module/GeolocationModule.java   | 220 +-----
 .../alibaba/weex/extend/module/MyModule.java    | 220 +-----
 .../weex/extend/module/RenderModule.java        | 220 +-----
 .../weex/extend/module/SyncTestModule.java      | 220 +-----
 .../weex/extend/module/WXEventModule.java       | 220 +-----
 .../extend/module/location/DefaultLocation.java | 222 +-----
 .../weex/extend/module/location/ILocatable.java | 220 +-----
 .../extend/module/location/LocationFactory.java | 220 +-----
 .../alibaba/weex/extend/view/WXMaskView.java    | 220 +-----
 .../alibaba/weex/https/HotRefreshManager.java   | 220 +-----
 .../com/alibaba/weex/https/WXHttpManager.java   | 220 +-----
 .../com/alibaba/weex/https/WXHttpResponse.java  | 220 +-----
 .../java/com/alibaba/weex/https/WXHttpTask.java | 220 +-----
 .../alibaba/weex/https/WXOkHttpDispatcher.java  | 220 +-----
 .../alibaba/weex/https/WXRequestListener.java   | 220 +-----
 android/sdk/license/LICENSE                     | 218 +-----
 .../taobao/weex/IWXActivityStateListener.java   | 220 +-----
 .../java/com/taobao/weex/IWXRenderListener.java | 220 +-----
 .../com/taobao/weex/IWXStatisticsListener.java  | 220 +-----
 .../main/java/com/taobao/weex/InitConfig.java   | 220 +-----
 .../java/com/taobao/weex/RenderContainer.java   | 220 +-----
 .../java/com/taobao/weex/WXEnvironment.java     | 238 +------
 .../com/taobao/weex/WXGlobalEventModule.java    | 126 +---
 .../com/taobao/weex/WXGlobalEventReceiver.java  | 220 +-----
 .../java/com/taobao/weex/WXRenderErrorCode.java | 220 +-----
 .../main/java/com/taobao/weex/WXSDKEngine.java  | 126 +---
 .../java/com/taobao/weex/WXSDKInstance.java     | 249 ++-----
 .../main/java/com/taobao/weex/WXSDKManager.java | 143 +---
 .../taobao/weex/adapter/DefaultUriAdapter.java  | 220 +-----
 .../weex/adapter/DefaultWXHttpAdapter.java      | 220 +-----
 .../taobao/weex/adapter/DrawableStrategy.java   | 218 +-----
 .../taobao/weex/adapter/IDrawableLoader.java    | 218 +-----
 .../taobao/weex/adapter/IWXDebugAdapter.java    | 220 +-----
 .../com/taobao/weex/adapter/IWXHttpAdapter.java | 220 +-----
 .../weex/adapter/IWXImgLoaderAdapter.java       | 220 +-----
 .../weex/adapter/IWXJSExceptionAdapter.java     | 220 +-----
 .../taobao/weex/adapter/IWXSoLoaderAdapter.java | 220 +-----
 .../weex/adapter/IWXUserTrackAdapter.java       | 220 +-----
 .../com/taobao/weex/adapter/URIAdapter.java     | 220 +-----
 .../com/taobao/weex/annotation/Component.java   | 220 +-----
 .../com/taobao/weex/annotation/JSMethod.java    | 220 +-----
 .../weex/appfram/clipboard/IWXClipboard.java    | 220 +-----
 .../appfram/clipboard/WXClipboardModule.java    | 220 +-----
 .../navigator/IActivityNavBarSetter.java        | 220 +-----
 .../appfram/navigator/WXNavigatorModule.java    | 130 +---
 .../weex/appfram/pickers/DatePickerImpl.java    | 220 +-----
 .../weex/appfram/pickers/WXPickersModule.java   | 220 +-----
 .../weex/appfram/storage/DefaultWXStorage.java  | 220 +-----
 .../taobao/weex/appfram/storage/IWXStorage.java | 220 +-----
 .../weex/appfram/storage/IWXStorageAdapter.java | 220 +-----
 .../appfram/storage/StorageResultHandler.java   | 220 +-----
 .../appfram/storage/WXSQLiteOpenHelper.java     | 220 +-----
 .../weex/appfram/storage/WXStorageModule.java   | 220 +-----
 .../appfram/websocket/IWebSocketAdapter.java    | 220 +-----
 .../websocket/IWebSocketAdapterFactory.java     | 220 +-----
 .../appfram/websocket/WebSocketCloseCodes.java  | 220 +-----
 .../weex/appfram/websocket/WebSocketModule.java | 220 +-----
 .../java/com/taobao/weex/bridge/Invoker.java    | 220 +-----
 .../java/com/taobao/weex/bridge/JSCallback.java | 220 +-----
 .../taobao/weex/bridge/JavascriptInvokable.java | 220 +-----
 .../com/taobao/weex/bridge/MethodInvoker.java   | 220 +-----
 .../com/taobao/weex/bridge/ModuleFactory.java   | 220 +-----
 .../taobao/weex/bridge/NativeInvokeHelper.java  | 220 +-----
 .../taobao/weex/bridge/SimpleJSCallback.java    | 220 +-----
 .../java/com/taobao/weex/bridge/WXBridge.java   | 220 +-----
 .../com/taobao/weex/bridge/WXBridgeManager.java | 220 +-----
 .../java/com/taobao/weex/bridge/WXHashMap.java  | 220 +-----
 .../java/com/taobao/weex/bridge/WXJSObject.java | 220 +-----
 .../com/taobao/weex/bridge/WXModuleManager.java | 220 +-----
 .../java/com/taobao/weex/bridge/WXParams.java   | 143 +---
 .../taobao/weex/bridge/WXServiceManager.java    | 220 +-----
 .../java/com/taobao/weex/bridge/WXTask.java     | 220 +-----
 .../taobao/weex/bridge/WXValidateProcessor.java | 220 +-----
 .../java/com/taobao/weex/common/Constants.java  | 220 +-----
 .../com/taobao/weex/common/Destroyable.java     | 220 +-----
 .../java/com/taobao/weex/common/IWXBridge.java  | 220 +-----
 .../com/taobao/weex/common/IWXDebugProxy.java   | 220 +-----
 .../java/com/taobao/weex/common/IWXObject.java  | 220 +-----
 .../java/com/taobao/weex/common/IWXTask.java    | 220 +-----
 .../taobao/weex/common/OnWXScrollListener.java  | 143 +---
 .../taobao/weex/common/TypeModuleFactory.java   | 220 +-----
 .../com/taobao/weex/common/WXCompatModule.java  | 220 +-----
 .../java/com/taobao/weex/common/WXConfig.java   | 220 +-----
 .../com/taobao/weex/common/WXErrorCode.java     | 220 +-----
 .../com/taobao/weex/common/WXException.java     | 220 +-----
 .../com/taobao/weex/common/WXImageSharpen.java  | 220 +-----
 .../com/taobao/weex/common/WXImageStrategy.java | 222 +-----
 .../com/taobao/weex/common/WXInstanceWrap.java  | 220 +-----
 .../taobao/weex/common/WXJSBridgeMsgType.java   | 220 +-----
 .../taobao/weex/common/WXJSEngineListener.java  | 220 +-----
 .../taobao/weex/common/WXJSExceptionInfo.java   | 220 +-----
 .../com/taobao/weex/common/WXJSService.java     | 220 +-----
 .../java/com/taobao/weex/common/WXModule.java   | 220 +-----
 .../com/taobao/weex/common/WXModuleAnno.java    | 222 +-----
 .../com/taobao/weex/common/WXPerformance.java   | 222 +-----
 .../com/taobao/weex/common/WXRefreshData.java   | 220 +-----
 .../taobao/weex/common/WXRenderStrategy.java    | 223 +-----
 .../java/com/taobao/weex/common/WXRequest.java  | 220 +-----
 .../taobao/weex/common/WXRequestListener.java   | 220 +-----
 .../java/com/taobao/weex/common/WXResponse.java | 220 +-----
 .../taobao/weex/common/WXRuntimeException.java  | 220 +-----
 .../java/com/taobao/weex/common/WXThread.java   | 220 +-----
 .../com/taobao/weex/dom/ApplyStyleConsumer.java | 220 +-----
 .../taobao/weex/dom/BasicEditTextDomObject.java | 220 +-----
 .../com/taobao/weex/dom/CSSAlignConvert.java    | 220 +-----
 .../weex/dom/CSSFlexDirectionConvert.java       | 220 +-----
 .../com/taobao/weex/dom/CSSJustifyConvert.java  | 220 +-----
 .../taobao/weex/dom/CSSPositionTypeConvert.java | 220 +-----
 .../com/taobao/weex/dom/CSSWrapConvert.java     | 220 +-----
 .../java/com/taobao/weex/dom/DOMAction.java     | 220 +-----
 .../com/taobao/weex/dom/DOMActionContext.java   | 220 +-----
 .../taobao/weex/dom/DOMActionContextImpl.java   | 220 +-----
 .../java/com/taobao/weex/dom/DomContext.java    | 220 +-----
 .../com/taobao/weex/dom/ImmutableDomObject.java | 220 +-----
 .../java/com/taobao/weex/dom/RenderAction.java  | 220 +-----
 .../taobao/weex/dom/RenderActionContext.java    | 220 +-----
 .../com/taobao/weex/dom/RenderActionTask.java   | 220 +-----
 .../weex/dom/SafePutConcurrentHashMap.java      | 220 +-----
 .../weex/dom/TextAreaEditTextDomObject.java     | 220 +-----
 .../main/java/com/taobao/weex/dom/WXAttr.java   | 220 +-----
 .../com/taobao/weex/dom/WXCellDomObject.java    | 218 +-----
 .../com/taobao/weex/dom/WXCustomStyleSpan.java  | 220 +-----
 .../java/com/taobao/weex/dom/WXDomHandler.java  | 220 +-----
 .../java/com/taobao/weex/dom/WXDomManager.java  | 220 +-----
 .../java/com/taobao/weex/dom/WXDomModule.java   | 220 +-----
 .../java/com/taobao/weex/dom/WXDomObject.java   | 220 +-----
 .../com/taobao/weex/dom/WXDomObjectFactory.java | 220 +-----
 .../java/com/taobao/weex/dom/WXDomRegistry.java | 220 +-----
 .../java/com/taobao/weex/dom/WXDomTask.java     | 220 +-----
 .../main/java/com/taobao/weex/dom/WXEvent.java  | 220 +-----
 .../com/taobao/weex/dom/WXImageQuality.java     | 222 +-----
 .../com/taobao/weex/dom/WXLineHeightSpan.java   | 220 +-----
 .../com/taobao/weex/dom/WXListDomObject.java    | 220 +-----
 .../taobao/weex/dom/WXRecyclerDomObject.java    | 220 +-----
 .../taobao/weex/dom/WXScrollerDomObject.java    | 220 +-----
 .../main/java/com/taobao/weex/dom/WXStyle.java  | 220 +-----
 .../com/taobao/weex/dom/WXSwitchDomObject.java  | 220 +-----
 .../com/taobao/weex/dom/WXTextDomObject.java    | 220 +-----
 .../dom/action/AbstractAddElementAction.java    | 220 +-----
 .../dom/action/AbstractLayoutFinishAction.java  | 220 +-----
 .../java/com/taobao/weex/dom/action/Action.java | 220 +-----
 .../com/taobao/weex/dom/action/Actions.java     | 220 +-----
 .../weex/dom/action/AddElementAction.java       | 220 +-----
 .../taobao/weex/dom/action/AddEventAction.java  | 220 +-----
 .../taobao/weex/dom/action/AddRuleAction.java   | 220 +-----
 .../taobao/weex/dom/action/AnimationAction.java | 221 +-----
 .../weex/dom/action/CreateBodyAction.java       | 220 +-----
 .../weex/dom/action/CreateFinishAction.java     | 220 +-----
 .../weex/dom/action/GetComponentRectAction.java | 220 +-----
 .../weex/dom/action/InvokeMethodAction.java     | 220 +-----
 .../weex/dom/action/MoveElementAction.java      | 220 +-----
 .../weex/dom/action/RefreshFinishAction.java    | 220 +-----
 .../weex/dom/action/RemoveElementAction.java    | 220 +-----
 .../weex/dom/action/RemoveEventAction.java      | 220 +-----
 .../weex/dom/action/ScrollToElementAction.java  | 220 +-----
 .../weex/dom/action/UpdateAttributeAction.java  | 220 +-----
 .../weex/dom/action/UpdateFinishAction.java     | 220 +-----
 .../weex/dom/action/UpdateStyleAction.java      | 220 +-----
 .../main/java/com/taobao/weex/http/Options.java | 220 +-----
 .../main/java/com/taobao/weex/http/Status.java  | 220 +-----
 .../java/com/taobao/weex/http/WXHttpUtil.java   | 220 +-----
 .../com/taobao/weex/http/WXStreamModule.java    | 220 +-----
 .../com/taobao/weex/ui/ComponentCreator.java    | 220 +-----
 .../weex/ui/ExternalLoaderComponentHolder.java  | 220 +-----
 .../weex/ui/IExternalComponentGetter.java       | 220 +-----
 .../taobao/weex/ui/IExternalMoudleGetter.java   | 220 +-----
 .../com/taobao/weex/ui/IFComponentHolder.java   | 220 +-----
 .../java/com/taobao/weex/ui/IWXRenderTask.java  | 220 +-----
 .../taobao/weex/ui/RenderActionContextImpl.java | 220 +-----
 .../taobao/weex/ui/SimpleComponentHolder.java   | 220 +-----
 .../com/taobao/weex/ui/WXComponentRegistry.java | 220 +-----
 .../com/taobao/weex/ui/WXRenderHandler.java     | 220 +-----
 .../com/taobao/weex/ui/WXRenderManager.java     | 220 +-----
 .../ui/animation/BackgroundColorProperty.java   | 218 +-----
 .../ui/animation/DimensionUpdateListener.java   | 218 +-----
 .../weex/ui/animation/WXAnimationBean.java      | 220 +-----
 .../weex/ui/animation/WXAnimationModule.java    | 220 +-----
 .../ui/component/AbstractEditComponent.java     | 222 +-----
 .../weex/ui/component/AppearanceHelper.java     | 220 +-----
 .../weex/ui/component/NestedContainer.java      | 220 +-----
 .../taobao/weex/ui/component/Scrollable.java    | 220 +-----
 .../com/taobao/weex/ui/component/Textarea.java  | 220 +-----
 .../java/com/taobao/weex/ui/component/WXA.java  | 220 +-----
 .../taobao/weex/ui/component/WXBaseRefresh.java | 220 +-----
 .../weex/ui/component/WXBasicComponentType.java | 220 +-----
 .../taobao/weex/ui/component/WXComponent.java   | 160 +----
 .../weex/ui/component/WXComponentFactory.java   | 220 +-----
 .../weex/ui/component/WXComponentProp.java      | 220 +-----
 .../com/taobao/weex/ui/component/WXDiv.java     | 220 +-----
 .../com/taobao/weex/ui/component/WXEmbed.java   | 262 ++-----
 .../com/taobao/weex/ui/component/WXHeader.java  | 220 +-----
 .../com/taobao/weex/ui/component/WXImage.java   | 225 +------
 .../taobao/weex/ui/component/WXIndicator.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXInput.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXLoading.java | 220 +-----
 .../weex/ui/component/WXLoadingIndicator.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXRefresh.java | 220 +-----
 .../taobao/weex/ui/component/WXScroller.java    | 220 +-----
 .../com/taobao/weex/ui/component/WXSlider.java  | 220 +-----
 .../weex/ui/component/WXSliderNeighbor.java     | 220 +-----
 .../com/taobao/weex/ui/component/WXSwitch.java  | 220 +-----
 .../com/taobao/weex/ui/component/WXText.java    | 220 +-----
 .../weex/ui/component/WXTextDecoration.java     | 220 +-----
 .../taobao/weex/ui/component/WXVContainer.java  | 220 +-----
 .../com/taobao/weex/ui/component/WXVideo.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXWeb.java     | 220 +-----
 .../component/helper/SoftKeyboardDetector.java  | 218 +-----
 .../ui/component/helper/WXStickyHelper.java     | 220 +-----
 .../ui/component/helper/WXTimeInputHelper.java  | 222 +-----
 .../ui/component/list/BasicListComponent.java   | 220 +-----
 .../component/list/HorizontalListComponent.java | 220 +-----
 .../ui/component/list/ListComponentView.java    | 220 +-----
 .../ui/component/list/SimpleListComponent.java  | 220 +-----
 .../ui/component/list/SimpleRecyclerView.java   | 220 +-----
 .../ui/component/list/StickyHeaderHelper.java   | 220 +-----
 .../taobao/weex/ui/component/list/WXCell.java   | 220 +-----
 .../weex/ui/component/list/WXListComponent.java | 220 +-----
 .../component/pesudo/OnActivePseudoListner.java | 220 +-----
 .../weex/ui/component/pesudo/PesudoStatus.java  | 220 +-----
 .../pesudo/TouchActivePseudoListener.java       | 220 +-----
 .../com/taobao/weex/ui/module/WXMetaModule.java | 220 +-----
 .../taobao/weex/ui/module/WXModalUIModule.java  | 222 +-----
 .../taobao/weex/ui/module/WXTimerModule.java    | 222 +-----
 .../taobao/weex/ui/module/WXWebViewModule.java  | 220 +-----
 .../com/taobao/weex/ui/view/IRenderStatus.java  | 218 +-----
 .../com/taobao/weex/ui/view/IWXScroller.java    | 220 +-----
 .../com/taobao/weex/ui/view/IWXTextView.java    | 220 +-----
 .../java/com/taobao/weex/ui/view/IWebView.java  | 220 +-----
 .../weex/ui/view/WXBaseCircleIndicator.java     | 222 +-----
 .../weex/ui/view/WXBaseRefreshLayout.java       | 220 +-----
 .../taobao/weex/ui/view/WXCircleIndicator.java  | 220 +-----
 .../weex/ui/view/WXCirclePageAdapter.java       | 220 +-----
 .../taobao/weex/ui/view/WXCircleViewPager.java  | 220 +-----
 .../com/taobao/weex/ui/view/WXEditText.java     | 220 +-----
 .../com/taobao/weex/ui/view/WXFrameLayout.java  | 220 +-----
 .../weex/ui/view/WXHorizontalScrollView.java    | 220 +-----
 .../com/taobao/weex/ui/view/WXImageView.java    | 220 +-----
 .../taobao/weex/ui/view/WXLoadingLayout.java    | 220 +-----
 .../taobao/weex/ui/view/WXRefreshLayout.java    | 220 +-----
 .../com/taobao/weex/ui/view/WXScrollView.java   | 220 +-----
 .../taobao/weex/ui/view/WXSmoothScroller.java   | 220 +-----
 .../com/taobao/weex/ui/view/WXSwitchView.java   | 220 +-----
 .../com/taobao/weex/ui/view/WXTextView.java     | 220 +-----
 .../com/taobao/weex/ui/view/WXVideoView.java    | 220 +-----
 .../java/com/taobao/weex/ui/view/WXWebView.java | 220 +-----
 .../weex/ui/view/border/BorderCorner.java       | 220 +-----
 .../weex/ui/view/border/BorderDrawable.java     | 222 +-----
 .../taobao/weex/ui/view/border/BorderEdge.java  | 220 +-----
 .../weex/ui/view/border/BorderRadiusType.java   | 218 +-----
 .../taobao/weex/ui/view/border/BorderStyle.java | 220 +-----
 .../taobao/weex/ui/view/border/BorderUtil.java  | 220 +-----
 .../view/border/BorderWidthStyleColorType.java  | 218 +-----
 .../weex/ui/view/border/BottomLeftCorner.java   | 220 +-----
 .../weex/ui/view/border/BottomRightCorner.java  | 220 +-----
 .../weex/ui/view/border/TopLeftCorner.java      | 220 +-----
 .../weex/ui/view/border/TopRightCorner.java     | 220 +-----
 .../taobao/weex/ui/view/gesture/WXGesture.java  | 222 +-----
 .../ui/view/gesture/WXGestureObservable.java    | 220 +-----
 .../weex/ui/view/gesture/WXGestureType.java     | 220 +-----
 .../listview/ExtendedLinearLayoutManager.java   | 220 +-----
 .../weex/ui/view/listview/WXRecyclerView.java   | 220 +-----
 .../listview/adapter/IOnLoadMoreListener.java   | 220 +-----
 .../adapter/IRecyclerAdapterListener.java       | 220 +-----
 .../listview/adapter/ListBaseViewHolder.java    | 220 +-----
 .../adapter/RecyclerViewBaseAdapter.java        | 222 +-----
 .../adapter/TransformItemDecoration.java        | 220 +-----
 .../adapter/WXRecyclerViewOnScrollListener.java | 220 +-----
 .../refresh/circlebar/CircleProgressBar.java    | 222 +-----
 .../circlebar/MaterialProgressDrawable.java     | 222 +-----
 .../ui/view/refresh/core/WXRefreshView.java     | 220 +-----
 .../ui/view/refresh/core/WXSwipeLayout.java     | 220 +-----
 .../ui/view/refresh/wrapper/BaseBounceView.java | 220 +-----
 .../refresh/wrapper/BounceRecyclerView.java     | 220 +-----
 .../refresh/wrapper/BounceScrollerView.java     | 220 +-----
 .../java/com/taobao/weex/utils/ATagUtil.java    | 218 +-----
 .../main/java/com/taobao/weex/utils/FontDO.java | 222 +-----
 .../com/taobao/weex/utils/FunctionParser.java   | 220 +-----
 .../com/taobao/weex/utils/ImageDrawable.java    | 218 +-----
 .../java/com/taobao/weex/utils/ImgURIUtil.java  | 218 +-----
 .../java/com/taobao/weex/utils/LogLevel.java    | 220 +-----
 .../java/com/taobao/weex/utils/OsVersion.java   | 220 +-----
 .../taobao/weex/utils/SingleFunctionParser.java | 218 +-----
 .../main/java/com/taobao/weex/utils/Trace.java  | 220 +-----
 .../com/taobao/weex/utils/TypefaceUtil.java     | 220 +-----
 .../taobao/weex/utils/WXDataStructureUtil.java  | 220 +-----
 .../java/com/taobao/weex/utils/WXDomUtils.java  | 218 +-----
 .../java/com/taobao/weex/utils/WXFileUtils.java | 220 +-----
 .../com/taobao/weex/utils/WXInterception.java   | 220 +-----
 .../java/com/taobao/weex/utils/WXJsonUtils.java | 220 +-----
 .../java/com/taobao/weex/utils/WXLogUtils.java  | 126 +---
 .../taobao/weex/utils/WXReflectionUtils.java    | 220 +-----
 .../com/taobao/weex/utils/WXResourceUtils.java  | 325 ++-------
 .../taobao/weex/utils/WXSoInstallMgrSdk.java    | 220 +-----
 .../java/com/taobao/weex/utils/WXUtils.java     | 220 +-----
 .../java/com/taobao/weex/utils/WXViewUtils.java | 220 +-----
 .../taobao/weex/utils/batch/BactchExecutor.java | 220 +-----
 .../weex/utils/batch/BatchOperationHelper.java  | 220 +-----
 .../taobao/weex/utils/batch/Interceptor.java    | 220 +-----
 .../test/java/com/taobao/weex/TestActivity.java | 220 +-----
 .../java/com/taobao/weex/TestApplication.java   | 220 +-----
 .../java/com/taobao/weex/WXSDKEngineTest.java   | 222 +-----
 .../java/com/taobao/weex/WXSDKInstanceTest.java | 222 +-----
 .../java/com/taobao/weex/WXSDKManagerTest.java  | 222 +-----
 .../weex/adapter/DefaultUriAdapterTest.java     | 222 +-----
 .../clipboard/WXClipboardModuleTest.java        | 222 +-----
 .../navigator/WXNavigatorModuleTest.java        | 222 +-----
 .../appfram/storage/DefaultWXStorageTest.java   | 222 +-----
 .../appfram/storage/WXStorageModuleTest.java    | 222 +-----
 .../taobao/weex/bridge/WXBridgeManagerTest.java | 222 +-----
 .../com/taobao/weex/bridge/WXBridgeTest.java    | 222 +-----
 .../com/taobao/weex/bridge/WXHashMapTest.java   | 220 +-----
 .../taobao/weex/bridge/WXModuleManagerTest.java | 222 +-----
 .../java/com/taobao/weex/common/TestModule.java | 220 +-----
 .../taobao/weex/common/TestModuleFactory.java   | 220 +-----
 .../com/taobao/weex/common/WXModuleTest.java    | 222 +-----
 .../java/com/taobao/weex/dom/TestDomObject.java | 220 +-----
 .../java/com/taobao/weex/dom/WXAttrTest.java    | 222 +-----
 .../com/taobao/weex/dom/WXDomManagerTest.java   | 222 +-----
 .../com/taobao/weex/dom/WXDomModuleTest.java    | 222 +-----
 .../com/taobao/weex/dom/WXDomObjectTest.java    | 222 +-----
 .../com/taobao/weex/dom/WXDomStatementTest.java | 222 +-----
 .../java/com/taobao/weex/dom/WXStyleTest.java   | 220 +-----
 .../taobao/weex/dom/WXTextDomObjectTest.java    | 222 +-----
 .../com/taobao/weex/dom/action/TestActions.java |  18 +
 .../taobao/weex/http/WXStreamModuleTest.java    | 220 +-----
 .../com/taobao/weex/ui/ComponentHolderTest.java | 222 +-----
 .../taobao/weex/ui/WXRenderStatementTest.java   | 222 +-----
 .../ui/animation/WXAnimationModuleTest.java     | 222 +-----
 .../taobao/weex/ui/component/ComponentTest.java | 220 +-----
 .../weex/ui/component/EditComponentTest.java    | 222 +-----
 .../taobao/weex/ui/component/TestComponent.java | 220 +-----
 .../taobao/weex/ui/component/TestConstants.java | 220 +-----
 .../taobao/weex/ui/component/TextareaTest.java  | 222 +-----
 .../weex/ui/component/WXComponentTest.java      | 222 +-----
 .../com/taobao/weex/ui/component/WXDivTest.java | 222 +-----
 .../taobao/weex/ui/component/WXEmbedTest.java   | 222 +-----
 .../taobao/weex/ui/component/WXHeaderTest.java  | 222 +-----
 .../taobao/weex/ui/component/WXImageTest.java   | 128 +---
 .../taobao/weex/ui/component/WXLoadingTest.java | 222 +-----
 .../taobao/weex/ui/component/WXRefreshTest.java | 222 +-----
 .../weex/ui/component/WXScrollerTest.java       | 222 +-----
 .../weex/ui/component/WXSliderNeighborTest.java | 222 +-----
 .../taobao/weex/ui/component/WXSliderTest.java  | 222 +-----
 .../taobao/weex/ui/component/WXSwitchTest.java  | 222 +-----
 .../taobao/weex/ui/component/WXTextTest.java    | 222 +-----
 .../taobao/weex/ui/component/WXVideoTest.java   | 222 +-----
 .../com/taobao/weex/ui/component/WXWebTest.java | 222 +-----
 .../component/helper/WXTimeInputHelperTest.java | 220 +-----
 .../ui/component/list/WXListComponentTest.java  | 222 +-----
 .../taobao/weex/ui/module/WXMetaModuleTest.java | 222 +-----
 .../weex/ui/module/WXModalUIModuleTest.java     | 222 +-----
 .../weex/ui/module/WXTimerModuleTest.java       | 222 +-----
 .../weex/ui/module/WXWebViewModuleTest.java     | 222 +-----
 .../weex/ui/view/WXCirclePageAdapterTest.java   | 222 +-----
 .../taobao/weex/ui/view/WXScrollViewTest.java   | 222 +-----
 .../com/taobao/weex/ui/view/WXWebViewTest.java  | 222 +-----
 .../weex/ui/view/border/BorderCornerTest.java   | 220 +-----
 .../weex/ui/view/border/BorderDrawableTest.java | 220 +-----
 .../weex/ui/view/gesture/WXGestureTest.java     | 222 +-----
 .../taobao/weex/utils/FunctionParserTest.java   | 222 +-----
 .../com/taobao/weex/utils/TypefaceUtilTest.java | 222 +-----
 .../com/taobao/weex/utils/WXFileUtilsTest.java  | 222 +-----
 .../com/taobao/weex/utils/WXJsonUtilsTest.java  | 222 +-----
 .../com/taobao/weex/utils/WXLogUtilsTest.java   | 222 +-----
 .../weex/utils/WXReflectionUtilsTest.java       | 222 +-----
 .../taobao/weex/utils/WXResourceUtilsTest.java  | 233 +------
 .../java/com/taobao/weex/utils/WXUtilsTest.java | 222 +-----
 .../configuration/MockitoConfiguration.java     | 220 +-----
 .../java/com/taobao/weex/ApplicationTest.java   |  20 +-
 .../main/java/com/taobao/weex/WXDebugTool.java  |  18 +
 .../java/com/taobao/weex/WXPFComponent.java     |  18 +
 .../main/java/com/taobao/weex/WXPrettyFish.java |  18 +
 .../taobao/weex/adapter/DefautDebugAdapter.java |  18 +
 .../taobao/weex/bridge/WXWebsocketBridge.java   | 220 +-----
 .../taobao/weex/scalpel/ScalpelFrameLayout.java |  18 +
 .../weex/websocket/WXWebSocketManager.java      | 126 +---
 .../java/com/taobao/weex/ExampleUnitTest.java   |  20 +-
 dangerfile.js                                   |  21 +-
 doc/source/cn/references/modules/modal.md       |   2 +
 doc/source/references/modules/modal.md          |   2 +
 examples/vue/components/sliderinfinite.vue      |  46 ++
 html5/frameworks/index.js                       |  18 +
 html5/frameworks/legacy/api/methods.js          |  18 +
 html5/frameworks/legacy/api/modules.js          |  18 +
 html5/frameworks/legacy/app/bundle/bootstrap.js |  18 +
 html5/frameworks/legacy/app/bundle/define.js    |  18 +
 html5/frameworks/legacy/app/bundle/index.js     |  18 +
 html5/frameworks/legacy/app/ctrl/index.js       |  18 +
 html5/frameworks/legacy/app/ctrl/init.js        |  18 +
 html5/frameworks/legacy/app/ctrl/misc.js        |  18 +
 html5/frameworks/legacy/app/differ.js           |  18 +
 html5/frameworks/legacy/app/downgrade.js        |  18 +
 html5/frameworks/legacy/app/index.js            |  18 +
 html5/frameworks/legacy/app/instance.js         |  18 +
 html5/frameworks/legacy/app/register.js         |  18 +
 html5/frameworks/legacy/app/viewport.js         |  18 +
 html5/frameworks/legacy/config.js               |  19 +
 html5/frameworks/legacy/core/array.js           |  19 +
 html5/frameworks/legacy/core/dep.js             |  19 +
 html5/frameworks/legacy/core/object.js          |  19 +
 html5/frameworks/legacy/core/observer.js        |  19 +
 html5/frameworks/legacy/core/state.js           |  19 +
 html5/frameworks/legacy/core/watcher.js         |  19 +
 html5/frameworks/legacy/index.js                |  18 +
 html5/frameworks/legacy/static/bridge.js        |  18 +
 html5/frameworks/legacy/static/create.js        |  18 +
 html5/frameworks/legacy/static/life.js          |  18 +
 html5/frameworks/legacy/static/map.js           |  18 +
 html5/frameworks/legacy/static/misc.js          |  18 +
 html5/frameworks/legacy/static/register.js      |  18 +
 html5/frameworks/legacy/util/index.js           |  18 +
 html5/frameworks/legacy/util/shared.js          |  18 +
 html5/frameworks/legacy/vm/compiler.js          |  18 +
 html5/frameworks/legacy/vm/directive.js         |  18 +
 html5/frameworks/legacy/vm/dom-helper.js        |  18 +
 html5/frameworks/legacy/vm/events.js            |  18 +
 html5/frameworks/legacy/vm/index.js             |  18 +
 html5/frameworks/vanilla/index.js               |  18 +
 html5/render/browser/base/atomic.js             |  18 +
 html5/render/browser/base/component/flexbox.js  |  18 +
 html5/render/browser/base/component/index.js    |  18 +
 html5/render/browser/base/component/lazyload.js |  18 +
 html5/render/browser/base/component/operate.js  |  18 +
 html5/render/browser/base/component/position.js |  18 +
 html5/render/browser/base/component/sticky.js   |  18 +
 .../browser/base/component/valueFilter.js       |  18 +
 html5/render/browser/base/div.js                |  18 +
 html5/render/browser/base/droot.js              |  18 +
 html5/render/browser/base/moduleEvent.js        |  18 +
 html5/render/browser/base/root.js               |  18 +
 html5/render/browser/bridge/index.js            |  18 +
 html5/render/browser/bridge/protocol.js         |  18 +
 html5/render/browser/bridge/receiver.js         |  18 +
 html5/render/browser/bridge/sender.js           |  18 +
 html5/render/browser/dom/appearWatcher.js       |  18 +
 html5/render/browser/dom/componentManager.js    |  18 +
 html5/render/browser/dom/index.js               |  18 +
 .../browser/extend/api/animation/index.js       |  18 +
 .../render/browser/extend/api/animation/lib.js  |  18 +
 html5/render/browser/extend/api/clipboard.js    |  18 +
 html5/render/browser/extend/api/dom.js          |  18 +
 html5/render/browser/extend/api/event.js        |  18 +
 html5/render/browser/extend/api/geolocation.js  |  18 +
 html5/render/browser/extend/api/globalEvent.js  |  18 +
 html5/render/browser/extend/api/meta.js         |  18 +
 html5/render/browser/extend/api/modal.js        |  18 +
 html5/render/browser/extend/api/navigator.js    |  18 +
 html5/render/browser/extend/api/pageInfo.js     |  18 +
 html5/render/browser/extend/api/storage.js      |  19 +
 html5/render/browser/extend/api/stream.js       |  18 +
 html5/render/browser/extend/api/timer.js        |  19 +-
 html5/render/browser/extend/api/webSocket.js    |  19 +
 html5/render/browser/extend/api/webview.js      |  18 +
 html5/render/browser/extend/components/a.js     |  18 +
 .../browser/extend/components/countdown.js      |  18 +
 .../browser/extend/components/datepicker.js     |  18 +
 html5/render/browser/extend/components/embed.js |  18 +
 .../browser/extend/components/image/index.js    |  18 +
 .../extend/components/indicator/index.js        |  18 +
 html5/render/browser/extend/components/input.js |  18 +
 .../render/browser/extend/components/marquee.js |  18 +
 .../browser/extend/components/neighbor/index.js |  18 +
 .../browser/extend/components/richtext.js       |  18 +
 .../extend/components/scrollable/index.js       |  18 +
 .../extend/components/scrollable/list/hlist.js  |  18 +
 .../extend/components/scrollable/list/index.js  |  18 +
 .../extend/components/scrollable/list/list.js   |  18 +
 .../extend/components/scrollable/list/vlist.js  |  18 +
 .../components/scrollable/loading/index.js      |  18 +
 .../extend/components/scrollable/motion.js      |  18 +
 .../components/scrollable/refresh/index.js      |  18 +
 .../extend/components/scrollable/scroll.js      |  19 +
 .../extend/components/scrollable/scrollable.js  |  18 +
 .../components/scrollable/scroller/index.js     |  18 +
 .../render/browser/extend/components/select.js  |  18 +
 .../extend/components/slider/carrousel.js       |  19 +
 .../browser/extend/components/slider/index.js   |  18 +
 .../browser/extend/components/slider/timer.js   |  19 +
 .../browser/extend/components/spinner/index.js  |  18 +
 .../browser/extend/components/switch/index.js   |  18 +
 .../extend/components/tabheader/index.js        |  18 +
 html5/render/browser/extend/components/text.js  |  18 +
 .../browser/extend/components/textarea.js       |  18 +
 .../browser/extend/components/timepicker.js     |  18 +
 .../browser/extend/components/video/index.js    |  18 +
 html5/render/browser/extend/components/web.js   |  18 +
 html5/render/browser/extend/index.js            |  18 +
 html5/render/browser/index.js                   |  18 +
 html5/render/browser/render/config.js           |  18 +
 html5/render/browser/render/gesture.js          |  18 +
 html5/render/browser/render/index.js            |  19 +
 html5/render/browser/render/loader.js           |  19 +
 html5/render/browser/render/register.js         |  18 +
 html5/render/browser/utils/array.js             |  18 +
 html5/render/browser/utils/index.js             |  19 +
 html5/render/browser/utils/logger.js            |  20 +-
 html5/render/native/index.js                    |  18 +
 html5/render/vue/components/a.js                |  19 +-
 html5/render/vue/components/div.js              |  19 +-
 html5/render/vue/components/image.js            |  19 +
 html5/render/vue/components/index.js            |  18 +
 html5/render/vue/components/input.js            |  19 +
 .../render/vue/components/scrollable/header.js  |  19 +-
 .../vue/components/scrollable/list/cell.js      |  19 +-
 .../vue/components/scrollable/list/index.js     |  18 +
 .../vue/components/scrollable/list/listMixin.js |  18 +
 .../components/scrollable/loading-indicator.js  |  18 +
 .../render/vue/components/scrollable/loading.js |  18 +
 .../render/vue/components/scrollable/refresh.js |  18 +
 .../vue/components/scrollable/scroller.js       |  18 +
 html5/render/vue/components/slider/index.js     |  25 +-
 html5/render/vue/components/slider/indicator.js |  18 +
 .../render/vue/components/slider/slideMixin.js  |  42 +-
 html5/render/vue/components/switch.js           |  19 +-
 html5/render/vue/components/text.js             |  19 +
 html5/render/vue/components/textarea.js         |  18 +
 html5/render/vue/components/video.js            |  19 +-
 html5/render/vue/components/warning.js          |  18 +
 html5/render/vue/components/web.js              |  18 +
 html5/render/vue/env/index.js                   |  18 +
 html5/render/vue/env/viewport.js                |  20 +
 html5/render/vue/env/weex.js                    |  19 +
 html5/render/vue/env/wx-env.js                  |  18 +
 html5/render/vue/index.js                       |  19 +-
 html5/render/vue/mixins/base.js                 |  18 +
 html5/render/vue/mixins/index.js                |  18 +
 html5/render/vue/mixins/input-common.js         |  19 +
 html5/render/vue/mixins/scrollable.js           |  18 +
 html5/render/vue/mixins/style.js                |  18 +
 html5/render/vue/modules/animation.js           |  18 +
 html5/render/vue/modules/dom.js                 |  22 +
 html5/render/vue/modules/index.js               |  20 +
 html5/render/vue/modules/modal/alert.js         |  18 +
 html5/render/vue/modules/modal/confirm.js       |  18 +
 html5/render/vue/modules/modal/index.js         |  18 +
 html5/render/vue/modules/modal/modal.js         |  18 +
 html5/render/vue/modules/modal/prompt.js        |  18 +
 html5/render/vue/modules/modal/toast.js         |  18 +
 html5/render/vue/modules/navigator.js           |  19 +
 html5/render/vue/modules/webview.js             |  19 +
 html5/render/vue/utils/component.js             |  18 +
 html5/render/vue/utils/event.js                 |  19 +-
 html5/render/vue/utils/func.js                  |  19 +
 html5/render/vue/utils/index.js                 |  18 +
 html5/render/vue/utils/lazyload.js              |  19 +
 html5/render/vue/utils/perf.js                  |  19 +
 html5/render/vue/utils/style.js                 |  19 +
 html5/render/vue/utils/type.js                  |  19 +
 html5/render/vue/validator/check.js             |  18 +
 html5/render/vue/validator/index.js             |  18 +
 html5/render/vue/validator/prop.js              |  18 +
 html5/render/vue/validator/style.js             |  18 +
 html5/runtime/callback-manager.js               |  19 +
 html5/runtime/config.js                         |  18 +
 html5/runtime/handler.js                        |  19 +
 html5/runtime/index.js                          |  19 +
 html5/runtime/init.js                           |  18 +
 html5/runtime/listener.js                       |  19 +
 html5/runtime/service.js                        |  19 +
 html5/runtime/task-center.js                    |  18 +
 html5/runtime/vdom/comment.js                   |  19 +
 html5/runtime/vdom/document.js                  |  19 +
 html5/runtime/vdom/element-types.js             |  18 +
 html5/runtime/vdom/element.js                   |  19 +
 html5/runtime/vdom/index.js                     |  18 +
 html5/runtime/vdom/node.js                      |  19 +
 html5/runtime/vdom/operation.js                 |  18 +
 html5/services/amd/index.js                     |  19 +
 html5/services/broadcast-channel/index.js       |  19 +
 .../services/broadcast-channel/message-event.js |  19 +
 html5/services/index.js                         |  18 +
 html5/shared/arrayFrom.js                       |  19 +
 html5/shared/console.js                         |  19 +
 html5/shared/freeze.js                          |  18 +
 html5/shared/index.js                           |  18 +
 html5/shared/objectAssign.js                    |  18 +
 html5/shared/objectSetPrototypeOf.js            |  19 +
 html5/shared/promise.js                         |  20 +
 html5/shared/setTimeout.js                      |  19 +
 .../WeexDemo.xcodeproj/project.pbxproj          |   6 +
 ios/playground/WeexDemo/AppDelegate.h           |  23 +-
 ios/playground/WeexDemo/AppDelegate.m           |  28 +-
 .../delete.imageset/Contents.json               |  23 +
 .../Assets.xcassets/delete.imageset/delete.png  | Bin 0 -> 289 bytes
 .../delete.imageset/delete@2x.png               | Bin 0 -> 504 bytes
 .../delete.imageset/delete@3x.png               | Bin 0 -> 690 bytes
 .../scan_history.imageset/Contents.json         |  23 +
 .../scan_history.imageset/history.png           | Bin 0 -> 546 bytes
 .../scan_history.imageset/history@2x.png        | Bin 0 -> 1037 bytes
 .../scan_history.imageset/history@3x.png        | Bin 0 -> 1628 bytes
 .../WeexDemo/DemoBaseViewController.h           |  23 +-
 .../WeexDemo/DemoBaseViewController.m           |  23 +-
 ios/playground/WeexDemo/DemoDefine.h            |  25 +-
 ios/playground/WeexDemo/Info.plist              |  12 +-
 .../WeexDemo/Scanner/WXScannerHistoryVC.h       |  13 +
 .../WeexDemo/Scanner/WXScannerHistoryVC.m       | 196 ++++++
 ios/playground/WeexDemo/Scanner/WXScannerVC.h   |  25 +-
 ios/playground/WeexDemo/Scanner/WXScannerVC.m   |  41 +-
 ios/playground/WeexDemo/UIView+UIThreadCheck.h  |  23 +-
 ios/playground/WeexDemo/UIView+UIThreadCheck.m  |  23 +-
 .../WeexDemo/UIViewController+WXDemoNaviBar.h   |  23 +-
 .../WeexDemo/UIViewController+WXDemoNaviBar.m   |  73 +-
 ios/playground/WeexDemo/WXDemoViewController.h  |  23 +-
 ios/playground/WeexDemo/WXDemoViewController.m  |  23 +-
 ios/playground/WeexDemo/WXSyncTestModule.h      |  23 +-
 ios/playground/WeexDemo/WXSyncTestModule.m      |  23 +-
 .../WeexDemo/debug/WXATLoggerPlugin.h           |  23 +-
 .../WeexDemo/debug/WXATLoggerPlugin.m           |  23 +-
 .../WeexDemo/debug/WXATViewHierarchyPlugin.h    |  23 +-
 .../WeexDemo/debug/WXATViewHierarchyPlugin.m    |  23 +-
 .../extend/component/WXSelectComponent.h        |  23 +-
 .../extend/component/WXSelectComponent.m        |  23 +-
 .../extend/handler/WXImgLoaderDefaultImpl.h     |  23 +-
 .../extend/handler/WXImgLoaderDefaultImpl.m     |  23 +-
 .../WeexDemo/extend/module/WXEventModule.h      |  23 +-
 .../WeexDemo/extend/module/WXEventModule.m      |  23 +-
 ios/playground/WeexDemo/main.m                  |  23 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |   2 +
 ios/sdk/WeexSDK/Sources/Bridge/JSValue+Weex.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/JSValue+Weex.m   |  23 +-
 .../WeexSDK/Sources/Bridge/WXBridgeContext.h    |  23 +-
 .../WeexSDK/Sources/Bridge/WXBridgeContext.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.m |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXCallJSMethod.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXCallJSMethod.m |  23 +-
 .../WeexSDK/Sources/Bridge/WXComponentMethod.h  |  23 +-
 .../WeexSDK/Sources/Bridge/WXComponentMethod.m  |  23 +-
 .../Sources/Bridge/WXDebugLoggerBridge.h        |  23 +-
 .../Sources/Bridge/WXDebugLoggerBridge.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXModuleMethod.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXModuleMethod.m |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXPolyfillSet.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXPolyfillSet.m  |  23 +-
 .../Component/Recycler/WXMultiColumnLayout.h    |  23 +-
 .../Component/Recycler/WXMultiColumnLayout.m    |  23 +-
 .../Component/Recycler/WXRecyclerComponent.h    |  23 +-
 .../Component/Recycler/WXRecyclerComponent.m    |  23 +-
 .../Recycler/WXRecyclerDataController.h         |  23 +-
 .../Recycler/WXRecyclerDataController.m         |  23 +-
 .../Recycler/WXRecyclerUpdateController.h       |  23 +-
 .../Recycler/WXRecyclerUpdateController.m       |  23 +-
 .../Recycler/WXSectionDataController.h          |  23 +-
 .../Recycler/WXSectionDataController.m          |  23 +-
 .../WeexSDK/Sources/Component/WXAComponent.h    |  23 +-
 .../WeexSDK/Sources/Component/WXAComponent.m    |  23 +-
 .../Sources/Component/WXCanvasComponent.h       |  23 +-
 .../Sources/Component/WXCanvasComponent.m       |  23 +-
 .../WeexSDK/Sources/Component/WXCellComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXCellComponent.m |  23 +-
 .../Sources/Component/WXComponent_internal.h    |  23 +-
 .../WeexSDK/Sources/Component/WXDivComponent.h  |  23 +-
 .../WeexSDK/Sources/Component/WXDivComponent.m  |  23 +-
 .../WeexSDK/Sources/Component/WXEditComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXEditComponent.m |  31 +-
 .../Sources/Component/WXEmbedComponent.h        |  23 +-
 .../Sources/Component/WXEmbedComponent.m        |  23 +-
 .../Sources/Component/WXFooterComponent.h       |  23 +-
 .../Sources/Component/WXFooterComponent.m       |  23 +-
 .../Sources/Component/WXHeaderComponent.h       |  23 +-
 .../Sources/Component/WXHeaderComponent.m       |  23 +-
 .../Sources/Component/WXImageComponent.h        |  25 +-
 .../Sources/Component/WXImageComponent.m        |  29 +-
 .../Sources/Component/WXIndicatorComponent.h    |  23 +-
 .../Sources/Component/WXIndicatorComponent.m    |  23 +-
 .../WeexSDK/Sources/Component/WXListComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXListComponent.m |  23 +-
 .../Sources/Component/WXLoadingComponent.h      |  25 +-
 .../Sources/Component/WXLoadingComponent.m      |  18 +
 .../Sources/Component/WXLoadingIndicator.h      |  23 +-
 .../Sources/Component/WXLoadingIndicator.m      |  23 +-
 .../Sources/Component/WXRefreshComponent.h      |  23 +-
 .../Sources/Component/WXRefreshComponent.m      |  23 +-
 .../Sources/Component/WXScrollerComponent.h     |  23 +-
 .../Sources/Component/WXScrollerComponent.m     |  23 +-
 .../Sources/Component/WXSliderComponent.h       |  23 +-
 .../Sources/Component/WXSliderComponent.m       |  23 +-
 .../Component/WXSliderNeighborComponent.h       |  23 +-
 .../Component/WXSliderNeighborComponent.m       |  23 +-
 .../Sources/Component/WXSwitchComponent.h       |  23 +-
 .../Sources/Component/WXSwitchComponent.m       |  23 +-
 .../Sources/Component/WXTextAreaComponent.h     |  23 +-
 .../Sources/Component/WXTextAreaComponent.m     |  23 +-
 .../WeexSDK/Sources/Component/WXTextComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXTextComponent.m |  23 +-
 .../Sources/Component/WXTextInputComponent.h    |  23 +-
 .../Sources/Component/WXTextInputComponent.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h |  23 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m |  23 +-
 .../Sources/Component/WXVideoComponent.h        |  23 +-
 .../Sources/Component/WXVideoComponent.m        |  23 +-
 .../WeexSDK/Sources/Component/WXWebComponent.h  |  23 +-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |  23 +-
 .../Sources/Controller/WXBaseViewController.h   |  23 +-
 .../Sources/Controller/WXBaseViewController.m   |  28 +-
 .../Sources/Controller/WXRootViewController.h   |  23 +-
 .../Sources/Controller/WXRootViewController.m   |  23 +-
 ios/sdk/WeexSDK/Sources/Debug/WXDebugTool.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Debug/WXDebugTool.m     |  23 +-
 .../WeexSDK/Sources/Display/UIBezierPath+Weex.h |  23 +-
 .../WeexSDK/Sources/Display/UIBezierPath+Weex.m |  23 +-
 .../Sources/Display/WXComponent+BoxShadow.h     |  23 +-
 .../Sources/Display/WXComponent+BoxShadow.m     |  23 +-
 .../Sources/Display/WXComponent+Display.h       |  23 +-
 .../Sources/Display/WXComponent+Display.m       |  25 +-
 .../WeexSDK/Sources/Display/WXDisplayQueue.h    |  23 +-
 .../WeexSDK/Sources/Display/WXDisplayQueue.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.m  |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXLayer.h       |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXLayer.m       |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXRoundedRect.h |  23 +-
 .../WeexSDK/Sources/Display/WXRoundedRect.mm    |  23 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h    |  23 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKError.h     |  23 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.h |  23 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.m |  23 +-
 .../Sources/Handler/WXNavigationDefaultImpl.h   |  23 +-
 .../Sources/Handler/WXNavigationDefaultImpl.m   |  23 +-
 .../Sources/Handler/WXURLRewriteDefaultImpl.h   |  23 +-
 .../Sources/Handler/WXURLRewriteDefaultImpl.m   |  23 +-
 .../WeexSDK/Sources/Loader/WXResourceLoader.h   |  23 +-
 .../WeexSDK/Sources/Loader/WXResourceLoader.m   |  23 +-
 .../WeexSDK/Sources/Loader/WXWebSocketLoader.h  |  23 +-
 .../WeexSDK/Sources/Loader/WXWebSocketLoader.m  |  23 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.h   |  23 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.m   |  23 +-
 .../Sources/Manager/WXComponentFactory.h        |  23 +-
 .../Sources/Manager/WXComponentFactory.m        |  23 +-
 .../Sources/Manager/WXComponentManager.h        |  23 +-
 .../Sources/Manager/WXComponentManager.m        |  23 +-
 .../Sources/Manager/WXDatePickerManager.h       |  23 +-
 .../Sources/Manager/WXDatePickerManager.m       |  23 +-
 .../WeexSDK/Sources/Manager/WXHandlerFactory.h  |  23 +-
 .../WeexSDK/Sources/Manager/WXHandlerFactory.m  |  23 +-
 .../Sources/Manager/WXInvocationConfig.h        |  23 +-
 .../Sources/Manager/WXInvocationConfig.m        |  23 +-
 .../WeexSDK/Sources/Manager/WXModuleFactory.h   |  23 +-
 .../WeexSDK/Sources/Manager/WXModuleFactory.m   |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXRuleManager.h |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXRuleManager.m |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXSDKManager.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXSDKManager.m  |  23 +-
 .../WeexSDK/Sources/Manager/WXServiceFactory.h  |  23 +-
 .../WeexSDK/Sources/Manager/WXServiceFactory.m  |  23 +-
 .../Sources/Model/WXComponent+Navigation.h      |  23 +-
 .../Sources/Model/WXComponent+Navigation.m      |  23 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |  23 +-
 .../WeexSDK/Sources/Model/WXJSExceptionInfo.h   |  23 +-
 .../WeexSDK/Sources/Model/WXJSExceptionInfo.m   |  25 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |  23 +-
 .../Sources/Model/WXSDKInstance_private.h       |  23 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXCanvasModule.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXCanvasModule.m |  23 +-
 .../WeexSDK/Sources/Module/WXClipboardModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXClipboardModule.m  |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXDomModule.h    |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXDomModule.m    |  23 +-
 .../Sources/Module/WXGlobalEventModule.h        |  23 +-
 .../Sources/Module/WXGlobalEventModule.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXInstanceWrap.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXInstanceWrap.m |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXMetaModule.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXMetaModule.m   |  23 +-
 .../WeexSDK/Sources/Module/WXModalUIModule.h    |  23 +-
 .../WeexSDK/Sources/Module/WXModalUIModule.m    |  23 +-
 .../WeexSDK/Sources/Module/WXNavigatorModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXNavigatorModule.m  |  18 +
 ios/sdk/WeexSDK/Sources/Module/WXPickerModule.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXPickerModule.m | 145 +++-
 .../WeexSDK/Sources/Module/WXStorageModule.h    |  23 +-
 .../WeexSDK/Sources/Module/WXStorageModule.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXStreamModule.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXStreamModule.m |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXTimerModule.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXTimerModule.m  |  23 +-
 .../WeexSDK/Sources/Module/WXWebSocketModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXWebSocketModule.m  |  23 +-
 .../WeexSDK/Sources/Module/WXWebViewModule.h    |  23 +-
 .../WeexSDK/Sources/Module/WXWebViewModule.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.m     |  29 +-
 .../WeexSDK/Sources/Network/WXResourceRequest.h |  23 +-
 .../WeexSDK/Sources/Network/WXResourceRequest.m |  23 +-
 .../Sources/Network/WXResourceRequestHandler.h  |  23 +-
 .../WXResourceRequestHandlerDefaultImpl.h       |  23 +-
 .../WXResourceRequestHandlerDefaultImpl.m       |  23 +-
 .../Sources/Network/WXResourceResponse.h        |  23 +-
 .../Sources/Network/WXResourceResponse.m        |  23 +-
 .../Sources/Protocol/WXAppMonitorProtocol.h     |  23 +-
 .../WeexSDK/Sources/Protocol/WXBridgeProtocol.h |  23 +-
 .../Sources/Protocol/WXDestroyProtocol.h        |  23 +-
 .../Sources/Protocol/WXEventModuleProtocol.h    |  23 +-
 .../Sources/Protocol/WXImgLoaderProtocol.h      |  23 +-
 .../Sources/Protocol/WXJSExceptionProtocol.h    |  23 +-
 .../WeexSDK/Sources/Protocol/WXModuleProtocol.h |  23 +-
 .../Sources/Protocol/WXNavigationProtocol.h     |  23 +-
 .../Sources/Protocol/WXNetworkProtocol.h        |  23 +-
 .../Sources/Protocol/WXScrollerProtocol.h       |  23 +-
 .../Sources/Protocol/WXTextComponentProtocol.h  |  23 +-
 .../Sources/Protocol/WXURLRewriteProtocol.h     |  23 +-
 .../Sources/Protocol/WXValidateProtocol.h       |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSArray+Weex.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSArray+Weex.m  |  23 +-
 .../Sources/Utility/NSObject+WXSwizzle.h        |  23 +-
 .../Sources/Utility/NSObject+WXSwizzle.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSTimer+Weex.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSTimer+Weex.m  |  23 +-
 .../Sources/Utility/WXAppConfiguration.h        |  23 +-
 .../Sources/Utility/WXAppConfiguration.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXAssert.h      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXAssert.m      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.m     |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDefine.h      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h    |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLength.h      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLength.m      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLog.h         |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLog.m         |  23 +-
 .../Utility/WXSimulatorShortcutManager.h        |  23 +-
 .../Utility/WXSimulatorShortcutManager.m        |  23 +-
 .../Sources/Utility/WXThreadSafeCounter.h       |  23 +-
 .../Sources/Utility/WXThreadSafeCounter.m       |  23 +-
 .../Sources/Utility/WXThreadSafeMutableArray.h  |  23 +-
 .../Sources/Utility/WXThreadSafeMutableArray.m  |  23 +-
 .../Utility/WXThreadSafeMutableDictionary.h     |  23 +-
 .../Utility/WXThreadSafeMutableDictionary.m     |  25 +-
 ios/sdk/WeexSDK/Sources/Utility/WXType.h        |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.m     |  23 +-
 .../Sources/Utility/WXWeakObjectWrapper.h       |  23 +-
 .../Sources/Utility/WXWeakObjectWrapper.m       |  23 +-
 .../View/WXComponent+PseudoClassManagement.h    |  23 +-
 .../View/WXComponent+PseudoClassManagement.m    |  23 +-
 .../Sources/View/WXComponent+ViewManagement.h   |  23 +-
 .../Sources/View/WXComponent+ViewManagement.m   |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXErrorView.h      |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXErrorView.m      |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXRootView.h       |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXRootView.m       |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXView.h           |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXView.m           |  23 +-
 .../Sources/WebSocket/SRWebSocket+Weex.h        |  23 +-
 .../Sources/WebSocket/SRWebSocket+Weex.m        |  23 +-
 .../Sources/WebSocket/WXWebSocketDefaultImpl.h  |  23 +-
 .../Sources/WebSocket/WXWebSocketDefaultImpl.m  |  23 +-
 .../Sources/WebSocket/WXWebSocketHandler.h      |  23 +-
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |  21 +-
 ios/sdk/WeexSDK_MTL/WeexSDK_MTL.h               |  23 +-
 ios/sdk/WeexSDK_MTL/WeexSDK_MTL.m               |  23 +-
 scripts/apache-rat-0.12.jar                     | Bin 0 -> 1592593 bytes
 scripts/rat-ant-build.xml                       |   8 +
 scripts/rat-scan.sh                             |   3 +
 scripts/replace-header.sh                       |   4 +
 scripts/rh/LICENSE                              | 674 +++++++++++++++++++
 scripts/rh/README                               |  46 ++
 scripts/rh/header.template                      |  18 +
 scripts/rh/remove_header.awk                    |  48 ++
 scripts/rh/replace_header.sh                    |  11 +
 test/pages/image-onload.vue                     |   2 +-
 test/run.sh                                     |   9 +-
 test/scripts/components/image-onload.test.js    |   4 +-
 vue.html                                        |  10 +-
 923 files changed, 16974 insertions(+), 83267 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cc45cdc8/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
----------------------------------------------------------------------
diff --cc android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
index 81aeeac,bbac404..c547c78
mode 100755,100644..100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cc45cdc8/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
----------------------------------------------------------------------
diff --cc android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
index 4bf3ee1,0000000..3950be2
mode 100644,000000..100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
@@@ -1,243 -1,0 +1,57 @@@
 +/**
-  *
-  *                                  Apache License
-  *                            Version 2.0, January 2004
-  *                         http://www.apache.org/licenses/
-  *
-  *    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-  *
-  *    1. Definitions.
-  *
-  *       "License" shall mean the terms and conditions for use, reproduction,
-  *       and distribution as defined by Sections 1 through 9 of this document.
-  *
-  *       "Licensor" shall mean the copyright owner or entity authorized by
-  *       the copyright owner that is granting the License.
-  *
-  *       "Legal Entity" shall mean the union of the acting entity and all
-  *       other entities that control, are controlled by, or are under common
-  *       control with that entity. For the purposes of this definition,
-  *       "control" means (i) the power, direct or indirect, to cause the
-  *       direction or management of such entity, whether by contract or
-  *       otherwise, or (ii) ownership of fifty percent (50%) or more of the
-  *       outstanding shares, or (iii) beneficial ownership of such entity.
-  *
-  *       "You" (or "Your") shall mean an individual or Legal Entity
-  *       exercising permissions granted by this License.
-  *
-  *       "Source" form shall mean the preferred form for making modifications,
-  *       including but not limited to software source code, documentation
-  *       source, and configuration files.
-  *
-  *       "Object" form shall mean any form resulting from mechanical
-  *       transformation or translation of a Source form, including but
-  *       not limited to compiled object code, generated documentation,
-  *       and conversions to other media types.
-  *
-  *       "Work" shall mean the work of authorship, whether in Source or
-  *       Object form, made available under the License, as indicated by a
-  *       copyright notice that is included in or attached to the work
-  *       (an example is provided in the Appendix below).
-  *
-  *       "Derivative Works" shall mean any work, whether in Source or Object
-  *       form, that is based on (or derived from) the Work and for which the
-  *       editorial revisions, annotations, elaborations, or other modifications
-  *       represent, as a whole, an original work of authorship. For the purposes
-  *       of this License, Derivative Works shall not include works that remain
-  *       separable from, or merely link (or bind by name) to the interfaces of,
-  *       the Work and Derivative Works thereof.
-  *
-  *       "Contribution" shall mean any work of authorship, including
-  *       the original version of the Work and any modifications or additions
-  *       to that Work or Derivative Works thereof, that is intentionally
-  *       submitted to Licensor for inclusion in the Work by the copyright owner
-  *       or by an individual or Legal Entity authorized to submit on behalf of
-  *       the copyright owner. For the purposes of this definition, "submitted"
-  *       means any form of electronic, verbal, or written communication sent
-  *       to the Licensor or its representatives, including but not limited to
-  *       communication on electronic mailing lists, source code control systems,
-  *       and issue tracking systems that are managed by, or on behalf of, the
-  *       Licensor for the purpose of discussing and improving the Work, but
-  *       excluding communication that is conspicuously marked or otherwise
-  *       designated in writing by the copyright owner as "Not a Contribution."
-  *
-  *       "Contributor" shall mean Licensor and any individual or Legal Entity
-  *       on behalf of whom a Contribution has been received by Licensor and
-  *       subsequently incorporated within the Work.
-  *
-  *    2. Grant of Copyright License. Subject to the terms and conditions of
-  *       this License, each Contributor hereby grants to You a perpetual,
-  *       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-  *       copyright license to reproduce, prepare Derivative Works of,
-  *       publicly display, publicly perform, sublicense, and distribute the
-  *       Work and such Derivative Works in Source or Object form.
-  *
-  *    3. Grant of Patent License. Subject to the terms and conditions of
-  *       this License, each Contributor hereby grants to You a perpetual,
-  *       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-  *       (except as stated in this section) patent license to make, have made,
-  *       use, offer to sell, sell, import, and otherwise transfer the Work,
-  *       where such license applies only to those patent claims licensable
-  *       by such Contributor that are necessarily infringed by their
-  *       Contribution(s) alone or by combination of their Contribution(s)
-  *       with the Work to which such Contribution(s) was submitted. If You
-  *       institute patent litigation against any entity (including a
-  *       cross-claim or counterclaim in a lawsuit) alleging that the Work
-  *       or a Contribution incorporated within the Work constitutes direct
-  *       or contributory patent infringement, then any patent licenses
-  *       granted to You under this License for that Work shall terminate
-  *       as of the date such litigation is filed.
-  *
-  *    4. Redistribution. You may reproduce and distribute copies of the
-  *       Work or Derivative Works thereof in any medium, with or without
-  *       modifications, and in Source or Object form, provided that You
-  *       meet the following conditions:
-  *
-  *       (a) You must give any other recipients of the Work or
-  *           Derivative Works a copy of this License; and
-  *
-  *       (b) You must cause any modified files to carry prominent notices
-  *           stating that You changed the files; and
-  *
-  *       (c) You must retain, in the Source form of any Derivative Works
-  *           that You distribute, all copyright, patent, trademark, and
-  *           attribution notices from the Source form of the Work,
-  *           excluding those notices that do not pertain to any part of
-  *           the Derivative Works; and
-  *
-  *       (d) If the Work includes a "NOTICE" text file as part of its
-  *           distribution, then any Derivative Works that You distribute must
-  *           include a readable copy of the attribution notices contained
-  *           within such NOTICE file, excluding those notices that do not
-  *           pertain to any part of the Derivative Works, in at least one
-  *           of the following places: within a NOTICE text file distributed
-  *           as part of the Derivative Works; within the Source form or
-  *           documentation, if provided along with the Derivative Works; or,
-  *           within a display generated by the Derivative Works, if and
-  *           wherever such third-party notices normally appear. The contents
-  *           of the NOTICE file are for informational purposes only and
-  *           do not modify the License. You may add Your own attribution
-  *           notices within Derivative Works that You distribute, alongside
-  *           or as an addendum to the NOTICE text from the Work, provided
-  *           that such additional attribution notices cannot be construed
-  *           as modifying the License.
-  *
-  *       You may add Your own copyright statement to Your modifications and
-  *       may provide additional or different license terms and conditions
-  *       for use, reproduction, or distribution of Your modifications, or
-  *       for any such Derivative Works as a whole, provided Your use,
-  *       reproduction, and distribution of the Work otherwise complies with
-  *       the conditions stated in this License.
-  *
-  *    5. Submission of Contributions. Unless You explicitly state otherwise,
-  *       any Contribution intentionally submitted for inclusion in the Work
-  *       by You to the Licensor shall be under the terms and conditions of
-  *       this License, without any additional terms or conditions.
-  *       Notwithstanding the above, nothing herein shall supersede or modify
-  *       the terms of any separate license agreement you may have executed
-  *       with Licensor regarding such Contributions.
-  *
-  *    6. Trademarks. This License does not grant permission to use the trade
-  *       names, trademarks, service marks, or product names of the Licensor,
-  *       except as required for reasonable and customary use in describing the
-  *       origin of the Work and reproducing the content of the NOTICE file.
-  *
-  *    7. Disclaimer of Warranty. Unless required by applicable law or
-  *       agreed to in writing, Licensor provides the Work (and each
-  *       Contributor provides its Contributions) on an "AS IS" BASIS,
-  *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-  *       implied, including, without limitation, any warranties or conditions
-  *       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-  *       PARTICULAR PURPOSE. You are solely responsible for determining the
-  *       appropriateness of using or redistributing the Work and assume any
-  *       risks associated with Your exercise of permissions under this License.
-  *
-  *    8. Limitation of Liability. In no event and under no legal theory,
-  *       whether in tort (including negligence), contract, or otherwise,
-  *       unless required by applicable law (such as deliberate and grossly
-  *       negligent acts) or agreed to in writing, shall any Contributor be
-  *       liable to You for damages, including any direct, indirect, special,
-  *       incidental, or consequential damages of any character arising as a
-  *       result of this License or out of the use or inability to use the
-  *       Work (including but not limited to damages for loss of goodwill,
-  *       work stoppage, computer failure or malfunction, or any and all
-  *       other commercial damages or losses), even if such Contributor
-  *       has been advised of the possibility of such damages.
-  *
-  *    9. Accepting Warranty or Additional Liability. While redistributing
-  *       the Work or Derivative Works thereof, You may choose to offer,
-  *       and charge a fee for, acceptance of support, warranty, indemnity,
-  *       or other liability obligations and/or rights consistent with this
-  *       License. However, in accepting such obligations, You may act only
-  *       on Your own behalf and on Your sole responsibility, not on behalf
-  *       of any other Contributor, and only if You agree to indemnify,
-  *       defend, and hold each Contributor harmless for any liability
-  *       incurred by, or claims asserted against, such Contributor by reason
-  *       of your accepting any such warranty or additional liability.
-  *
-  *    END OF TERMS AND CONDITIONS
-  *
-  *    APPENDIX: How to apply the Apache License to your work.
-  *
-  *       To apply the Apache License to your work, attach the following
-  *       boilerplate notice, with the fields enclosed by brackets "[]"
-  *       replaced with your own identifying information. (Don't include
-  *       the brackets!)  The text should be enclosed in the appropriate
-  *       comment syntax for the file format. We also recommend that a
-  *       file or class name and description of purpose be included on the
-  *       same "printed page" as the copyright notice for easier
-  *       identification within third-party archives.
-  *
-  *    Copyright 2016 Alibaba Group
-  *
-  *    Licensed under the Apache License, Version 2.0 (the "License");
-  *    you may not use this file except in compliance with the License.
-  *    You may obtain a copy of the License at
-  *
-  *        http://www.apache.org/licenses/LICENSE-2.0
-  *
-  *    Unless required by applicable law or agreed to in writing, software
-  *    distributed under the License is distributed on an "AS IS" BASIS,
-  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  *    See the License for the specific language governing permissions and
-  *    limitations under the License.
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements.  See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership.  The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License.  You may obtain a copy of the License at
++ *
++ *   http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing,
++ * software distributed under the License is distributed on an
++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
++ * KIND, either express or implied.  See the License for the
++ * specific language governing permissions and limitations
++ * under the License.
 + */
 +package com.taobao.weex.dom;
 +
 +import com.taobao.weex.dom.flex.CSSNode;
 +import com.taobao.weex.dom.flex.MeasureOutput;
 +import com.taobao.weex.ui.component.WXBasicComponentType;
 +import com.taobao.weex.utils.WXLogUtils;
 +
 +/**
 + * Created by zhengshihan on 2017/4/11.
 + */
 +
 +public class WXCellDomObject extends WXDomObject {
 +
 +  /** package **/ static final CSSNode.MeasureFunction CELL_MEASURE_FUNCTION = new MeasureFunction() {
 +    @Override
 +    public void measure(CSSNode node, float width, MeasureOutput measureOutput) {
 +      if (node != null) {
 +        CSSNode parent = node.getParent();
 +        if (parent != null && parent instanceof WXRecyclerDomObject) {
 +          WXRecyclerDomObject parentDom = ((WXRecyclerDomObject) parent);
 +          parentDom.preCalculateCellWidth();
 +          WXDomObject domObject = (WXDomObject) node;
 +          if (WXBasicComponentType.CELL.equals(domObject.getType())) {
 +            float w = ((WXRecyclerDomObject) parent).getColumnWidth();
 +            node.setLayoutWidth(w);
 +          } else if (WXBasicComponentType.HEADER.equals(domObject.getType())){
 +            float w = parentDom.getAvailableWidth();
 +            WXLogUtils.d("getAvailableWidth:"+w);
 +            node.setLayoutWidth(w);
 +          }
 +        }
 +      }
 +    }
 +  };
 +
 +  public WXCellDomObject() {
 +    setMeasureFunction(CELL_MEASURE_FUNCTION);
 +  }
 +}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cc45cdc8/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
----------------------------------------------------------------------


[04/12] incubator-weex git commit: [android] the new IRenderResult interface.

Posted by zs...@apache.org.
[android] the new IRenderResult interface.


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

Branch: refs/heads/0.12-dev
Commit: 3c63aff536355a8e8652a76adfc430b1797a96b4
Parents: b7e5b16
Author: \u884c\u4e45 <yi...@alibaba-inc.com>
Authored: Wed Apr 5 11:46:44 2017 +0800
Committer: \u884c\u4e45 <yi...@alibaba-inc.com>
Committed: Wed Apr 5 11:46:44 2017 +0800

----------------------------------------------------------------------
 .../com/taobao/weex/ui/view/IRenderResult.java  | 213 +++++++++++++++++++
 1 file changed, 213 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3c63aff5/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java
new file mode 100644
index 0000000..3df74fa
--- /dev/null
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java
@@ -0,0 +1,213 @@
+/*
+ *
+ *                                  Apache License
+ *                            Version 2.0, January 2004
+ *                         http://www.apache.org/licenses/
+ *
+ *    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *    1. Definitions.
+ *
+ *       "License" shall mean the terms and conditions for use, reproduction,
+ *       and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *       "Licensor" shall mean the copyright owner or entity authorized by
+ *       the copyright owner that is granting the License.
+ *
+ *       "Legal Entity" shall mean the union of the acting entity and all
+ *       other entities that control, are controlled by, or are under common
+ *       control with that entity. For the purposes of this definition,
+ *       "control" means (i) the power, direct or indirect, to cause the
+ *       direction or management of such entity, whether by contract or
+ *       otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *       outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *       "You" (or "Your") shall mean an individual or Legal Entity
+ *       exercising permissions granted by this License.
+ *
+ *       "Source" form shall mean the preferred form for making modifications,
+ *       including but not limited to software source code, documentation
+ *       source, and configuration files.
+ *
+ *       "Object" form shall mean any form resulting from mechanical
+ *       transformation or translation of a Source form, including but
+ *       not limited to compiled object code, generated documentation,
+ *       and conversions to other media types.
+ *
+ *       "Work" shall mean the work of authorship, whether in Source or
+ *       Object form, made available under the License, as indicated by a
+ *       copyright notice that is included in or attached to the work
+ *       (an example is provided in the Appendix below).
+ *
+ *       "Derivative Works" shall mean any work, whether in Source or Object
+ *       form, that is based on (or derived from) the Work and for which the
+ *       editorial revisions, annotations, elaborations, or other modifications
+ *       represent, as a whole, an original work of authorship. For the purposes
+ *       of this License, Derivative Works shall not include works that remain
+ *       separable from, or merely link (or bind by name) to the interfaces of,
+ *       the Work and Derivative Works thereof.
+ *
+ *       "Contribution" shall mean any work of authorship, including
+ *       the original version of the Work and any modifications or additions
+ *       to that Work or Derivative Works thereof, that is intentionally
+ *       submitted to Licensor for inclusion in the Work by the copyright owner
+ *       or by an individual or Legal Entity authorized to submit on behalf of
+ *       the copyright owner. For the purposes of this definition, "submitted"
+ *       means any form of electronic, verbal, or written communication sent
+ *       to the Licensor or its representatives, including but not limited to
+ *       communication on electronic mailing lists, source code control systems,
+ *       and issue tracking systems that are managed by, or on behalf of, the
+ *       Licensor for the purpose of discussing and improving the Work, but
+ *       excluding communication that is conspicuously marked or otherwise
+ *       designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *       "Contributor" shall mean Licensor and any individual or Legal Entity
+ *       on behalf of whom a Contribution has been received by Licensor and
+ *       subsequently incorporated within the Work.
+ *
+ *    2. Grant of Copyright License. Subject to the terms and conditions of
+ *       this License, each Contributor hereby grants to You a perpetual,
+ *       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *       copyright license to reproduce, prepare Derivative Works of,
+ *       publicly display, publicly perform, sublicense, and distribute the
+ *       Work and such Derivative Works in Source or Object form.
+ *
+ *    3. Grant of Patent License. Subject to the terms and conditions of
+ *       this License, each Contributor hereby grants to You a perpetual,
+ *       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *       (except as stated in this section) patent license to make, have made,
+ *       use, offer to sell, sell, import, and otherwise transfer the Work,
+ *       where such license applies only to those patent claims licensable
+ *       by such Contributor that are necessarily infringed by their
+ *       Contribution(s) alone or by combination of their Contribution(s)
+ *       with the Work to which such Contribution(s) was submitted. If You
+ *       institute patent litigation against any entity (including a
+ *       cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *       or a Contribution incorporated within the Work constitutes direct
+ *       or contributory patent infringement, then any patent licenses
+ *       granted to You under this License for that Work shall terminate
+ *       as of the date such litigation is filed.
+ *
+ *    4. Redistribution. You may reproduce and distribute copies of the
+ *       Work or Derivative Works thereof in any medium, with or without
+ *       modifications, and in Source or Object form, provided that You
+ *       meet the following conditions:
+ *
+ *       (a) You must give any other recipients of the Work or
+ *           Derivative Works a copy of this License; and
+ *
+ *       (b) You must cause any modified files to carry prominent notices
+ *           stating that You changed the files; and
+ *
+ *       (c) You must retain, in the Source form of any Derivative Works
+ *           that You distribute, all copyright, patent, trademark, and
+ *           attribution notices from the Source form of the Work,
+ *           excluding those notices that do not pertain to any part of
+ *           the Derivative Works; and
+ *
+ *       (d) If the Work includes a "NOTICE" text file as part of its
+ *           distribution, then any Derivative Works that You distribute must
+ *           include a readable copy of the attribution notices contained
+ *           within such NOTICE file, excluding those notices that do not
+ *           pertain to any part of the Derivative Works, in at least one
+ *           of the following places: within a NOTICE text file distributed
+ *           as part of the Derivative Works; within the Source form or
+ *           documentation, if provided along with the Derivative Works; or,
+ *           within a display generated by the Derivative Works, if and
+ *           wherever such third-party notices normally appear. The contents
+ *           of the NOTICE file are for informational purposes only and
+ *           do not modify the License. You may add Your own attribution
+ *           notices within Derivative Works that You distribute, alongside
+ *           or as an addendum to the NOTICE text from the Work, provided
+ *           that such additional attribution notices cannot be construed
+ *           as modifying the License.
+ *
+ *       You may add Your own copyright statement to Your modifications and
+ *       may provide additional or different license terms and conditions
+ *       for use, reproduction, or distribution of Your modifications, or
+ *       for any such Derivative Works as a whole, provided Your use,
+ *       reproduction, and distribution of the Work otherwise complies with
+ *       the conditions stated in this License.
+ *
+ *    5. Submission of Contributions. Unless You explicitly state otherwise,
+ *       any Contribution intentionally submitted for inclusion in the Work
+ *       by You to the Licensor shall be under the terms and conditions of
+ *       this License, without any additional terms or conditions.
+ *       Notwithstanding the above, nothing herein shall supersede or modify
+ *       the terms of any separate license agreement you may have executed
+ *       with Licensor regarding such Contributions.
+ *
+ *    6. Trademarks. This License does not grant permission to use the trade
+ *       names, trademarks, service marks, or product names of the Licensor,
+ *       except as required for reasonable and customary use in describing the
+ *       origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *    7. Disclaimer of Warranty. Unless required by applicable law or
+ *       agreed to in writing, Licensor provides the Work (and each
+ *       Contributor provides its Contributions) on an "AS IS" BASIS,
+ *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *       implied, including, without limitation, any warranties or conditions
+ *       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *       PARTICULAR PURPOSE. You are solely responsible for determining the
+ *       appropriateness of using or redistributing the Work and assume any
+ *       risks associated with Your exercise of permissions under this License.
+ *
+ *    8. Limitation of Liability. In no event and under no legal theory,
+ *       whether in tort (including negligence), contract, or otherwise,
+ *       unless required by applicable law (such as deliberate and grossly
+ *       negligent acts) or agreed to in writing, shall any Contributor be
+ *       liable to You for damages, including any direct, indirect, special,
+ *       incidental, or consequential damages of any character arising as a
+ *       result of this License or out of the use or inability to use the
+ *       Work (including but not limited to damages for loss of goodwill,
+ *       work stoppage, computer failure or malfunction, or any and all
+ *       other commercial damages or losses), even if such Contributor
+ *       has been advised of the possibility of such damages.
+ *
+ *    9. Accepting Warranty or Additional Liability. While redistributing
+ *       the Work or Derivative Works thereof, You may choose to offer,
+ *       and charge a fee for, acceptance of support, warranty, indemnity,
+ *       or other liability obligations and/or rights consistent with this
+ *       License. However, in accepting such obligations, You may act only
+ *       on Your own behalf and on Your sole responsibility, not on behalf
+ *       of any other Contributor, and only if You agree to indemnify,
+ *       defend, and hold each Contributor harmless for any liability
+ *       incurred by, or claims asserted against, such Contributor by reason
+ *       of your accepting any such warranty or additional liability.
+ *
+ *    END OF TERMS AND CONDITIONS
+ *
+ *    APPENDIX: How to apply the Apache License to your work.
+ *
+ *       To apply the Apache License to your work, attach the following
+ *       boilerplate notice, with the fields enclosed by brackets "[]"
+ *       replaced with your own identifying information. (Don't include
+ *       the brackets!)  The text should be enclosed in the appropriate
+ *       comment syntax for the file format. We also recommend that a
+ *       file or class name and description of purpose be included on the
+ *       same "printed page" as the copyright notice for easier
+ *       identification within third-party archives.
+ *
+ *    Copyright 2016 Alibaba Group
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ */
+
+package com.taobao.weex.ui.view;
+
+
+import com.taobao.weex.ui.component.WXComponent;
+
+public interface IRenderResult<T extends WXComponent> {
+  public T getComponent();
+}


[02/12] incubator-weex git commit: Merge remote-tracking branch 'origin/0.12-dev' into feature-android-vdom-properties

Posted by zs...@apache.org.
Merge remote-tracking branch 'origin/0.12-dev' into feature-android-vdom-properties


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

Branch: refs/heads/0.12-dev
Commit: 591d5b114b4c70d46481bc0e3a2bed1c298da890
Parents: 87fb794 288b6e1
Author: \u884c\u4e45 <yi...@alibaba-inc.com>
Authored: Wed Apr 5 11:32:38 2017 +0800
Committer: \u884c\u4e45 <yi...@alibaba-inc.com>
Committed: Wed Apr 5 11:32:38 2017 +0800

----------------------------------------------------------------------
 .eslintrc                                       |   16 +-
 .flowconfig                                     |   16 +
 README.md                                       |   50 +-
 android/commons/build.gradle                    |    3 +-
 .../weex/commons/AbstractWeexActivity.java      |   24 +
 android/playground/app/build.gradle             |    3 +-
 .../playground/app/src/main/assets/animation.js |   11 +-
 .../app/src/main/assets/component/a-demo.js     |   11 +-
 .../src/main/assets/component/countdown-demo.js |   11 +-
 .../app/src/main/assets/component/image-demo.js |   11 +-
 .../app/src/main/assets/component/input-demo.js |   11 +-
 .../main/assets/component/list/list-basic.js    |    8 +
 .../assets/component/list/list-demo-horizon.js  |    8 +
 .../src/main/assets/component/list/list-demo.js |    8 +
 .../src/main/assets/component/marquee-demo.js   |   11 +-
 .../src/main/assets/component/navigator-demo.js |   15 +-
 .../main/assets/component/process-bar-demo.js   |   11 +-
 .../src/main/assets/component/scroller-demo.js  |   11 +-
 .../slider-neighbor/slider-neighbor-item.js     |    8 +
 .../slider-neighbor/slider-neighbor-page.js     |    8 +
 .../src/main/assets/component/slider/index.js   |   11 +-
 .../main/assets/component/slider/slider-item.js |    8 +
 .../main/assets/component/slider/slider-page.js |    8 +
 .../main/assets/component/tabbar/tabbar-demo.js |   15 +-
 .../main/assets/component/tabbar/tabbar-item.js |    8 +
 .../app/src/main/assets/component/text-demo.js  |   11 +-
 .../app/src/main/assets/component/video-demo.js |   11 +-
 .../app/src/main/assets/component/web-demo.js   |   11 +-
 android/playground/app/src/main/assets/hello.js |    8 +
 .../playground/app/src/main/assets/iconfont.js  |    8 +
 .../app/src/main/assets/module/clipboard.js     |   11 +-
 .../java/com/alibaba/weex/IndexActivity.java    |    6 +
 .../src/main/java/com/alibaba/weex/Utility.java |  277 +
 .../java/com/alibaba/weex/WXApplication.java    |    4 +
 .../java/com/alibaba/weex/WXPageActivity.java   |   58 +
 .../extend/WXInstanceStatisticsListener.java    |  268 +
 .../app/src/main/res/layout/id_stub.xml         |   57 +
 android/sdk/build.gradle                        |    2 +
 android/sdk/libs/armeabi/libweexv8.so           |  Bin 3583820 -> 3563544 bytes
 android/sdk/libs/x86/libweexv8.so               |  Bin 4336768 -> 4545544 bytes
 .../com/taobao/weex/IWXStatisticsListener.java  |  252 +
 .../main/java/com/taobao/weex/InitConfig.java   |   14 +
 .../java/com/taobao/weex/WXEnvironment.java     |   18 +
 .../main/java/com/taobao/weex/WXSDKEngine.java  |    5 +-
 .../java/com/taobao/weex/WXSDKInstance.java     |   77 +-
 .../main/java/com/taobao/weex/WXSDKManager.java |   79 +-
 .../taobao/weex/adapter/IWXSoLoaderAdapter.java |  236 +
 .../java/com/taobao/weex/bridge/WXBridge.java   |    6 +
 .../com/taobao/weex/bridge/WXBridgeManager.java |   59 +-
 .../java/com/taobao/weex/bridge/WXParams.java   |   13 +
 .../java/com/taobao/weex/common/Constants.java  |    8 +
 .../java/com/taobao/weex/common/IWXBridge.java  |    7 +
 .../taobao/weex/common/WXJSBridgeMsgType.java   |    1 +
 .../taobao/weex/ui/IExternalMoudleGetter.java   |  215 +
 .../taobao/weex/ui/component/WXComponent.java   |    7 +-
 .../com/taobao/weex/ui/component/WXImage.java   |    6 +
 .../java/com/taobao/weex/utils/OsVersion.java   |  233 +
 .../main/java/com/taobao/weex/utils/Trace.java  |  301 +
 .../taobao/weex/utils/WXSoInstallMgrSdk.java    |   51 +-
 .../java/com/taobao/weex/utils/WXUtils.java     |   84 +-
 .../taobao/weex/bridge/WXWebsocketBridge.java   |    3 +
 bin/dist-vue.sh                                 |   42 +
 build/build.js                                  |    2 +
 build/config.js                                 |    9 +-
 build/examples-banner-plugin.js                 |   65 +
 build/karma.vue.conf.js                         |   64 +-
 build/webpack.examples.config.js                |    3 +-
 build/webpack.examples.web.config.js            |   24 +-
 dangerfile.js                                   |   30 +
 examples/vue/animation.vue                      |    4 +-
 examples/vue/components/countdown.vue           |    2 +-
 examples/vue/components/image.vue               |    2 +-
 examples/vue/components/list.vue                |   19 +-
 examples/vue/components/marquee.vue             |    3 +-
 examples/vue/components/navigator.vue           |    7 +-
 examples/vue/components/scroller.vue            |   34 +-
 examples/vue/components/slider.vue              |   22 +-
 examples/vue/components/text.vue                |    2 +-
 examples/vue/components/textarea.vue            |   57 +
 examples/vue/components/video.vue               |    2 +-
 examples/vue/components/web.vue                 |    2 +-
 examples/vue/iconfont.vue                       |    2 +-
 examples/vue/include/base-url.js                |    4 +-
 examples/vue/include/button.vue                 |    2 +-
 examples/vue/include/countdown.vue              |    2 +-
 examples/vue/include/example-list-item.vue      |    2 +-
 examples/vue/include/example-list.vue           |    2 +-
 examples/vue/include/h1.vue                     |    2 +-
 examples/vue/include/h2.vue                     |    2 +-
 examples/vue/include/h3.vue                     |    2 +-
 examples/vue/include/hn.vue                     |    2 +-
 examples/vue/include/list-item.vue              |    2 +-
 examples/vue/include/marquee.vue                |    4 +-
 examples/vue/include/navbar.vue                 |    2 +-
 examples/vue/include/navpage.vue                |    2 +-
 examples/vue/include/panel.vue                  |   10 +-
 examples/vue/include/slider-item.vue            |    2 +-
 examples/vue/include/slider-page.vue            |    5 +-
 examples/vue/include/tabbar.vue                 |    6 +-
 examples/vue/include/tabitem.vue                |    2 +-
 examples/vue/include/tip.vue                    |    2 +-
 examples/vue/include/wxc-list-item.vue          |    2 +-
 examples/vue/modules/stream.vue                 |    2 +-
 examples/vue/showcase/calculator.vue            |    2 +-
 examples/vue/showcase/include/banners.vue       |    4 +-
 examples/vue/showcase/include/brand.vue         |    2 +-
 examples/vue/showcase/include/category.vue      |    8 +-
 examples/vue/showcase/include/coupon.vue        |    2 +-
 examples/vue/showcase/include/goods.vue         |    4 +-
 examples/vue/showcase/include/headlines.vue     |    2 +-
 examples/vue/showcase/include/match.vue         |    4 +-
 examples/vue/showcase/include/resource.vue      |    2 +-
 examples/vue/showcase/include/scene.vue         |    4 +-
 examples/vue/showcase/itemlist.vue              |  246 +-
 examples/vue/showcase/new-fashion.vue           |    2 +-
 examples/vue/style/index.vue                    |    2 +-
 examples/vue/style/style-box.vue                |    2 +-
 examples/vue/style/style-flex.vue               |    2 +-
 examples/vue/style/style-item.vue               |    2 +-
 examples/vue/syntax/hello-world-3.vue           |    4 +-
 examples/vue/syntax/hello-world-4.vue           |    4 +-
 examples/vue/syntax/hello-world-5.vue           |    4 +-
 examples/vue/syntax/hello-world.vue             |    4 +-
 examples/vue/syntax/include/btn.vue             |    2 +-
 examples/vue/syntax/include/sub.vue             |    2 +-
 examples/vue/syntax/script-component.vue        |    2 +-
 examples/vue/syntax/script-data.vue             |    2 +-
 examples/vue/syntax/script-events.vue           |    4 +-
 examples/vue/syntax/script-instance.vue         |    2 +-
 examples/vue/syntax/script-lifecycle.vue        |    4 +-
 examples/vue/syntax/script-module.vue           |    2 +-
 examples/vue/syntax/script-options.vue          |    2 +-
 examples/vue/syntax/template-class.vue          |    2 +-
 examples/vue/syntax/template-event.vue          |    2 +-
 examples/vue/syntax/template-if.vue             |    2 +-
 examples/vue/syntax/template-repeat-update.vue  |    2 +-
 examples/vue/syntax/template-repeat.vue         |    8 +-
 flow-typed/npm/animationjs_vx.x.x.js            |   60 +
 flow-typed/npm/babel-core_vx.x.x.js             |  227 +
 flow-typed/npm/babel-eslint_vx.x.x.js           |   73 +
 flow-typed/npm/babel-istanbul_vx.x.x.js         |  353 +
 flow-typed/npm/babel-loader_vx.x.x.js           |   67 +
 flow-typed/npm/babel-plugin-coverage_vx.x.x.js  |   32 +
 flow-typed/npm/babel-preset-es2015_vx.x.x.js    |   32 +
 flow-typed/npm/babel-runtime_vx.x.x.js          | 1691 ++++
 flow-typed/npm/chai_v3.5.x.js                   |  212 +
 flow-typed/npm/chromedriver_vx.x.x.js           |   46 +
 flow-typed/npm/core-js_vx.x.x.js                | 9390 ++++++++++++++++++
 flow-typed/npm/cross-spawn_vx.x.x.js            |   59 +
 flow-typed/npm/css-loader_vx.x.x.js             |   87 +
 flow-typed/npm/cubicbezier_vx.x.x.js            |  109 +
 flow-typed/npm/danger_vx.x.x.js                 |  284 +
 flow-typed/npm/envd_vx.x.x.js                   |  109 +
 flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js |  319 +
 flow-typed/npm/eslint_vx.x.x.js                 | 1978 ++++
 flow-typed/npm/flow-bin_v0.x.x.js               |    6 +
 flow-typed/npm/fs-extra_vx.x.x.js               |  221 +
 flow-typed/npm/http-server_vx.x.x.js            |   39 +
 flow-typed/npm/httpurl_vx.x.x.js                |   67 +
 flow-typed/npm/inline-style-prefixer_vx.x.x.js  |  347 +
 flow-typed/npm/json-loader_vx.x.x.js            |   33 +
 flow-typed/npm/karma-coverage_vx.x.x.js         |   81 +
 flow-typed/npm/karma-mocha-reporter_vx.x.x.js   |   38 +
 flow-typed/npm/karma-mocha_vx.x.x.js            |   53 +
 .../npm/karma-phantomjs-launcher_vx.x.x.js      |   59 +
 flow-typed/npm/karma-sourcemap-loader_vx.x.x.js |   33 +
 flow-typed/npm/karma-webpack_vx.x.x.js          |   45 +
 flow-typed/npm/karma_vx.x.x.js                  |  445 +
 flow-typed/npm/lazyimg_vx.x.x.js                |   32 +
 flow-typed/npm/macaca-cli_vx.x.x.js             |  123 +
 flow-typed/npm/macaca-utils_vx.x.x.js           |   39 +
 flow-typed/npm/mocha_v2.4.x.js                  |   25 +
 flow-typed/npm/modals_vx.x.x.js                 |   81 +
 flow-typed/npm/nightwatch_vx.x.x.js             |  633 ++
 flow-typed/npm/phantomjs-prebuilt_vx.x.x.js     |  389 +
 flow-typed/npm/query-string_vx.x.x.js           |   33 +
 flow-typed/npm/reify_vx.x.x.js                  |   95 +
 flow-typed/npm/rollup-plugin-buble_vx.x.x.js    |   39 +
 flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js |   81 +
 flow-typed/npm/rollup-plugin-eslint_vx.x.x.js   |   39 +
 .../rollup-plugin-flow-no-whitespace_vx.x.x.js  |   33 +
 flow-typed/npm/rollup-plugin-flow_vx.x.x.js     |   33 +
 flow-typed/npm/rollup-plugin-json_vx.x.x.js     |   46 +
 .../npm/rollup-plugin-node-resolve_vx.x.x.js    |   53 +
 flow-typed/npm/rollup-plugin-postcss_vx.x.x.js  |   38 +
 flow-typed/npm/rollup-plugin-replace_vx.x.x.js  |   46 +
 flow-typed/npm/rollup-plugin-uglify_vx.x.x.js   |   32 +
 flow-typed/npm/rollup-watch_vx.x.x.js           |   67 +
 flow-typed/npm/rollup_vx.x.x.js                 |   46 +
 flow-typed/npm/scroll-to_vx.x.x.js              |   33 +
 flow-typed/npm/selenium-server_vx.x.x.js        |   39 +
 flow-typed/npm/semver_v5.1.x.js                 |   81 +
 flow-typed/npm/serve_vx.x.x.js                  |   18 +
 flow-typed/npm/sinon-chai_vx.x.x.js             |   32 +
 flow-typed/npm/sinon_vx.x.x.js                  |  263 +
 flow-typed/npm/uglify-js_vx.x.x.js              |  116 +
 flow-typed/npm/vue-loader_vx.x.x.js             |  122 +
 flow-typed/npm/vue-template-compiler_vx.x.x.js  |   38 +
 flow-typed/npm/vue_vx.x.x.js                    | 1089 ++
 flow-typed/npm/webdriver-client_vx.x.x.js       |  129 +
 flow-typed/npm/webpack_vx.x.x.js                | 1523 +++
 flow-typed/npm/weex-components_vx.x.x.js        |   33 +
 flow-typed/npm/weex-loader_vx.x.x.js            |  108 +
 flow-typed/npm/weex-picker_vx.x.x.js            |   81 +
 flow-typed/npm/weex-rax-framework_vx.x.x.js     |  165 +
 flow-typed/npm/weex-styler_vx.x.x.js            |   66 +
 flow-typed/npm/weex-vdom-tester_vx.x.x.js       |  108 +
 flow-typed/npm/weex-vue-framework_vx.x.x.js     |   33 +
 flow-typed/npm/weex-wd_vx.x.x.js                |   38 +
 flow-typed/npm/wwp_vx.x.x.js                    |   39 +
 flow-typed/npm/xml2map_vx.x.x.js                |   45 +
 html5/frameworks/legacy/app/ctrl/init.js        |   55 +-
 html5/frameworks/legacy/static/create.js        |    5 +-
 html5/frameworks/legacy/static/life.js          |   17 +
 html5/render/browser/extend/api/stream.js       |    2 +-
 html5/render/browser/extend/components/input.js |   33 +
 .../browser/extend/components/textarea.js       |   32 +
 html5/render/browser/utils/index.js             |    9 +
 html5/render/vue/README.md                      |   51 +-
 html5/render/vue/components/a.js                |   18 +-
 html5/render/vue/components/div.js              |   25 +-
 html5/render/vue/components/image.js            |   81 +-
 html5/render/vue/components/index.js            |    9 +-
 html5/render/vue/components/input.js            |   31 +-
 .../render/vue/components/scrollable/header.js  |   40 +-
 .../vue/components/scrollable/list/cell.js      |   15 +-
 .../vue/components/scrollable/list/index.js     |   32 +-
 .../vue/components/scrollable/list/listMixin.js |  118 +-
 .../components/scrollable/loading-indicator.js  |    3 +-
 .../render/vue/components/scrollable/loading.js |   55 +-
 .../render/vue/components/scrollable/refresh.js |   64 +-
 .../vue/components/scrollable/scroller.js       |   30 +-
 .../render/vue/components/scrollable/shared.js  |   22 -
 html5/render/vue/components/slider/index.js     |   40 +-
 html5/render/vue/components/slider/indicator.js |  115 +-
 .../render/vue/components/slider/slideMixin.js  |  141 +-
 html5/render/vue/components/switch.js           |   11 +-
 html5/render/vue/components/text.js             |   45 +-
 html5/render/vue/components/textarea.js         |   29 +-
 html5/render/vue/components/video.js            |   14 +-
 html5/render/vue/components/web.js              |   19 +-
 html5/render/vue/env/WXEnvironment.js           |   39 -
 html5/render/vue/env/index.js                   |   17 +-
 html5/render/vue/env/viewport.js                |   56 +-
 html5/render/vue/env/weex.js                    |   30 +-
 html5/render/vue/env/wx-env.js                  |   48 +
 html5/render/vue/index.js                       |   64 +-
 html5/render/vue/mixins/base.js                 |  110 +-
 html5/render/vue/mixins/event.js                |   76 -
 html5/render/vue/mixins/index.js                |    8 +-
 html5/render/vue/mixins/input-common.js         |   47 +
 html5/render/vue/mixins/scrollable.js           |  110 +
 html5/render/vue/mixins/style.js                |  265 +-
 html5/render/vue/modules/dom.js                 |   69 +-
 html5/render/vue/modules/index.js               |   42 +-
 html5/render/vue/styles/components.css          |  225 +-
 html5/render/vue/styles/reset.css               |   44 +-
 html5/render/vue/utils/component.js             |   83 +-
 html5/render/vue/utils/event.js                 |   91 +-
 html5/render/vue/utils/func.js                  |   81 +-
 html5/render/vue/utils/index.js                 |   55 +-
 html5/render/vue/utils/lazyload.js              |  102 +
 html5/render/vue/utils/perf.js                  |  170 +
 html5/render/vue/utils/style.js                 |   21 +
 html5/render/vue/utils/type.js                  |   20 +
 html5/test/render/index.js                      |    3 -
 html5/test/render/vue/components/a.js           |   38 +
 html5/test/render/vue/components/div.js         |   29 +
 html5/test/render/vue/components/image.js       |   44 +-
 html5/test/render/vue/components/list.js        |   21 +-
 html5/test/render/vue/components/switch.js      |   35 +-
 html5/test/render/vue/components/text.js        |   42 +-
 html5/test/render/vue/components/web.js         |   14 +-
 html5/test/render/vue/examples/list-cell.js     |   16 +-
 html5/test/render/vue/helper.js                 |  157 +-
 html5/test/render/vue/utils.js                  |    1 -
 html5/test/render/vue/validator/check.js        |    1 -
 html5/test/render/vue/validator/index.js        |    1 -
 html5/test/render/vue/validator/prop.js         |    1 -
 html5/test/render/vue/validator/style.js        |    1 -
 index.html                                      |    3 +-
 .../Recycler/WXRecyclerDataController.m         |    2 +-
 .../Component/WXComponent+GradientColor.h       |    3 -
 .../Sources/Display/WXComponent+BoxShadow.h     |    2 +-
 .../Sources/Display/WXComponent+BoxShadow.m     |   10 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.h  |    2 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.m  |    4 +-
 .../WeexSDK/Sources/Layout/WXComponent+Layout.m |    2 +-
 .../Sources/Manager/WXComponentManager.m        |    4 +-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.h   |    2 +-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |   19 +-
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |    1 +
 package.json                                    |   24 +-
 packages/weex-vue-render/README.md              |   51 +-
 packages/weex-vue-render/package.json           |   13 +-
 test/ci-funcs.sh                                |    3 +
 test/pages/image-onload.vue                     |    2 +-
 test/pages/index.vue                            |   10 +-
 test/scripts/index.test.js                      |   14 +-
 vue.html                                        |   53 +-
 300 files changed, 28453 insertions(+), 1520 deletions(-)
----------------------------------------------------------------------



[03/12] incubator-weex git commit: [android] change getComponent from IRenderStatus to IRenderResult

Posted by zs...@apache.org.
[android] change getComponent from IRenderStatus to IRenderResult


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

Branch: refs/heads/0.12-dev
Commit: b7e5b16c42ad78e68f7fbda53b1a565f87de7a24
Parents: 591d5b1
Author: \u884c\u4e45 <yi...@alibaba-inc.com>
Authored: Wed Apr 5 11:37:47 2017 +0800
Committer: \u884c\u4e45 <yi...@alibaba-inc.com>
Committed: Wed Apr 5 11:37:47 2017 +0800

----------------------------------------------------------------------
 .../sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java  | 1 -
 .../sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java  | 2 +-
 .../sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java    | 3 ++-
 android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7e5b16c/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
index fceeae7..da362c0 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
@@ -212,5 +212,4 @@ public interface IRenderStatus<T extends WXComponent> {
 
   public void holdComponent(T component);
 
-  public T getComponent();
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7e5b16c/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
index 58bb038..40a445f 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
@@ -221,7 +221,7 @@ import java.lang.ref.WeakReference;
  * FrameLayout wrapper
  *
  */
-public class WXFrameLayout extends FrameLayout implements WXGestureObservable,IRenderStatus<WXDiv> {
+public class WXFrameLayout extends FrameLayout implements WXGestureObservable,IRenderStatus<WXDiv>,IRenderResult<WXDiv> {
 
   private WXGesture wxGesture;
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7e5b16c/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
index 4e662e4..0f45ec2 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
@@ -223,7 +223,8 @@ import java.lang.ref.WeakReference;
 import java.util.Arrays;
 
 public class WXImageView extends ImageView implements WXGestureObservable,
-                                                      IRenderStatus<WXImage>, WXImage.Measurable {
+                                                      IRenderStatus<WXImage>,
+                                                      IRenderResult<WXImage>, WXImage.Measurable {
 
   private WeakReference<WXImage> mWeakReference;
   private WXGesture wxGesture;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7e5b16c/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
index 6fd6dda..68564da 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
@@ -222,7 +222,7 @@ import java.lang.ref.WeakReference;
  * TextView wrapper
  */
 public class WXTextView extends View implements WXGestureObservable, IWXTextView,
-                                                IRenderStatus<WXText> {
+                                                IRenderStatus<WXText>, IRenderResult<WXText> {
 
   private WeakReference<WXText> mWeakReference;
   private WXGesture wxGesture;


[05/12] incubator-weex git commit: [android] just fire the CI run again.

Posted by zs...@apache.org.
[android] just fire the CI run again.


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

Branch: refs/heads/0.12-dev
Commit: 55954156492e339819a25dd52847ff038c6479d7
Parents: 3c63aff
Author: \u884c\u4e45 <yi...@alibaba-inc.com>
Authored: Thu Apr 6 14:51:39 2017 +0800
Committer: \u884c\u4e45 <yi...@alibaba-inc.com>
Committed: Thu Apr 6 14:51:39 2017 +0800

----------------------------------------------------------------------
 .../sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java   | 2 +-
 .../sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java   | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/55954156/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java
index 3df74fa..95b56a5 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderResult.java
@@ -209,5 +209,5 @@ package com.taobao.weex.ui.view;
 import com.taobao.weex.ui.component.WXComponent;
 
 public interface IRenderResult<T extends WXComponent> {
-  public T getComponent();
+    T getComponent();
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/55954156/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
index da362c0..0c3de42 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/IRenderStatus.java
@@ -211,5 +211,4 @@ import com.taobao.weex.ui.component.WXComponent;
 public interface IRenderStatus<T extends WXComponent> {
 
   public void holdComponent(T component);
-
 }


[09/12] incubator-weex git commit: Merge remote-tracking branch 'origin/0.12-dev' into feature-android-irender-result

Posted by zs...@apache.org.
Merge remote-tracking branch 'origin/0.12-dev' into feature-android-irender-result


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

Branch: refs/heads/0.12-dev
Commit: 33932c43be2b568ddccaada16c74ad77532f1d12
Parents: 14fe09c 7be4686
Author: \u884c\u4e45 <yi...@alibaba-inc.com>
Authored: Tue Apr 11 15:56:16 2017 +0800
Committer: \u884c\u4e45 <yi...@alibaba-inc.com>
Committed: Tue Apr 11 15:56:16 2017 +0800

----------------------------------------------------------------------
 .rat-excludes                                   |  11 +
 .travis.yml                                     |   2 +-
 NOTICE                                          |   7 +-
 .../alibaba/weex/commons/ApplicationTest.java   | 222 +-----
 .../weex/commons/AbstractWeexActivity.java      | 222 +-----
 .../weex/commons/SimpleWeexActivity.java        | 220 +-----
 .../weex/commons/WXAnalyzerDelegate.java        | 220 +-----
 .../alibaba/weex/commons/adapter/BlurTool.java  | 220 +-----
 .../commons/adapter/BlurTransformation.java     | 222 +-----
 .../adapter/DefaultWebSocketAdapter.java        | 220 +-----
 .../adapter/DefaultWebSocketAdapterFactory.java | 220 +-----
 .../commons/adapter/FrescoImageAdapter.java     | 220 +-----
 .../commons/adapter/FrescoImageComponent.java   | 220 +-----
 .../weex/commons/adapter/FrescoImageView.java   | 220 +-----
 .../weex/commons/adapter/ImageAdapter.java      | 220 +-----
 .../commons/adapter/JSExceptionAdapter.java     | 220 +-----
 .../alibaba/weex/commons/util/AssertUtil.java   | 220 +-----
 .../alibaba/weex/commons/util/ScreenUtil.java   | 220 +-----
 .../java/com/alibaba/weex/ApplicationTest.java  |  20 +-
 .../com/alibaba/weex/WeappJsBaseTestCase.java   |  18 +
 .../benchmark/BenchmarkActivityTestRule.java    | 218 +-----
 .../alibaba/weex/benchmark/BenchmarkTest.java   | 218 +-----
 .../com/alibaba/weex/benchmark/BoxPlot.java     | 218 +-----
 .../java/com/alibaba/weex/benchmark/Repeat.java | 218 +-----
 .../com/alibaba/weex/benchmark/RepeatRule.java  | 218 +-----
 .../weex/benchmark/WeexNativeCompareTest.java   | 218 +-----
 .../java/com/alibaba/weex/util/Falcon.java      |  18 +
 .../java/com/alibaba/weex/util/ScreenShot.java  |  18 +
 .../com/alibaba/weex/util/SdCardHelper.java     |  18 +
 .../java/com/alibaba/weex/util/TestFlow.java    |  18 +
 .../java/com/alibaba/weex/util/ViewUtil.java    |  18 +
 .../com/alibaba/weex/BenchmarkActivity.java     | 218 +-----
 .../java/com/alibaba/weex/IndexActivity.java    | 220 +-----
 .../java/com/alibaba/weex/SplashActivity.java   | 220 +-----
 .../src/main/java/com/alibaba/weex/Utility.java | 220 +-----
 .../java/com/alibaba/weex/WXApplication.java    | 220 +-----
 .../java/com/alibaba/weex/WXBaseActivity.java   | 220 +-----
 .../java/com/alibaba/weex/WXDebugActivity.java  | 220 +-----
 .../java/com/alibaba/weex/WXPageActivity.java   | 220 +-----
 .../com/alibaba/weex/constants/Constants.java   | 220 +-----
 .../alibaba/weex/extend/PlayDebugAdapter.java   | 220 +-----
 .../extend/WXInstanceStatisticsListener.java    | 220 +-----
 .../extend/adapter/InterceptWXHttpAdapter.java  | 220 +-----
 .../alibaba/weex/extend/component/RichText.java | 220 +-----
 .../extend/component/WXComponentSyncTest.java   | 220 +-----
 .../alibaba/weex/extend/component/WXMask.java   | 126 +---
 .../extend/component/dom/WXMaskDomObject.java   | 220 +-----
 .../weex/extend/module/GeolocationModule.java   | 220 +-----
 .../alibaba/weex/extend/module/MyModule.java    | 220 +-----
 .../weex/extend/module/RenderModule.java        | 220 +-----
 .../weex/extend/module/SyncTestModule.java      | 220 +-----
 .../weex/extend/module/WXEventModule.java       | 220 +-----
 .../extend/module/location/DefaultLocation.java | 222 +-----
 .../weex/extend/module/location/ILocatable.java | 220 +-----
 .../extend/module/location/LocationFactory.java | 220 +-----
 .../alibaba/weex/extend/view/WXMaskView.java    | 220 +-----
 .../alibaba/weex/https/HotRefreshManager.java   | 220 +-----
 .../com/alibaba/weex/https/WXHttpManager.java   | 220 +-----
 .../com/alibaba/weex/https/WXHttpResponse.java  | 220 +-----
 .../java/com/alibaba/weex/https/WXHttpTask.java | 220 +-----
 .../alibaba/weex/https/WXOkHttpDispatcher.java  | 220 +-----
 .../alibaba/weex/https/WXRequestListener.java   | 220 +-----
 android/sdk/license/LICENSE                     | 218 +-----
 .../taobao/weex/IWXActivityStateListener.java   | 220 +-----
 .../java/com/taobao/weex/IWXRenderListener.java | 220 +-----
 .../com/taobao/weex/IWXStatisticsListener.java  | 220 +-----
 .../main/java/com/taobao/weex/InitConfig.java   | 220 +-----
 .../java/com/taobao/weex/RenderContainer.java   | 220 +-----
 .../java/com/taobao/weex/WXEnvironment.java     | 238 +------
 .../com/taobao/weex/WXGlobalEventModule.java    | 126 +---
 .../com/taobao/weex/WXGlobalEventReceiver.java  | 220 +-----
 .../java/com/taobao/weex/WXRenderErrorCode.java | 220 +-----
 .../main/java/com/taobao/weex/WXSDKEngine.java  | 129 +---
 .../java/com/taobao/weex/WXSDKInstance.java     | 224 +-----
 .../main/java/com/taobao/weex/WXSDKManager.java | 153 +----
 .../taobao/weex/adapter/DefaultUriAdapter.java  | 220 +-----
 .../weex/adapter/DefaultWXHttpAdapter.java      | 220 +-----
 .../taobao/weex/adapter/DrawableStrategy.java   | 218 +-----
 .../taobao/weex/adapter/IDrawableLoader.java    | 218 +-----
 .../taobao/weex/adapter/IWXDebugAdapter.java    | 220 +-----
 .../com/taobao/weex/adapter/IWXHttpAdapter.java | 220 +-----
 .../weex/adapter/IWXImgLoaderAdapter.java       | 220 +-----
 .../weex/adapter/IWXJSExceptionAdapter.java     | 220 +-----
 .../taobao/weex/adapter/IWXSoLoaderAdapter.java | 220 +-----
 .../weex/adapter/IWXUserTrackAdapter.java       | 220 +-----
 .../com/taobao/weex/adapter/URIAdapter.java     | 220 +-----
 .../com/taobao/weex/annotation/Component.java   | 220 +-----
 .../com/taobao/weex/annotation/JSMethod.java    | 220 +-----
 .../weex/appfram/clipboard/IWXClipboard.java    | 220 +-----
 .../appfram/clipboard/WXClipboardModule.java    | 220 +-----
 .../navigator/IActivityNavBarSetter.java        | 220 +-----
 .../appfram/navigator/WXNavigatorModule.java    | 130 +---
 .../weex/appfram/pickers/DatePickerImpl.java    | 220 +-----
 .../weex/appfram/pickers/WXPickersModule.java   | 392 +++++------
 .../weex/appfram/storage/DefaultWXStorage.java  | 220 +-----
 .../taobao/weex/appfram/storage/IWXStorage.java | 220 +-----
 .../weex/appfram/storage/IWXStorageAdapter.java | 220 +-----
 .../appfram/storage/StorageResultHandler.java   | 220 +-----
 .../appfram/storage/WXSQLiteOpenHelper.java     | 220 +-----
 .../weex/appfram/storage/WXStorageModule.java   | 220 +-----
 .../appfram/websocket/IWebSocketAdapter.java    | 220 +-----
 .../websocket/IWebSocketAdapterFactory.java     | 220 +-----
 .../appfram/websocket/WebSocketCloseCodes.java  | 220 +-----
 .../weex/appfram/websocket/WebSocketModule.java | 220 +-----
 .../java/com/taobao/weex/bridge/Invoker.java    | 220 +-----
 .../java/com/taobao/weex/bridge/JSCallback.java | 220 +-----
 .../taobao/weex/bridge/JavascriptInvokable.java | 220 +-----
 .../com/taobao/weex/bridge/MethodInvoker.java   | 220 +-----
 .../com/taobao/weex/bridge/ModuleFactory.java   | 220 +-----
 .../taobao/weex/bridge/NativeInvokeHelper.java  | 220 +-----
 .../taobao/weex/bridge/SimpleJSCallback.java    | 220 +-----
 .../java/com/taobao/weex/bridge/WXBridge.java   | 220 +-----
 .../com/taobao/weex/bridge/WXBridgeManager.java | 223 +-----
 .../java/com/taobao/weex/bridge/WXHashMap.java  | 220 +-----
 .../java/com/taobao/weex/bridge/WXJSObject.java | 220 +-----
 .../com/taobao/weex/bridge/WXModuleManager.java | 220 +-----
 .../java/com/taobao/weex/bridge/WXParams.java   | 143 +---
 .../taobao/weex/bridge/WXServiceManager.java    | 220 +-----
 .../java/com/taobao/weex/bridge/WXTask.java     | 220 +-----
 .../taobao/weex/bridge/WXValidateProcessor.java | 220 +-----
 .../java/com/taobao/weex/common/Constants.java  | 222 +-----
 .../com/taobao/weex/common/Destroyable.java     | 220 +-----
 .../java/com/taobao/weex/common/IWXBridge.java  | 220 +-----
 .../com/taobao/weex/common/IWXDebugProxy.java   | 220 +-----
 .../java/com/taobao/weex/common/IWXObject.java  | 220 +-----
 .../java/com/taobao/weex/common/IWXTask.java    | 220 +-----
 .../taobao/weex/common/OnWXScrollListener.java  | 143 +---
 .../taobao/weex/common/TypeModuleFactory.java   | 220 +-----
 .../com/taobao/weex/common/WXCompatModule.java  | 220 +-----
 .../java/com/taobao/weex/common/WXConfig.java   | 220 +-----
 .../com/taobao/weex/common/WXErrorCode.java     | 220 +-----
 .../com/taobao/weex/common/WXException.java     | 220 +-----
 .../com/taobao/weex/common/WXImageSharpen.java  | 220 +-----
 .../com/taobao/weex/common/WXImageStrategy.java | 222 +-----
 .../com/taobao/weex/common/WXInstanceWrap.java  | 220 +-----
 .../taobao/weex/common/WXJSBridgeMsgType.java   | 220 +-----
 .../taobao/weex/common/WXJSEngineListener.java  | 220 +-----
 .../taobao/weex/common/WXJSExceptionInfo.java   | 220 +-----
 .../com/taobao/weex/common/WXJSService.java     | 220 +-----
 .../java/com/taobao/weex/common/WXModule.java   | 220 +-----
 .../com/taobao/weex/common/WXModuleAnno.java    | 222 +-----
 .../com/taobao/weex/common/WXPerformance.java   | 222 +-----
 .../com/taobao/weex/common/WXRefreshData.java   | 220 +-----
 .../taobao/weex/common/WXRenderStrategy.java    | 223 +-----
 .../java/com/taobao/weex/common/WXRequest.java  | 220 +-----
 .../taobao/weex/common/WXRequestListener.java   | 220 +-----
 .../java/com/taobao/weex/common/WXResponse.java | 220 +-----
 .../taobao/weex/common/WXRuntimeException.java  | 220 +-----
 .../java/com/taobao/weex/common/WXThread.java   | 220 +-----
 .../com/taobao/weex/dom/ApplyStyleConsumer.java | 220 +-----
 .../taobao/weex/dom/BasicEditTextDomObject.java | 220 +-----
 .../com/taobao/weex/dom/CSSAlignConvert.java    | 220 +-----
 .../weex/dom/CSSFlexDirectionConvert.java       | 220 +-----
 .../com/taobao/weex/dom/CSSJustifyConvert.java  | 220 +-----
 .../taobao/weex/dom/CSSPositionTypeConvert.java | 220 +-----
 .../com/taobao/weex/dom/CSSWrapConvert.java     | 220 +-----
 .../java/com/taobao/weex/dom/DOMAction.java     | 220 +-----
 .../com/taobao/weex/dom/DOMActionContext.java   | 220 +-----
 .../taobao/weex/dom/DOMActionContextImpl.java   | 222 +-----
 .../java/com/taobao/weex/dom/DomContext.java    | 220 +-----
 .../com/taobao/weex/dom/ImmutableDomObject.java | 220 +-----
 .../java/com/taobao/weex/dom/RenderAction.java  | 220 +-----
 .../taobao/weex/dom/RenderActionContext.java    | 220 +-----
 .../com/taobao/weex/dom/RenderActionTask.java   | 220 +-----
 .../weex/dom/SafePutConcurrentHashMap.java      | 220 +-----
 .../weex/dom/TextAreaEditTextDomObject.java     | 220 +-----
 .../main/java/com/taobao/weex/dom/WXAttr.java   | 220 +-----
 .../com/taobao/weex/dom/WXCustomStyleSpan.java  | 220 +-----
 .../java/com/taobao/weex/dom/WXDomHandler.java  | 220 +-----
 .../java/com/taobao/weex/dom/WXDomManager.java  | 220 +-----
 .../java/com/taobao/weex/dom/WXDomModule.java   | 220 +-----
 .../java/com/taobao/weex/dom/WXDomObject.java   | 220 +-----
 .../com/taobao/weex/dom/WXDomObjectFactory.java | 220 +-----
 .../java/com/taobao/weex/dom/WXDomRegistry.java | 220 +-----
 .../java/com/taobao/weex/dom/WXDomTask.java     | 220 +-----
 .../main/java/com/taobao/weex/dom/WXEvent.java  | 220 +-----
 .../com/taobao/weex/dom/WXImageQuality.java     | 222 +-----
 .../com/taobao/weex/dom/WXLineHeightSpan.java   | 220 +-----
 .../com/taobao/weex/dom/WXListDomObject.java    | 220 +-----
 .../taobao/weex/dom/WXRecyclerDomObject.java    | 220 +-----
 .../taobao/weex/dom/WXScrollerDomObject.java    | 220 +-----
 .../main/java/com/taobao/weex/dom/WXStyle.java  | 220 +-----
 .../com/taobao/weex/dom/WXSwitchDomObject.java  | 220 +-----
 .../com/taobao/weex/dom/WXTextDomObject.java    | 220 +-----
 .../dom/action/AbstractAddElementAction.java    | 220 +-----
 .../dom/action/AbstractLayoutFinishAction.java  | 220 +-----
 .../java/com/taobao/weex/dom/action/Action.java | 220 +-----
 .../com/taobao/weex/dom/action/Actions.java     | 220 +-----
 .../weex/dom/action/AddElementAction.java       | 220 +-----
 .../taobao/weex/dom/action/AddEventAction.java  | 220 +-----
 .../taobao/weex/dom/action/AddRuleAction.java   | 220 +-----
 .../taobao/weex/dom/action/AnimationAction.java | 218 +-----
 .../weex/dom/action/CreateBodyAction.java       | 220 +-----
 .../weex/dom/action/CreateFinishAction.java     | 220 +-----
 .../weex/dom/action/GetComponentRectAction.java | 220 +-----
 .../weex/dom/action/InvokeMethodAction.java     | 220 +-----
 .../weex/dom/action/MoveElementAction.java      | 220 +-----
 .../weex/dom/action/RefreshFinishAction.java    | 220 +-----
 .../weex/dom/action/RemoveElementAction.java    | 220 +-----
 .../weex/dom/action/RemoveEventAction.java      | 220 +-----
 .../weex/dom/action/ScrollToElementAction.java  | 220 +-----
 .../weex/dom/action/UpdateAttributeAction.java  | 220 +-----
 .../weex/dom/action/UpdateFinishAction.java     | 220 +-----
 .../weex/dom/action/UpdateStyleAction.java      | 220 +-----
 .../main/java/com/taobao/weex/http/Options.java | 220 +-----
 .../main/java/com/taobao/weex/http/Status.java  | 220 +-----
 .../java/com/taobao/weex/http/WXHttpUtil.java   | 220 +-----
 .../com/taobao/weex/http/WXStreamModule.java    | 220 +-----
 .../com/taobao/weex/ui/ComponentCreator.java    | 220 +-----
 .../weex/ui/ExternalLoaderComponentHolder.java  | 220 +-----
 .../weex/ui/IExternalComponentGetter.java       | 220 +-----
 .../taobao/weex/ui/IExternalMoudleGetter.java   | 220 +-----
 .../com/taobao/weex/ui/IFComponentHolder.java   | 220 +-----
 .../java/com/taobao/weex/ui/IWXRenderTask.java  | 220 +-----
 .../taobao/weex/ui/RenderActionContextImpl.java | 220 +-----
 .../taobao/weex/ui/SimpleComponentHolder.java   | 220 +-----
 .../com/taobao/weex/ui/WXComponentRegistry.java | 220 +-----
 .../com/taobao/weex/ui/WXRenderHandler.java     | 220 +-----
 .../com/taobao/weex/ui/WXRenderManager.java     | 220 +-----
 .../ui/animation/BackgroundColorProperty.java   | 218 +-----
 .../ui/animation/DimensionUpdateListener.java   | 218 +-----
 .../weex/ui/animation/WXAnimationBean.java      | 220 +-----
 .../weex/ui/animation/WXAnimationModule.java    | 220 +-----
 .../ui/component/AbstractEditComponent.java     | 270 ++------
 .../weex/ui/component/AppearanceHelper.java     | 220 +-----
 .../weex/ui/component/NestedContainer.java      | 220 +-----
 .../taobao/weex/ui/component/Scrollable.java    | 220 +-----
 .../com/taobao/weex/ui/component/Textarea.java  | 220 +-----
 .../java/com/taobao/weex/ui/component/WXA.java  | 220 +-----
 .../taobao/weex/ui/component/WXBaseRefresh.java | 220 +-----
 .../weex/ui/component/WXBasicComponentType.java | 221 +-----
 .../taobao/weex/ui/component/WXComponent.java   | 169 ++---
 .../weex/ui/component/WXComponentFactory.java   | 220 +-----
 .../weex/ui/component/WXComponentProp.java      | 220 +-----
 .../com/taobao/weex/ui/component/WXDiv.java     | 220 +-----
 .../com/taobao/weex/ui/component/WXEmbed.java   | 262 ++-----
 .../com/taobao/weex/ui/component/WXHeader.java  | 220 +-----
 .../com/taobao/weex/ui/component/WXImage.java   | 225 +------
 .../taobao/weex/ui/component/WXIndicator.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXInput.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXLoading.java | 220 +-----
 .../weex/ui/component/WXLoadingIndicator.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXRefresh.java | 220 +-----
 .../taobao/weex/ui/component/WXScroller.java    | 220 +-----
 .../com/taobao/weex/ui/component/WXSlider.java  | 301 +++------
 .../weex/ui/component/WXSliderNeighbor.java     | 220 +-----
 .../com/taobao/weex/ui/component/WXSwitch.java  | 220 +-----
 .../com/taobao/weex/ui/component/WXText.java    | 220 +-----
 .../weex/ui/component/WXTextDecoration.java     | 220 +-----
 .../taobao/weex/ui/component/WXVContainer.java  | 220 +-----
 .../com/taobao/weex/ui/component/WXVideo.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXWeb.java     | 220 +-----
 .../component/helper/SoftKeyboardDetector.java  | 148 ++++
 .../ui/component/helper/WXStickyHelper.java     | 220 +-----
 .../ui/component/helper/WXTimeInputHelper.java  | 222 +-----
 .../ui/component/list/BasicListComponent.java   | 220 +-----
 .../component/list/HorizontalListComponent.java | 220 +-----
 .../ui/component/list/ListComponentView.java    | 220 +-----
 .../ui/component/list/SimpleListComponent.java  | 220 +-----
 .../ui/component/list/SimpleRecyclerView.java   | 220 +-----
 .../ui/component/list/StickyHeaderHelper.java   | 220 +-----
 .../taobao/weex/ui/component/list/WXCell.java   | 220 +-----
 .../weex/ui/component/list/WXListComponent.java | 220 +-----
 .../component/pesudo/OnActivePseudoListner.java | 220 +-----
 .../weex/ui/component/pesudo/PesudoStatus.java  | 220 +-----
 .../pesudo/TouchActivePseudoListener.java       | 220 +-----
 .../com/taobao/weex/ui/module/WXMetaModule.java | 220 +-----
 .../taobao/weex/ui/module/WXModalUIModule.java  | 222 +-----
 .../taobao/weex/ui/module/WXTimerModule.java    | 222 +-----
 .../taobao/weex/ui/module/WXWebViewModule.java  | 220 +-----
 .../com/taobao/weex/ui/view/IRenderStatus.java  | 218 +-----
 .../com/taobao/weex/ui/view/IWXScroller.java    | 220 +-----
 .../com/taobao/weex/ui/view/IWXTextView.java    | 220 +-----
 .../java/com/taobao/weex/ui/view/IWebView.java  | 220 +-----
 .../weex/ui/view/WXBaseCircleIndicator.java     | 222 +-----
 .../weex/ui/view/WXBaseRefreshLayout.java       | 220 +-----
 .../taobao/weex/ui/view/WXCircleIndicator.java  | 220 +-----
 .../weex/ui/view/WXCirclePageAdapter.java       | 220 +-----
 .../taobao/weex/ui/view/WXCircleViewPager.java  | 241 +------
 .../com/taobao/weex/ui/view/WXEditText.java     | 220 +-----
 .../com/taobao/weex/ui/view/WXFrameLayout.java  | 220 +-----
 .../weex/ui/view/WXHorizontalScrollView.java    | 220 +-----
 .../com/taobao/weex/ui/view/WXImageView.java    | 220 +-----
 .../taobao/weex/ui/view/WXLoadingLayout.java    | 220 +-----
 .../taobao/weex/ui/view/WXRefreshLayout.java    | 220 +-----
 .../com/taobao/weex/ui/view/WXScrollView.java   | 220 +-----
 .../taobao/weex/ui/view/WXSmoothScroller.java   | 220 +-----
 .../com/taobao/weex/ui/view/WXSwitchView.java   | 220 +-----
 .../com/taobao/weex/ui/view/WXTextView.java     | 220 +-----
 .../com/taobao/weex/ui/view/WXVideoView.java    | 220 +-----
 .../java/com/taobao/weex/ui/view/WXWebView.java | 220 +-----
 .../weex/ui/view/border/BorderCorner.java       | 220 +-----
 .../weex/ui/view/border/BorderDrawable.java     | 222 +-----
 .../taobao/weex/ui/view/border/BorderEdge.java  | 220 +-----
 .../weex/ui/view/border/BorderRadiusType.java   | 218 +-----
 .../taobao/weex/ui/view/border/BorderStyle.java | 220 +-----
 .../taobao/weex/ui/view/border/BorderUtil.java  | 220 +-----
 .../view/border/BorderWidthStyleColorType.java  | 218 +-----
 .../weex/ui/view/border/BottomLeftCorner.java   | 220 +-----
 .../weex/ui/view/border/BottomRightCorner.java  | 220 +-----
 .../weex/ui/view/border/TopLeftCorner.java      | 220 +-----
 .../weex/ui/view/border/TopRightCorner.java     | 220 +-----
 .../taobao/weex/ui/view/gesture/WXGesture.java  | 235 +------
 .../ui/view/gesture/WXGestureObservable.java    | 220 +-----
 .../weex/ui/view/gesture/WXGestureType.java     | 220 +-----
 .../listview/ExtendedLinearLayoutManager.java   | 220 +-----
 .../weex/ui/view/listview/WXRecyclerView.java   | 220 +-----
 .../listview/adapter/IOnLoadMoreListener.java   | 220 +-----
 .../adapter/IRecyclerAdapterListener.java       | 220 +-----
 .../listview/adapter/ListBaseViewHolder.java    | 220 +-----
 .../adapter/RecyclerViewBaseAdapter.java        | 222 +-----
 .../adapter/TransformItemDecoration.java        | 220 +-----
 .../adapter/WXRecyclerViewOnScrollListener.java | 220 +-----
 .../refresh/circlebar/CircleProgressBar.java    | 222 +-----
 .../circlebar/MaterialProgressDrawable.java     | 222 +-----
 .../ui/view/refresh/core/WXRefreshView.java     | 220 +-----
 .../ui/view/refresh/core/WXSwipeLayout.java     | 220 +-----
 .../ui/view/refresh/wrapper/BaseBounceView.java | 220 +-----
 .../refresh/wrapper/BounceRecyclerView.java     | 220 +-----
 .../refresh/wrapper/BounceScrollerView.java     | 220 +-----
 .../java/com/taobao/weex/utils/ATagUtil.java    | 226 +------
 .../main/java/com/taobao/weex/utils/FontDO.java | 222 +-----
 .../com/taobao/weex/utils/FunctionParser.java   | 220 +-----
 .../com/taobao/weex/utils/ImageDrawable.java    | 218 +-----
 .../java/com/taobao/weex/utils/ImgURIUtil.java  | 218 +-----
 .../java/com/taobao/weex/utils/LogLevel.java    | 220 +-----
 .../java/com/taobao/weex/utils/OsVersion.java   | 220 +-----
 .../taobao/weex/utils/SingleFunctionParser.java | 218 +-----
 .../main/java/com/taobao/weex/utils/Trace.java  | 220 +-----
 .../com/taobao/weex/utils/TypefaceUtil.java     | 220 +-----
 .../taobao/weex/utils/WXDataStructureUtil.java  | 220 +-----
 .../java/com/taobao/weex/utils/WXDomUtils.java  | 218 +-----
 .../java/com/taobao/weex/utils/WXFileUtils.java | 220 +-----
 .../com/taobao/weex/utils/WXInterception.java   | 220 +-----
 .../java/com/taobao/weex/utils/WXJsonUtils.java | 220 +-----
 .../java/com/taobao/weex/utils/WXLogUtils.java  | 126 +---
 .../taobao/weex/utils/WXReflectionUtils.java    | 220 +-----
 .../com/taobao/weex/utils/WXResourceUtils.java  | 220 +-----
 .../taobao/weex/utils/WXSoInstallMgrSdk.java    | 220 +-----
 .../java/com/taobao/weex/utils/WXUtils.java     | 220 +-----
 .../java/com/taobao/weex/utils/WXViewUtils.java | 220 +-----
 .../taobao/weex/utils/batch/BactchExecutor.java | 220 +-----
 .../weex/utils/batch/BatchOperationHelper.java  | 220 +-----
 .../taobao/weex/utils/batch/Interceptor.java    | 220 +-----
 .../test/java/com/taobao/weex/TestActivity.java | 220 +-----
 .../java/com/taobao/weex/TestApplication.java   | 220 +-----
 .../java/com/taobao/weex/WXSDKEngineTest.java   | 222 +-----
 .../java/com/taobao/weex/WXSDKInstanceTest.java | 222 +-----
 .../java/com/taobao/weex/WXSDKManagerTest.java  | 222 +-----
 .../weex/adapter/DefaultUriAdapterTest.java     | 222 +-----
 .../clipboard/WXClipboardModuleTest.java        | 222 +-----
 .../navigator/WXNavigatorModuleTest.java        | 222 +-----
 .../appfram/storage/DefaultWXStorageTest.java   | 222 +-----
 .../appfram/storage/WXStorageModuleTest.java    | 222 +-----
 .../taobao/weex/bridge/WXBridgeManagerTest.java | 222 +-----
 .../com/taobao/weex/bridge/WXBridgeTest.java    | 222 +-----
 .../com/taobao/weex/bridge/WXHashMapTest.java   | 220 +-----
 .../taobao/weex/bridge/WXModuleManagerTest.java | 222 +-----
 .../java/com/taobao/weex/common/TestModule.java | 220 +-----
 .../taobao/weex/common/TestModuleFactory.java   | 220 +-----
 .../com/taobao/weex/common/WXModuleTest.java    | 222 +-----
 .../java/com/taobao/weex/dom/TestDomObject.java | 220 +-----
 .../java/com/taobao/weex/dom/WXAttrTest.java    | 222 +-----
 .../com/taobao/weex/dom/WXDomManagerTest.java   | 222 +-----
 .../com/taobao/weex/dom/WXDomModuleTest.java    | 222 +-----
 .../com/taobao/weex/dom/WXDomObjectTest.java    | 222 +-----
 .../com/taobao/weex/dom/WXDomStatementTest.java | 222 +-----
 .../java/com/taobao/weex/dom/WXStyleTest.java   | 220 +-----
 .../taobao/weex/dom/WXTextDomObjectTest.java    | 222 +-----
 .../com/taobao/weex/dom/action/TestActions.java |  18 +
 .../taobao/weex/http/WXStreamModuleTest.java    | 220 +-----
 .../com/taobao/weex/ui/ComponentHolderTest.java | 222 +-----
 .../taobao/weex/ui/WXRenderStatementTest.java   | 222 +-----
 .../ui/animation/WXAnimationModuleTest.java     | 222 +-----
 .../taobao/weex/ui/component/ComponentTest.java | 220 +-----
 .../weex/ui/component/EditComponentTest.java    | 222 +-----
 .../taobao/weex/ui/component/TestComponent.java | 220 +-----
 .../taobao/weex/ui/component/TestConstants.java | 220 +-----
 .../taobao/weex/ui/component/TextareaTest.java  | 222 +-----
 .../weex/ui/component/WXComponentTest.java      | 222 +-----
 .../com/taobao/weex/ui/component/WXDivTest.java | 222 +-----
 .../taobao/weex/ui/component/WXEmbedTest.java   | 222 +-----
 .../taobao/weex/ui/component/WXHeaderTest.java  | 222 +-----
 .../taobao/weex/ui/component/WXImageTest.java   | 128 +---
 .../taobao/weex/ui/component/WXLoadingTest.java | 222 +-----
 .../taobao/weex/ui/component/WXRefreshTest.java | 222 +-----
 .../weex/ui/component/WXScrollerTest.java       | 222 +-----
 .../weex/ui/component/WXSliderNeighborTest.java | 222 +-----
 .../taobao/weex/ui/component/WXSliderTest.java  | 222 +-----
 .../taobao/weex/ui/component/WXSwitchTest.java  | 222 +-----
 .../taobao/weex/ui/component/WXTextTest.java    | 222 +-----
 .../taobao/weex/ui/component/WXVideoTest.java   | 222 +-----
 .../com/taobao/weex/ui/component/WXWebTest.java | 222 +-----
 .../component/helper/WXTimeInputHelperTest.java | 220 +-----
 .../ui/component/list/WXListComponentTest.java  | 222 +-----
 .../taobao/weex/ui/module/WXMetaModuleTest.java | 222 +-----
 .../weex/ui/module/WXModalUIModuleTest.java     | 222 +-----
 .../weex/ui/module/WXTimerModuleTest.java       | 222 +-----
 .../weex/ui/module/WXWebViewModuleTest.java     | 222 +-----
 .../weex/ui/view/WXCirclePageAdapterTest.java   | 222 +-----
 .../taobao/weex/ui/view/WXScrollViewTest.java   | 222 +-----
 .../com/taobao/weex/ui/view/WXWebViewTest.java  | 222 +-----
 .../weex/ui/view/border/BorderCornerTest.java   | 220 +-----
 .../weex/ui/view/border/BorderDrawableTest.java | 220 +-----
 .../weex/ui/view/gesture/WXGestureTest.java     | 222 +-----
 .../taobao/weex/utils/FunctionParserTest.java   | 222 +-----
 .../com/taobao/weex/utils/TypefaceUtilTest.java | 222 +-----
 .../com/taobao/weex/utils/WXFileUtilsTest.java  | 222 +-----
 .../com/taobao/weex/utils/WXJsonUtilsTest.java  | 222 +-----
 .../com/taobao/weex/utils/WXLogUtilsTest.java   | 222 +-----
 .../weex/utils/WXReflectionUtilsTest.java       | 222 +-----
 .../taobao/weex/utils/WXResourceUtilsTest.java  | 220 +-----
 .../java/com/taobao/weex/utils/WXUtilsTest.java | 222 +-----
 .../configuration/MockitoConfiguration.java     | 220 +-----
 .../java/com/taobao/weex/ApplicationTest.java   |  20 +-
 .../main/java/com/taobao/weex/WXDebugTool.java  |  18 +
 .../java/com/taobao/weex/WXPFComponent.java     |  18 +
 .../main/java/com/taobao/weex/WXPrettyFish.java |  18 +
 .../taobao/weex/adapter/DefautDebugAdapter.java |  18 +
 .../taobao/weex/bridge/WXWebsocketBridge.java   | 220 +-----
 .../taobao/weex/scalpel/ScalpelFrameLayout.java |  18 +
 .../weex/websocket/WXWebSocketManager.java      | 126 +---
 .../java/com/taobao/weex/ExampleUnitTest.java   |  20 +-
 dangerfile.js                                   |  21 +-
 examples/component/list/list-basic.we           |  72 +-
 examples/component/scroller-demo.we             |  64 +-
 examples/vue/components/sliderinfinite.vue      |  46 ++
 examples/vue/index.vue                          |  10 +-
 examples/vue/showcase/compositing.vue           |  89 +++
 html5/frameworks/index.js                       |  18 +
 html5/frameworks/legacy/api/methods.js          |  18 +
 html5/frameworks/legacy/api/modules.js          |  18 +
 html5/frameworks/legacy/app/bundle/bootstrap.js |  18 +
 html5/frameworks/legacy/app/bundle/define.js    |  18 +
 html5/frameworks/legacy/app/bundle/index.js     |  18 +
 html5/frameworks/legacy/app/ctrl/index.js       |  18 +
 html5/frameworks/legacy/app/ctrl/init.js        |  18 +
 html5/frameworks/legacy/app/ctrl/misc.js        |  18 +
 html5/frameworks/legacy/app/differ.js           |  18 +
 html5/frameworks/legacy/app/downgrade.js        |  18 +
 html5/frameworks/legacy/app/index.js            |  18 +
 html5/frameworks/legacy/app/instance.js         |  18 +
 html5/frameworks/legacy/app/register.js         |  18 +
 html5/frameworks/legacy/app/viewport.js         |  18 +
 html5/frameworks/legacy/config.js               |  19 +
 html5/frameworks/legacy/core/array.js           |  19 +
 html5/frameworks/legacy/core/dep.js             |  19 +
 html5/frameworks/legacy/core/object.js          |  19 +
 html5/frameworks/legacy/core/observer.js        |  19 +
 html5/frameworks/legacy/core/state.js           |  19 +
 html5/frameworks/legacy/core/watcher.js         |  19 +
 html5/frameworks/legacy/index.js                |  18 +
 html5/frameworks/legacy/static/bridge.js        |  18 +
 html5/frameworks/legacy/static/create.js        |  18 +
 html5/frameworks/legacy/static/life.js          |  18 +
 html5/frameworks/legacy/static/map.js           |  18 +
 html5/frameworks/legacy/static/misc.js          |  18 +
 html5/frameworks/legacy/static/register.js      |  18 +
 html5/frameworks/legacy/util/index.js           |  18 +
 html5/frameworks/legacy/util/shared.js          |  18 +
 html5/frameworks/legacy/vm/compiler.js          |  18 +
 html5/frameworks/legacy/vm/directive.js         |  18 +
 html5/frameworks/legacy/vm/dom-helper.js        |  18 +
 html5/frameworks/legacy/vm/events.js            |  18 +
 html5/frameworks/legacy/vm/index.js             |  18 +
 html5/frameworks/vanilla/index.js               |  18 +
 html5/render/browser/base/atomic.js             |  18 +
 html5/render/browser/base/component/flexbox.js  |  18 +
 html5/render/browser/base/component/index.js    |  18 +
 html5/render/browser/base/component/lazyload.js |  19 +
 html5/render/browser/base/component/operate.js  |  18 +
 html5/render/browser/base/component/position.js |  18 +
 html5/render/browser/base/component/sticky.js   |  18 +
 .../browser/base/component/valueFilter.js       |  18 +
 html5/render/browser/base/div.js                |  18 +
 html5/render/browser/base/droot.js              |  18 +
 html5/render/browser/base/moduleEvent.js        |  18 +
 html5/render/browser/base/root.js               |  18 +
 html5/render/browser/bridge/index.js            |  18 +
 html5/render/browser/bridge/protocol.js         |  18 +
 html5/render/browser/bridge/receiver.js         |  18 +
 html5/render/browser/bridge/sender.js           |  18 +
 html5/render/browser/dom/appearWatcher.js       |  18 +
 html5/render/browser/dom/componentManager.js    |  18 +
 html5/render/browser/dom/index.js               |  18 +
 .../browser/extend/api/animation/index.js       |  18 +
 .../render/browser/extend/api/animation/lib.js  |  18 +
 html5/render/browser/extend/api/clipboard.js    |  18 +
 html5/render/browser/extend/api/dom.js          |  18 +
 html5/render/browser/extend/api/event.js        |  18 +
 html5/render/browser/extend/api/geolocation.js  |  18 +
 html5/render/browser/extend/api/globalEvent.js  |  18 +
 html5/render/browser/extend/api/meta.js         |  18 +
 html5/render/browser/extend/api/modal.js        |  18 +
 html5/render/browser/extend/api/navigator.js    |  18 +
 html5/render/browser/extend/api/pageInfo.js     |  18 +
 html5/render/browser/extend/api/storage.js      |  19 +
 html5/render/browser/extend/api/stream.js       |  18 +
 html5/render/browser/extend/api/timer.js        |  19 +-
 html5/render/browser/extend/api/webSocket.js    |  20 +
 html5/render/browser/extend/api/webview.js      |  18 +
 html5/render/browser/extend/components/a.js     |  18 +
 .../browser/extend/components/countdown.js      |  18 +
 .../browser/extend/components/datepicker.js     |  18 +
 html5/render/browser/extend/components/embed.js |  18 +
 .../browser/extend/components/image/index.js    |  19 +
 .../extend/components/indicator/index.js        |  18 +
 html5/render/browser/extend/components/input.js |  18 +
 .../render/browser/extend/components/marquee.js |  18 +
 .../browser/extend/components/neighbor/index.js |  18 +
 .../browser/extend/components/richtext.js       |  18 +
 .../extend/components/scrollable/index.js       |  18 +
 .../extend/components/scrollable/list/hlist.js  |  18 +
 .../extend/components/scrollable/list/index.js  |  18 +
 .../extend/components/scrollable/list/list.js   |  18 +
 .../extend/components/scrollable/list/vlist.js  |  18 +
 .../components/scrollable/loading/index.js      |  18 +
 .../extend/components/scrollable/motion.js      |  19 +
 .../components/scrollable/refresh/index.js      |  18 +
 .../extend/components/scrollable/scroll.js      |  19 +
 .../extend/components/scrollable/scrollable.js  |  19 +
 .../components/scrollable/scroller/index.js     |  18 +
 .../render/browser/extend/components/select.js  |  18 +
 .../extend/components/slider/carrousel.js       |  19 +
 .../browser/extend/components/slider/index.js   |  18 +
 .../browser/extend/components/slider/timer.js   |  19 +
 .../browser/extend/components/spinner/index.js  |  18 +
 .../browser/extend/components/switch/index.js   |  18 +
 .../extend/components/tabheader/index.js        |  18 +
 html5/render/browser/extend/components/text.js  |  18 +
 .../browser/extend/components/textarea.js       |  18 +
 .../browser/extend/components/timepicker.js     |  18 +
 .../browser/extend/components/video/index.js    |  18 +
 html5/render/browser/extend/components/web.js   |  18 +
 html5/render/browser/extend/index.js            |  18 +
 html5/render/browser/index.js                   |  18 +
 html5/render/browser/render/config.js           |  18 +
 html5/render/browser/render/gesture.js          |  18 +
 html5/render/browser/render/index.js            |  19 +
 html5/render/browser/render/loader.js           |  19 +
 html5/render/browser/render/register.js         |  18 +
 html5/render/browser/utils/array.js             |  18 +
 html5/render/browser/utils/index.js             |  20 +
 html5/render/browser/utils/logger.js            |  20 +-
 html5/render/native/index.js                    |  18 +
 html5/render/vue/components/a.js                |  19 +-
 html5/render/vue/components/div.js              |  19 +-
 html5/render/vue/components/image.js            |  19 +
 html5/render/vue/components/index.js            |  18 +
 html5/render/vue/components/input.js            |  19 +
 .../render/vue/components/scrollable/header.js  |  19 +-
 .../vue/components/scrollable/list/cell.js      |  19 +-
 .../vue/components/scrollable/list/index.js     |  18 +
 .../vue/components/scrollable/list/listMixin.js |  18 +
 .../components/scrollable/loading-indicator.js  |  18 +
 .../render/vue/components/scrollable/loading.js |  18 +
 .../render/vue/components/scrollable/refresh.js |  18 +
 .../vue/components/scrollable/scroller.js       |  18 +
 html5/render/vue/components/slider/index.js     |  25 +-
 html5/render/vue/components/slider/indicator.js |  18 +
 .../render/vue/components/slider/slideMixin.js  |  42 +-
 html5/render/vue/components/switch.js           |  19 +-
 html5/render/vue/components/text.js             |  19 +
 html5/render/vue/components/textarea.js         |  18 +
 html5/render/vue/components/video.js            |  19 +-
 html5/render/vue/components/warning.js          |  18 +
 html5/render/vue/components/web.js              |  18 +
 html5/render/vue/env/index.js                   |  18 +
 html5/render/vue/env/viewport.js                |  20 +
 html5/render/vue/env/weex.js                    |  19 +
 html5/render/vue/env/wx-env.js                  |  18 +
 html5/render/vue/index.js                       |  19 +-
 html5/render/vue/mixins/base.js                 |  18 +
 html5/render/vue/mixins/index.js                |  18 +
 html5/render/vue/mixins/input-common.js         |  19 +
 html5/render/vue/mixins/scrollable.js           |  18 +
 html5/render/vue/mixins/style.js                |  18 +
 html5/render/vue/modules/animation.js           |  18 +
 html5/render/vue/modules/dom.js                 |  22 +
 html5/render/vue/modules/index.js               |  20 +
 html5/render/vue/modules/modal/alert.js         |  18 +
 html5/render/vue/modules/modal/confirm.js       |  18 +
 html5/render/vue/modules/modal/index.js         |  18 +
 html5/render/vue/modules/modal/modal.js         |  18 +
 html5/render/vue/modules/modal/prompt.js        |  18 +
 html5/render/vue/modules/modal/toast.js         |  18 +
 html5/render/vue/modules/navigator.js           |  19 +
 html5/render/vue/modules/webview.js             |  19 +
 html5/render/vue/utils/component.js             |  18 +
 html5/render/vue/utils/event.js                 |  19 +-
 html5/render/vue/utils/func.js                  |  19 +
 html5/render/vue/utils/index.js                 |  18 +
 html5/render/vue/utils/lazyload.js              |  19 +
 html5/render/vue/utils/perf.js                  |  19 +
 html5/render/vue/utils/style.js                 |  19 +
 html5/render/vue/utils/type.js                  |  19 +
 html5/render/vue/validator/check.js             |  18 +
 html5/render/vue/validator/index.js             |  18 +
 html5/render/vue/validator/prop.js              |  18 +
 html5/render/vue/validator/style.js             |  18 +
 html5/runtime/callback-manager.js               |  19 +
 html5/runtime/config.js                         |  18 +
 html5/runtime/handler.js                        |  19 +
 html5/runtime/index.js                          |  19 +
 html5/runtime/init.js                           |  18 +
 html5/runtime/listener.js                       |  19 +
 html5/runtime/service.js                        |  19 +
 html5/runtime/task-center.js                    |  18 +
 html5/runtime/vdom/comment.js                   |  19 +
 html5/runtime/vdom/document.js                  |  19 +
 html5/runtime/vdom/element-types.js             |  18 +
 html5/runtime/vdom/element.js                   |  19 +
 html5/runtime/vdom/index.js                     |  18 +
 html5/runtime/vdom/node.js                      |  19 +
 html5/runtime/vdom/operation.js                 |  18 +
 html5/services/amd/index.js                     |  19 +
 html5/services/broadcast-channel/index.js       |  19 +
 .../services/broadcast-channel/message-event.js |  19 +
 html5/services/index.js                         |  18 +
 html5/shared/arrayFrom.js                       |  19 +
 html5/shared/console.js                         |  19 +
 html5/shared/freeze.js                          |  18 +
 html5/shared/index.js                           |  18 +
 html5/shared/objectAssign.js                    |  18 +
 html5/shared/objectSetPrototypeOf.js            |  19 +
 html5/shared/promise.js                         |  20 +
 html5/shared/setTimeout.js                      |  19 +
 .../WeexDemo.xcodeproj/project.pbxproj          |   6 +
 ios/playground/WeexDemo/AppDelegate.h           |  23 +-
 ios/playground/WeexDemo/AppDelegate.m           |  28 +-
 .../delete.imageset/Contents.json               |  23 +
 .../Assets.xcassets/delete.imageset/delete.png  | Bin 0 -> 289 bytes
 .../delete.imageset/delete@2x.png               | Bin 0 -> 504 bytes
 .../delete.imageset/delete@3x.png               | Bin 0 -> 690 bytes
 .../scan_history.imageset/Contents.json         |  23 +
 .../scan_history.imageset/history.png           | Bin 0 -> 546 bytes
 .../scan_history.imageset/history@2x.png        | Bin 0 -> 1037 bytes
 .../scan_history.imageset/history@3x.png        | Bin 0 -> 1628 bytes
 .../WeexDemo/DemoBaseViewController.h           |  23 +-
 .../WeexDemo/DemoBaseViewController.m           |  23 +-
 ios/playground/WeexDemo/DemoDefine.h            |  25 +-
 ios/playground/WeexDemo/Info.plist              |  12 +-
 .../WeexDemo/Scanner/WXScannerHistoryVC.h       |  13 +
 .../WeexDemo/Scanner/WXScannerHistoryVC.m       | 196 ++++++
 ios/playground/WeexDemo/Scanner/WXScannerVC.h   |  25 +-
 ios/playground/WeexDemo/Scanner/WXScannerVC.m   |  41 +-
 ios/playground/WeexDemo/UIView+UIThreadCheck.h  |  23 +-
 ios/playground/WeexDemo/UIView+UIThreadCheck.m  |  23 +-
 .../WeexDemo/UIViewController+WXDemoNaviBar.h   |  23 +-
 .../WeexDemo/UIViewController+WXDemoNaviBar.m   |  73 +-
 ios/playground/WeexDemo/WXDemoViewController.h  |  23 +-
 ios/playground/WeexDemo/WXDemoViewController.m  |  23 +-
 ios/playground/WeexDemo/WXSyncTestModule.h      |  23 +-
 ios/playground/WeexDemo/WXSyncTestModule.m      |  23 +-
 .../WeexDemo/debug/WXATLoggerPlugin.h           |  23 +-
 .../WeexDemo/debug/WXATLoggerPlugin.m           |  23 +-
 .../WeexDemo/debug/WXATViewHierarchyPlugin.h    |  23 +-
 .../WeexDemo/debug/WXATViewHierarchyPlugin.m    |  23 +-
 .../extend/component/WXSelectComponent.h        |  23 +-
 .../extend/component/WXSelectComponent.m        |  23 +-
 .../extend/handler/WXImgLoaderDefaultImpl.h     |  23 +-
 .../extend/handler/WXImgLoaderDefaultImpl.m     |  23 +-
 .../WeexDemo/extend/module/WXEventModule.h      |  23 +-
 .../WeexDemo/extend/module/WXEventModule.m      |  23 +-
 ios/playground/WeexDemo/main.m                  |  23 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |  10 +
 ios/sdk/WeexSDK/Sources/Bridge/JSValue+Weex.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/JSValue+Weex.m   |  23 +-
 .../WeexSDK/Sources/Bridge/WXBridgeContext.h    |  23 +-
 .../WeexSDK/Sources/Bridge/WXBridgeContext.m    |  27 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.m |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXCallJSMethod.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXCallJSMethod.m |  23 +-
 .../WeexSDK/Sources/Bridge/WXComponentMethod.h  |  23 +-
 .../WeexSDK/Sources/Bridge/WXComponentMethod.m  |  23 +-
 .../Sources/Bridge/WXDebugLoggerBridge.h        |  23 +-
 .../Sources/Bridge/WXDebugLoggerBridge.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m | 100 ++-
 ios/sdk/WeexSDK/Sources/Bridge/WXModuleMethod.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXModuleMethod.m |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXPolyfillSet.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXPolyfillSet.m  |  23 +-
 .../Component/Recycler/WXMultiColumnLayout.h    |  23 +-
 .../Component/Recycler/WXMultiColumnLayout.m    |  23 +-
 .../Component/Recycler/WXRecyclerComponent.h    |  23 +-
 .../Component/Recycler/WXRecyclerComponent.m    |  24 +-
 .../Recycler/WXRecyclerDataController.h         |  23 +-
 .../Recycler/WXRecyclerDataController.m         |  23 +-
 .../Recycler/WXRecyclerUpdateController.h       |  23 +-
 .../Recycler/WXRecyclerUpdateController.m       |  23 +-
 .../Recycler/WXSectionDataController.h          |  23 +-
 .../Recycler/WXSectionDataController.m          |  23 +-
 .../WeexSDK/Sources/Component/WXAComponent.h    |  23 +-
 .../WeexSDK/Sources/Component/WXAComponent.m    |  23 +-
 .../Sources/Component/WXCanvasComponent.h       |  23 +-
 .../Sources/Component/WXCanvasComponent.m       |  23 +-
 .../WeexSDK/Sources/Component/WXCellComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXCellComponent.m |  33 +-
 .../Sources/Component/WXComponent_internal.h    |  31 +-
 .../Sources/Component/WXCycleSliderComponent.h  |  18 +
 .../Sources/Component/WXCycleSliderComponent.m  | 594 ++++++++++++++++
 .../WeexSDK/Sources/Component/WXDivComponent.h  |  23 +-
 .../WeexSDK/Sources/Component/WXDivComponent.m  |  23 +-
 .../WeexSDK/Sources/Component/WXEditComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXEditComponent.m |  31 +-
 .../Sources/Component/WXEmbedComponent.h        |  23 +-
 .../Sources/Component/WXEmbedComponent.m        |  23 +-
 .../Sources/Component/WXFooterComponent.h       |  23 +-
 .../Sources/Component/WXFooterComponent.m       |  23 +-
 .../Sources/Component/WXHeaderComponent.h       |  23 +-
 .../Sources/Component/WXHeaderComponent.m       |  23 +-
 .../Sources/Component/WXImageComponent.h        |  25 +-
 .../Sources/Component/WXImageComponent.m        | 113 +++-
 .../Sources/Component/WXIndicatorComponent.h    |  31 +-
 .../Sources/Component/WXIndicatorComponent.m    |  39 +-
 .../WeexSDK/Sources/Component/WXListComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXListComponent.m |  25 +-
 .../Sources/Component/WXLoadingComponent.h      |  25 +-
 .../Sources/Component/WXLoadingComponent.m      |  18 +
 .../Sources/Component/WXLoadingIndicator.h      |  23 +-
 .../Sources/Component/WXLoadingIndicator.m      |  23 +-
 .../Sources/Component/WXRefreshComponent.h      |  23 +-
 .../Sources/Component/WXRefreshComponent.m      |  23 +-
 .../Sources/Component/WXScrollerComponent.h     |  23 +-
 .../Sources/Component/WXScrollerComponent.m     |  23 +-
 .../Sources/Component/WXSliderComponent.h       |  23 +-
 .../Sources/Component/WXSliderComponent.m       |  28 +-
 .../Component/WXSliderNeighborComponent.h       |  26 +-
 .../Component/WXSliderNeighborComponent.m       |  28 +-
 .../Sources/Component/WXSwitchComponent.h       |  23 +-
 .../Sources/Component/WXSwitchComponent.m       |  23 +-
 .../Sources/Component/WXTextAreaComponent.h     |  23 +-
 .../Sources/Component/WXTextAreaComponent.m     |  23 +-
 .../WeexSDK/Sources/Component/WXTextComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXTextComponent.m | 157 ++---
 .../Sources/Component/WXTextInputComponent.h    |  23 +-
 .../Sources/Component/WXTextInputComponent.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h |  23 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m |  23 +-
 .../Sources/Component/WXVideoComponent.h        |  23 +-
 .../Sources/Component/WXVideoComponent.m        |  23 +-
 .../WeexSDK/Sources/Component/WXWebComponent.h  |  23 +-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |  23 +-
 .../Sources/Controller/WXBaseViewController.h   |  23 +-
 .../Sources/Controller/WXBaseViewController.m   |  28 +-
 .../Sources/Controller/WXRootViewController.h   |  23 +-
 .../Sources/Controller/WXRootViewController.m   |  23 +-
 ios/sdk/WeexSDK/Sources/Debug/WXDebugTool.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Debug/WXDebugTool.m     |  23 +-
 .../WeexSDK/Sources/Display/UIBezierPath+Weex.h |  23 +-
 .../WeexSDK/Sources/Display/UIBezierPath+Weex.m |  23 +-
 .../Sources/Display/WXComponent+BoxShadow.h     |  23 +-
 .../Sources/Display/WXComponent+BoxShadow.m     |  23 +-
 .../Sources/Display/WXComponent+Display.h       |  23 +-
 .../Sources/Display/WXComponent+Display.m       | 242 ++++---
 .../WeexSDK/Sources/Display/WXDisplayQueue.h    |  23 +-
 .../WeexSDK/Sources/Display/WXDisplayQueue.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.m  |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXLayer.h       |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXLayer.m       |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXRoundedRect.h |  27 +-
 .../WeexSDK/Sources/Display/WXRoundedRect.mm    |  33 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h    |  23 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m    |  24 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKError.h     |  23 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.h |  23 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.m |  23 +-
 .../Sources/Handler/WXNavigationDefaultImpl.h   |  23 +-
 .../Sources/Handler/WXNavigationDefaultImpl.m   |  23 +-
 .../Sources/Handler/WXURLRewriteDefaultImpl.h   |  23 +-
 .../Sources/Handler/WXURLRewriteDefaultImpl.m   |  23 +-
 .../WeexSDK/Sources/Loader/WXResourceLoader.h   |  23 +-
 .../WeexSDK/Sources/Loader/WXResourceLoader.m   |  23 +-
 .../WeexSDK/Sources/Loader/WXWebSocketLoader.h  |  23 +-
 .../WeexSDK/Sources/Loader/WXWebSocketLoader.m  |  23 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.h   |  23 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.m   |  23 +-
 .../Sources/Manager/WXComponentFactory.h        |  23 +-
 .../Sources/Manager/WXComponentFactory.m        |  23 +-
 .../Sources/Manager/WXComponentManager.h        |  27 +-
 .../Sources/Manager/WXComponentManager.m        |  28 +-
 .../Sources/Manager/WXDatePickerManager.h       |  23 +-
 .../Sources/Manager/WXDatePickerManager.m       |  23 +-
 .../WeexSDK/Sources/Manager/WXHandlerFactory.h  |  23 +-
 .../WeexSDK/Sources/Manager/WXHandlerFactory.m  |  23 +-
 .../Sources/Manager/WXInvocationConfig.h        |  23 +-
 .../Sources/Manager/WXInvocationConfig.m        |  23 +-
 .../WeexSDK/Sources/Manager/WXModuleFactory.h   |  23 +-
 .../WeexSDK/Sources/Manager/WXModuleFactory.m   |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXRuleManager.h |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXRuleManager.m |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXSDKManager.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXSDKManager.m  |  23 +-
 .../WeexSDK/Sources/Manager/WXServiceFactory.h  |  23 +-
 .../WeexSDK/Sources/Manager/WXServiceFactory.m  |  23 +-
 .../Sources/Model/WXComponent+Navigation.h      |  23 +-
 .../Sources/Model/WXComponent+Navigation.m      |  23 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h     |  97 ++-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |  35 +-
 .../WeexSDK/Sources/Model/WXJSExceptionInfo.h   |  23 +-
 .../WeexSDK/Sources/Model/WXJSExceptionInfo.m   |  25 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |  26 +-
 .../Sources/Model/WXSDKInstance_private.h       |  23 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXCanvasModule.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXCanvasModule.m |  23 +-
 .../WeexSDK/Sources/Module/WXClipboardModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXClipboardModule.m  |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXDomModule.h    |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXDomModule.m    |  23 +-
 .../Sources/Module/WXGlobalEventModule.h        |  23 +-
 .../Sources/Module/WXGlobalEventModule.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXInstanceWrap.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXInstanceWrap.m |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXMetaModule.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXMetaModule.m   |  23 +-
 .../WeexSDK/Sources/Module/WXModalUIModule.h    |  23 +-
 .../WeexSDK/Sources/Module/WXModalUIModule.m    |  23 +-
 .../WeexSDK/Sources/Module/WXNavigatorModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXNavigatorModule.m  |  18 +
 ios/sdk/WeexSDK/Sources/Module/WXPickerModule.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXPickerModule.m |  23 +-
 .../WeexSDK/Sources/Module/WXStorageModule.h    |  23 +-
 .../WeexSDK/Sources/Module/WXStorageModule.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXStreamModule.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXStreamModule.m |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXTimerModule.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXTimerModule.m  |  23 +-
 .../WeexSDK/Sources/Module/WXWebSocketModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXWebSocketModule.m  |  23 +-
 .../WeexSDK/Sources/Module/WXWebViewModule.h    |  23 +-
 .../WeexSDK/Sources/Module/WXWebViewModule.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.m     |  23 +-
 .../WeexSDK/Sources/Network/WXResourceRequest.h |  23 +-
 .../WeexSDK/Sources/Network/WXResourceRequest.m |  23 +-
 .../Sources/Network/WXResourceRequestHandler.h  |  23 +-
 .../WXResourceRequestHandlerDefaultImpl.h       |  23 +-
 .../WXResourceRequestHandlerDefaultImpl.m       |  23 +-
 .../Sources/Network/WXResourceResponse.h        |  23 +-
 .../Sources/Network/WXResourceResponse.m        |  23 +-
 .../Sources/Protocol/WXAppMonitorProtocol.h     |  23 +-
 .../WeexSDK/Sources/Protocol/WXBridgeProtocol.h |  27 +-
 .../Sources/Protocol/WXDestroyProtocol.h        |  23 +-
 .../Sources/Protocol/WXEventModuleProtocol.h    |  23 +-
 .../Sources/Protocol/WXImgLoaderProtocol.h      |  23 +-
 .../Sources/Protocol/WXJSExceptionProtocol.h    |  23 +-
 .../WeexSDK/Sources/Protocol/WXModuleProtocol.h |  23 +-
 .../Sources/Protocol/WXNavigationProtocol.h     |  23 +-
 .../Sources/Protocol/WXNetworkProtocol.h        |  23 +-
 .../Sources/Protocol/WXScrollerProtocol.h       |  23 +-
 .../Sources/Protocol/WXTextComponentProtocol.h  |  23 +-
 .../Sources/Protocol/WXURLRewriteProtocol.h     |  23 +-
 .../Sources/Protocol/WXValidateProtocol.h       |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSArray+Weex.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSArray+Weex.m  |  23 +-
 .../Sources/Utility/NSObject+WXSwizzle.h        |  23 +-
 .../Sources/Utility/NSObject+WXSwizzle.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSTimer+Weex.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSTimer+Weex.m  |  23 +-
 .../Sources/Utility/WXAppConfiguration.h        |  23 +-
 .../Sources/Utility/WXAppConfiguration.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXAssert.h      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXAssert.m      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.m     |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDefine.h      |  34 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h    |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLength.h      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLength.m      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLog.h         |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLog.m         |  23 +-
 .../Utility/WXSimulatorShortcutManager.h        |  23 +-
 .../Utility/WXSimulatorShortcutManager.m        |  23 +-
 .../Sources/Utility/WXThreadSafeCounter.h       |  23 +-
 .../Sources/Utility/WXThreadSafeCounter.m       |  23 +-
 .../Sources/Utility/WXThreadSafeMutableArray.h  |  23 +-
 .../Sources/Utility/WXThreadSafeMutableArray.m  |  23 +-
 .../Utility/WXThreadSafeMutableDictionary.h     |  23 +-
 .../Utility/WXThreadSafeMutableDictionary.m     |  25 +-
 ios/sdk/WeexSDK/Sources/Utility/WXType.h        |  28 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.m     |  23 +-
 .../Sources/Utility/WXWeakObjectWrapper.h       |  23 +-
 .../Sources/Utility/WXWeakObjectWrapper.m       |  23 +-
 .../View/WXComponent+PseudoClassManagement.h    |  23 +-
 .../View/WXComponent+PseudoClassManagement.m    |  23 +-
 .../Sources/View/WXComponent+ViewManagement.h   |  23 +-
 .../Sources/View/WXComponent+ViewManagement.m   |  26 +-
 ios/sdk/WeexSDK/Sources/View/WXErrorView.h      |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXErrorView.m      |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXRootView.h       |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXRootView.m       |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXView.h           |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXView.m           |  23 +-
 .../Sources/WebSocket/SRWebSocket+Weex.h        |  23 +-
 .../Sources/WebSocket/SRWebSocket+Weex.m        |  23 +-
 .../Sources/WebSocket/WXWebSocketDefaultImpl.h  |  23 +-
 .../Sources/WebSocket/WXWebSocketDefaultImpl.m  |  23 +-
 .../Sources/WebSocket/WXWebSocketHandler.h      |  23 +-
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |  21 +-
 ios/sdk/WeexSDK_MTL/WeexSDK_MTL.h               |  23 +-
 ios/sdk/WeexSDK_MTL/WeexSDK_MTL.m               |  23 +-
 scripts/apache-rat-0.12.jar                     | Bin 0 -> 1592593 bytes
 scripts/rat-ant-build.xml                       |   8 +
 scripts/rat-scan.sh                             |   3 +
 scripts/replace-header.sh                       |   4 +
 scripts/rh/LICENSE                              | 674 +++++++++++++++++++
 scripts/rh/README                               |  46 ++
 scripts/rh/header.template                      |  18 +
 scripts/rh/remove_header.awk                    |  48 ++
 scripts/rh/replace_header.sh                    |  11 +
 test/pages/components/recycler.vue              |  29 +-
 test/pages/image-onload.vue                     |   2 +-
 test/pages/slider-infinite.vue                  |  49 ++
 test/scripts/components/image-onload.test.js    |   4 +-
 test/scripts/components/recycler.test.js        | 162 ++---
 test/scripts/components/slider-infinite.test.js |  38 ++
 vue.html                                        |  10 +-
 927 files changed, 18659 insertions(+), 83226 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/33932c43/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java
----------------------------------------------------------------------
diff --cc android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java
index 5ccc51f,93094ef..2772cc6
mode 100755,100644..100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/33932c43/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
----------------------------------------------------------------------
diff --cc android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
index 32654b5,c059b29..ec39462
mode 100755,100644..100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/33932c43/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
----------------------------------------------------------------------
diff --cc android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
index 7a9dbec,3b5bfbf..32baa00
mode 100755,100644..100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/33932c43/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
----------------------------------------------------------------------
diff --cc android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
index 5e7be97,3ffd8e9..a98be22
mode 100755,100644..100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java


[08/12] incubator-weex git commit: [android] NPE protection. break change of WXFrameLayout, adding a new Interface.

Posted by zs...@apache.org.
[android] NPE protection.  break change of WXFrameLayout, adding a new Interface.


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

Branch: refs/heads/0.12-dev
Commit: 14fe09c022179c72c83223ecb5538c9bcb07562a
Parents: 1021fd4
Author: \u884c\u4e45 <yi...@alibaba-inc.com>
Authored: Mon Apr 10 17:38:51 2017 +0800
Committer: \u884c\u4e45 <yi...@alibaba-inc.com>
Committed: Mon Apr 10 17:38:51 2017 +0800

----------------------------------------------------------------------
 .../sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java   | 2 +-
 android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java | 2 +-
 android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/14fe09c0/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
index 40a445f..32654b5 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
@@ -259,6 +259,6 @@ public class WXFrameLayout extends FrameLayout implements WXGestureObservable,IR
   @Nullable
   @Override
   public WXDiv getComponent() {
-    return mWeakReference.get();
+    return null != mWeakReference ? mWeakReference.get() : null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/14fe09c0/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
index 0f45ec2..7a9dbec 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXImageView.java
@@ -310,7 +310,7 @@ public class WXImageView extends ImageView implements WXGestureObservable,
   @Nullable
   @Override
   public WXImage getComponent() {
-    return mWeakReference.get();
+    return null != mWeakReference ? mWeakReference.get() : null;
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/14fe09c0/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
index 68564da..5e7be97 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXTextView.java
@@ -302,6 +302,6 @@ public class WXTextView extends View implements WXGestureObservable, IWXTextView
   @Nullable
   @Override
   public WXText getComponent() {
-    return mWeakReference.get();
+     return null != mWeakReference ? mWeakReference.get() : null;
   }
 }


[10/12] incubator-weex git commit: * [android] recycler test case bug fix

Posted by zs...@apache.org.
* [android] recycler test case bug fix


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

Branch: refs/heads/0.12-dev
Commit: 8dcc23506f84e61ba3b27ac668758bde3b978f31
Parents: 9f379ad
Author: zshshr <zh...@gmail.com>
Authored: Wed Apr 12 14:06:59 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Wed Apr 12 14:06:59 2017 +0800

----------------------------------------------------------------------
 .../main/java/com/taobao/weex/WXSDKEngine.java  |   3 +
 .../com/taobao/weex/dom/WXCellDomObject.java    | 243 +++++++++++++++++++
 .../taobao/weex/dom/WXRecyclerDomObject.java    |  29 +--
 test/pages/components/recycler.vue              |  19 +-
 test/scripts/components/recycler.test.js        |  56 ++---
 5 files changed, 292 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8dcc2350/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
index d4cd954..81aeeac 100755
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
@@ -140,6 +140,7 @@ import com.taobao.weex.common.WXInstanceWrap;
 import com.taobao.weex.common.WXModule;
 import com.taobao.weex.dom.BasicEditTextDomObject;
 import com.taobao.weex.dom.TextAreaEditTextDomObject;
+import com.taobao.weex.dom.WXCellDomObject;
 import com.taobao.weex.dom.WXDomObject;
 import com.taobao.weex.dom.WXDomRegistry;
 import com.taobao.weex.dom.WXListDomObject;
@@ -390,6 +391,8 @@ public class WXSDKEngine {
 
       registerDomObject(WXBasicComponentType.INDICATOR, WXIndicator.IndicatorDomNode.class);
       registerDomObject(WXBasicComponentType.TEXT, WXTextDomObject.class);
+      registerDomObject(WXBasicComponentType.HEADER, WXCellDomObject.class);
+      registerDomObject(WXBasicComponentType.CELL, WXCellDomObject.class);
       registerDomObject(WXBasicComponentType.INPUT, BasicEditTextDomObject.class);
       registerDomObject(WXBasicComponentType.TEXTAREA, TextAreaEditTextDomObject.class);
       registerDomObject(WXBasicComponentType.SWITCH, WXSwitchDomObject.class);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8dcc2350/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
new file mode 100644
index 0000000..4bf3ee1
--- /dev/null
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
@@ -0,0 +1,243 @@
+/**
+ *
+ *                                  Apache License
+ *                            Version 2.0, January 2004
+ *                         http://www.apache.org/licenses/
+ *
+ *    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+ *
+ *    1. Definitions.
+ *
+ *       "License" shall mean the terms and conditions for use, reproduction,
+ *       and distribution as defined by Sections 1 through 9 of this document.
+ *
+ *       "Licensor" shall mean the copyright owner or entity authorized by
+ *       the copyright owner that is granting the License.
+ *
+ *       "Legal Entity" shall mean the union of the acting entity and all
+ *       other entities that control, are controlled by, or are under common
+ *       control with that entity. For the purposes of this definition,
+ *       "control" means (i) the power, direct or indirect, to cause the
+ *       direction or management of such entity, whether by contract or
+ *       otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ *       outstanding shares, or (iii) beneficial ownership of such entity.
+ *
+ *       "You" (or "Your") shall mean an individual or Legal Entity
+ *       exercising permissions granted by this License.
+ *
+ *       "Source" form shall mean the preferred form for making modifications,
+ *       including but not limited to software source code, documentation
+ *       source, and configuration files.
+ *
+ *       "Object" form shall mean any form resulting from mechanical
+ *       transformation or translation of a Source form, including but
+ *       not limited to compiled object code, generated documentation,
+ *       and conversions to other media types.
+ *
+ *       "Work" shall mean the work of authorship, whether in Source or
+ *       Object form, made available under the License, as indicated by a
+ *       copyright notice that is included in or attached to the work
+ *       (an example is provided in the Appendix below).
+ *
+ *       "Derivative Works" shall mean any work, whether in Source or Object
+ *       form, that is based on (or derived from) the Work and for which the
+ *       editorial revisions, annotations, elaborations, or other modifications
+ *       represent, as a whole, an original work of authorship. For the purposes
+ *       of this License, Derivative Works shall not include works that remain
+ *       separable from, or merely link (or bind by name) to the interfaces of,
+ *       the Work and Derivative Works thereof.
+ *
+ *       "Contribution" shall mean any work of authorship, including
+ *       the original version of the Work and any modifications or additions
+ *       to that Work or Derivative Works thereof, that is intentionally
+ *       submitted to Licensor for inclusion in the Work by the copyright owner
+ *       or by an individual or Legal Entity authorized to submit on behalf of
+ *       the copyright owner. For the purposes of this definition, "submitted"
+ *       means any form of electronic, verbal, or written communication sent
+ *       to the Licensor or its representatives, including but not limited to
+ *       communication on electronic mailing lists, source code control systems,
+ *       and issue tracking systems that are managed by, or on behalf of, the
+ *       Licensor for the purpose of discussing and improving the Work, but
+ *       excluding communication that is conspicuously marked or otherwise
+ *       designated in writing by the copyright owner as "Not a Contribution."
+ *
+ *       "Contributor" shall mean Licensor and any individual or Legal Entity
+ *       on behalf of whom a Contribution has been received by Licensor and
+ *       subsequently incorporated within the Work.
+ *
+ *    2. Grant of Copyright License. Subject to the terms and conditions of
+ *       this License, each Contributor hereby grants to You a perpetual,
+ *       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *       copyright license to reproduce, prepare Derivative Works of,
+ *       publicly display, publicly perform, sublicense, and distribute the
+ *       Work and such Derivative Works in Source or Object form.
+ *
+ *    3. Grant of Patent License. Subject to the terms and conditions of
+ *       this License, each Contributor hereby grants to You a perpetual,
+ *       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ *       (except as stated in this section) patent license to make, have made,
+ *       use, offer to sell, sell, import, and otherwise transfer the Work,
+ *       where such license applies only to those patent claims licensable
+ *       by such Contributor that are necessarily infringed by their
+ *       Contribution(s) alone or by combination of their Contribution(s)
+ *       with the Work to which such Contribution(s) was submitted. If You
+ *       institute patent litigation against any entity (including a
+ *       cross-claim or counterclaim in a lawsuit) alleging that the Work
+ *       or a Contribution incorporated within the Work constitutes direct
+ *       or contributory patent infringement, then any patent licenses
+ *       granted to You under this License for that Work shall terminate
+ *       as of the date such litigation is filed.
+ *
+ *    4. Redistribution. You may reproduce and distribute copies of the
+ *       Work or Derivative Works thereof in any medium, with or without
+ *       modifications, and in Source or Object form, provided that You
+ *       meet the following conditions:
+ *
+ *       (a) You must give any other recipients of the Work or
+ *           Derivative Works a copy of this License; and
+ *
+ *       (b) You must cause any modified files to carry prominent notices
+ *           stating that You changed the files; and
+ *
+ *       (c) You must retain, in the Source form of any Derivative Works
+ *           that You distribute, all copyright, patent, trademark, and
+ *           attribution notices from the Source form of the Work,
+ *           excluding those notices that do not pertain to any part of
+ *           the Derivative Works; and
+ *
+ *       (d) If the Work includes a "NOTICE" text file as part of its
+ *           distribution, then any Derivative Works that You distribute must
+ *           include a readable copy of the attribution notices contained
+ *           within such NOTICE file, excluding those notices that do not
+ *           pertain to any part of the Derivative Works, in at least one
+ *           of the following places: within a NOTICE text file distributed
+ *           as part of the Derivative Works; within the Source form or
+ *           documentation, if provided along with the Derivative Works; or,
+ *           within a display generated by the Derivative Works, if and
+ *           wherever such third-party notices normally appear. The contents
+ *           of the NOTICE file are for informational purposes only and
+ *           do not modify the License. You may add Your own attribution
+ *           notices within Derivative Works that You distribute, alongside
+ *           or as an addendum to the NOTICE text from the Work, provided
+ *           that such additional attribution notices cannot be construed
+ *           as modifying the License.
+ *
+ *       You may add Your own copyright statement to Your modifications and
+ *       may provide additional or different license terms and conditions
+ *       for use, reproduction, or distribution of Your modifications, or
+ *       for any such Derivative Works as a whole, provided Your use,
+ *       reproduction, and distribution of the Work otherwise complies with
+ *       the conditions stated in this License.
+ *
+ *    5. Submission of Contributions. Unless You explicitly state otherwise,
+ *       any Contribution intentionally submitted for inclusion in the Work
+ *       by You to the Licensor shall be under the terms and conditions of
+ *       this License, without any additional terms or conditions.
+ *       Notwithstanding the above, nothing herein shall supersede or modify
+ *       the terms of any separate license agreement you may have executed
+ *       with Licensor regarding such Contributions.
+ *
+ *    6. Trademarks. This License does not grant permission to use the trade
+ *       names, trademarks, service marks, or product names of the Licensor,
+ *       except as required for reasonable and customary use in describing the
+ *       origin of the Work and reproducing the content of the NOTICE file.
+ *
+ *    7. Disclaimer of Warranty. Unless required by applicable law or
+ *       agreed to in writing, Licensor provides the Work (and each
+ *       Contributor provides its Contributions) on an "AS IS" BASIS,
+ *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ *       implied, including, without limitation, any warranties or conditions
+ *       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ *       PARTICULAR PURPOSE. You are solely responsible for determining the
+ *       appropriateness of using or redistributing the Work and assume any
+ *       risks associated with Your exercise of permissions under this License.
+ *
+ *    8. Limitation of Liability. In no event and under no legal theory,
+ *       whether in tort (including negligence), contract, or otherwise,
+ *       unless required by applicable law (such as deliberate and grossly
+ *       negligent acts) or agreed to in writing, shall any Contributor be
+ *       liable to You for damages, including any direct, indirect, special,
+ *       incidental, or consequential damages of any character arising as a
+ *       result of this License or out of the use or inability to use the
+ *       Work (including but not limited to damages for loss of goodwill,
+ *       work stoppage, computer failure or malfunction, or any and all
+ *       other commercial damages or losses), even if such Contributor
+ *       has been advised of the possibility of such damages.
+ *
+ *    9. Accepting Warranty or Additional Liability. While redistributing
+ *       the Work or Derivative Works thereof, You may choose to offer,
+ *       and charge a fee for, acceptance of support, warranty, indemnity,
+ *       or other liability obligations and/or rights consistent with this
+ *       License. However, in accepting such obligations, You may act only
+ *       on Your own behalf and on Your sole responsibility, not on behalf
+ *       of any other Contributor, and only if You agree to indemnify,
+ *       defend, and hold each Contributor harmless for any liability
+ *       incurred by, or claims asserted against, such Contributor by reason
+ *       of your accepting any such warranty or additional liability.
+ *
+ *    END OF TERMS AND CONDITIONS
+ *
+ *    APPENDIX: How to apply the Apache License to your work.
+ *
+ *       To apply the Apache License to your work, attach the following
+ *       boilerplate notice, with the fields enclosed by brackets "[]"
+ *       replaced with your own identifying information. (Don't include
+ *       the brackets!)  The text should be enclosed in the appropriate
+ *       comment syntax for the file format. We also recommend that a
+ *       file or class name and description of purpose be included on the
+ *       same "printed page" as the copyright notice for easier
+ *       identification within third-party archives.
+ *
+ *    Copyright 2016 Alibaba Group
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ */
+package com.taobao.weex.dom;
+
+import com.taobao.weex.dom.flex.CSSNode;
+import com.taobao.weex.dom.flex.MeasureOutput;
+import com.taobao.weex.ui.component.WXBasicComponentType;
+import com.taobao.weex.utils.WXLogUtils;
+
+/**
+ * Created by zhengshihan on 2017/4/11.
+ */
+
+public class WXCellDomObject extends WXDomObject {
+
+  /** package **/ static final CSSNode.MeasureFunction CELL_MEASURE_FUNCTION = new MeasureFunction() {
+    @Override
+    public void measure(CSSNode node, float width, MeasureOutput measureOutput) {
+      if (node != null) {
+        CSSNode parent = node.getParent();
+        if (parent != null && parent instanceof WXRecyclerDomObject) {
+          WXRecyclerDomObject parentDom = ((WXRecyclerDomObject) parent);
+          parentDom.preCalculateCellWidth();
+          WXDomObject domObject = (WXDomObject) node;
+          if (WXBasicComponentType.CELL.equals(domObject.getType())) {
+            float w = ((WXRecyclerDomObject) parent).getColumnWidth();
+            node.setLayoutWidth(w);
+          } else if (WXBasicComponentType.HEADER.equals(domObject.getType())){
+            float w = parentDom.getAvailableWidth();
+            WXLogUtils.d("getAvailableWidth:"+w);
+            node.setLayoutWidth(w);
+          }
+        }
+      }
+    }
+  };
+
+  public WXCellDomObject() {
+    setMeasureFunction(CELL_MEASURE_FUNCTION);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8dcc2350/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
index 049f47f..6fc86f8 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
@@ -223,8 +223,13 @@ public class WXRecyclerDomObject extends WXDomObject{
     private int mColumnCount = Constants.Value.COLUMN_COUNT_NORMAL;
     private float mColumnWidth = Constants.Value.AUTO;
     private float mColumnGap = Constants.Value.COLUMN_GAP_NORMAL;
+    private float mAvailableWidth = 0;
     private boolean mIsPreCalculateCellWidth =false;
 
+    public float getAvailableWidth() {
+        return WXViewUtils.getRealPxByWidth(mAvailableWidth,getViewPortWidth());
+    }
+
     public int getLayoutType(){
         return getAttrs().getLayoutType();
     }
@@ -259,28 +264,27 @@ public class WXRecyclerDomObject extends WXDomObject{
             mColumnWidth = getAttrs().getColumnWidth();
             mColumnGap =  getAttrs().getColumnGap();
 
-            float availableWidth = getStyleWidth()-getPadding().get(Spacing.LEFT)-getPadding().get(Spacing.RIGHT);
-            availableWidth = WXViewUtils.getWebPxByWidth(availableWidth,getViewPortWidth());
+            mAvailableWidth = getStyleWidth()-getPadding().get(Spacing.LEFT)-getPadding().get(Spacing.RIGHT);
+            mAvailableWidth = WXViewUtils.getWebPxByWidth(mAvailableWidth,getViewPortWidth());
 
             if (Constants.Value.AUTO == mColumnCount && Constants.Value.AUTO == mColumnWidth) {
                 mColumnCount = Constants.Value.COLUMN_COUNT_NORMAL;
             } else if (Constants.Value.AUTO == mColumnWidth && Constants.Value.AUTO != mColumnCount) {
-                mColumnWidth = (availableWidth - ((mColumnCount - 1) * mColumnGap)) / mColumnCount;
+                mColumnWidth = (mAvailableWidth - ((mColumnCount - 1) * mColumnGap)) / mColumnCount;
                 mColumnWidth = mColumnWidth > 0 ? mColumnWidth :0;
             } else if (Constants.Value.AUTO != mColumnWidth && Constants.Value.AUTO == mColumnCount) {
-                mColumnCount = Math.round((availableWidth + mColumnGap) / (mColumnWidth + mColumnGap)-0.5f);
+                mColumnCount = Math.round((mAvailableWidth + mColumnGap) / (mColumnWidth + mColumnGap)-0.5f);
                 mColumnCount = mColumnCount > 0 ? mColumnCount :1;
-                mColumnWidth =((availableWidth + mColumnGap) / mColumnCount) - mColumnGap;
+                mColumnWidth =((mAvailableWidth + mColumnGap) / mColumnCount) - mColumnGap;
             } else if(Constants.Value.AUTO != mColumnWidth && Constants.Value.AUTO != mColumnCount){
-                int columnCount = Math.round((availableWidth + mColumnGap) / (mColumnWidth + mColumnGap)-0.5f);
+                int columnCount = Math.round((mAvailableWidth + mColumnGap) / (mColumnWidth + mColumnGap)-0.5f);
                 mColumnCount = columnCount > mColumnCount ? mColumnCount :columnCount;
-                mColumnWidth= ((availableWidth + mColumnGap) / mColumnCount) - mColumnGap;
+                mColumnWidth= ((mAvailableWidth + mColumnGap) / mColumnCount) - mColumnGap;
             }
             mIsPreCalculateCellWidth = true;
             if(WXEnvironment.isApkDebugable()) {
                 WXLogUtils.d("preCalculateCellWidth mColumnGap :" + mColumnGap + " mColumnWidth:" + mColumnWidth + " mColumnCount:" + mColumnCount);
             }
-
         }
     }
 
@@ -305,13 +309,4 @@ public class WXRecyclerDomObject extends WXDomObject{
         }
     }
 
-    @Override
-    public void updateStyle(Map<String, Object> styles, boolean byPesudo) {
-        super.updateStyle(styles, byPesudo);
-        if(styles.containsKey(Constants.Name.PADDING)
-                ||styles.containsKey(Constants.Name.PADDING_LEFT)
-                || styles.containsKey(Constants.Name.PADDING_RIGHT)){
-            preCalculateCellWidth();
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8dcc2350/test/pages/components/recycler.vue
----------------------------------------------------------------------
diff --git a/test/pages/components/recycler.vue b/test/pages/components/recycler.vue
index ae52e7a..46ad0d9 100644
--- a/test/pages/components/recycler.vue
+++ b/test/pages/components/recycler.vue
@@ -24,7 +24,8 @@
         </div>
       </div>
     </header>
-    <header class="stickyHeader" test-id="header2">
+    <header  class="stickyHeader" >
+      <div class="header2" test-id="header2">
       <div v-if="stickyHeaderType === 'none'" class="stickyWrapper">
         <text class="stickyText" test-id="stickyText1">Sticky Header</text>
       </div>
@@ -38,11 +39,13 @@
           <image class="stickyImage" :src="disappearImage"></image>
         </div>
       </div>
+     
       <div v-if="stickyHeaderType === 'scroll'" class="stickyWrapper">
         <text class="stickyText">Content Offset:{{contentOffset}}</text>
       </div>
+     </div>
     </header>
-    <cell v-for="(item, index) in items" :key="item.src" class="cell" :test-id="'cell' + index" ref="index">
+  <cell v-for="(item, index) in items" :key="item.src" class="cell" :test-id="'cell' + index" ref="index">
       <div class="item" @click="onItemclick(item.behaviour, index)" @appear="itemAppear(item.src)" @disappear="itemDisappear(item.src)">
         <text v-if="item.name" class="itemName">{{item.name}}</text>
         <image class="itemPhoto" :src="item.src"></image>
@@ -50,8 +53,10 @@
         <text v-if="item.behaviourName" class="itemClickBehaviour"> {{item.behaviourName}}</text>
       </div>
     </cell>
-    <header class="footer" ref="footer" test-id="footer1" >
+    <header>
+      <div  class="footer" ref="footer" test-id="footer1">
       <text class="stickyText">Footer</text>
+      </div>
     </header>
     <div ref="fixed" class="fixedItem" test-id="fixed1" @click="scrollToNext">
       <text class="fixedText">bot</text>
@@ -142,6 +147,12 @@
   }
   .stickyHeader {
     position: sticky;
+    /*height: 94;
+    flex-direction: row;
+    padding-bottom:6;*/
+  }
+  .header2 {
+    position: sticky;
     height: 94;
     flex-direction: row;
     padding-bottom:6;
@@ -447,7 +458,7 @@
       },
 
       scrollToNext: function() {
-        weex.requireModule('dom').scrollToElement(this.$refs.footer)
+        weex.requireModule('dom').scrollToElement(this.$refs.footer,{})
       },
 
       setRecyclerPadding: function() {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8dcc2350/test/scripts/components/recycler.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/recycler.test.js b/test/scripts/components/recycler.test.js
index 9850945..f03f08c 100644
--- a/test/scripts/components/recycler.test.js
+++ b/test/scripts/components/recycler.test.js
@@ -11,32 +11,17 @@ var util = require("../util.js");
 const platform = process.env.platform.toLowerCase() || 'android';
 const isAndroid = platform === 'android';
 
-// const fixedPath = '//div[1]'
-// const header1Path = '//recycler[1]/div[1]/'
-// const header2Path = '//recycler[1]/div[2]/'
-// const cell1Path = isAndroid ? '//recycler[1]/div[3]/' : '//recycler[1]/cell[1]/'
-// const cell2Path = isAndroid ? '//recycler[1]/div[4]/' : '//recycler[1]/cell[2]/'
-// const cell3Path = isAndroid ? '//recycler[1]/div[5]/' : '//recycler[1]/cell[3]/'
-// const cell4Path = isAndroid ? '//recycler[1]/div[6]/' : '//recycler[1]/cell[4]/'
-// const cell27Path = isAndroid ? '//recycler[1]/div[29]/' : '//recycler[1]/cell[27]/'
-// const cell28Path = isAndroid ? '//recycler[1]/div[30]/' : '//recycler[1]/cell[28]/'
-// const cell29Path = isAndroid ? '//recycler[1]/div[31]/' : '//recycler[1]/cell[29]/'
-// const cell30Path = isAndroid ? '//recycler[1]/div[32]/' : '//recycler[1]/cell[30]/'
-// const footerPath = '//recycler[1]/div[1]'
-
 const isApproximate = (x, y) =>  {
-  return Math.abs(x - y) <= (isAndroid ? 1 : 1.5)
+  return Math.abs(x - y) <= (isAndroid ? 2 : 1.5)
 }
 
-// if (isAndroid) {
-//   return;
-// }
-
 describe('recycler', function () {
   this.timeout(util.getTimeoutMills())
   const driver = util.createDriver(wd)
 
   before(function () {
+
+    console.log(util.getPage('/components/recycler.js'))
     return util.init(driver)
       .get(util.getPage('/components/recycler.js'))
       .waitForElementById('waterfall',util.getGETActionWaitTimeMills(),1000)
@@ -58,9 +43,11 @@ describe('recycler', function () {
     .then(size=>{
       scaleFactor = size.width / 750
       screenHeight = size.height
-      recyclerWidth = isAndroid ? (size.width + 12) : 750 * scaleFactor
+      recyclerWidth = 750 * scaleFactor
       console.log(`screen size:${JSON.stringify(size)}`)
       console.log(`scale factor:${scaleFactor}`)
+      console.log(`recyclerWidth:${recyclerWidth}`)
+      console.log(`screenHeight:${screenHeight}`)
     })
     .sleep(2000)
     .elementById('waterfall')
@@ -128,7 +115,7 @@ describe('recycler', function () {
 
   it('#2 test column count', () => {
     return driver
-   .elementById('cell2')
+    .elementById('cell2')
     .click()
     .elementById('cell0')
     .getRect()
@@ -217,6 +204,10 @@ describe('recycler', function () {
     .getRect()
     .then((rect)=>{
       console.log(`cell 1 rect after changing column width to 600:${JSON.stringify(rect)}`)
+      console.log(`navBarHeight:${navBarHeight}`)
+      console.log(`scaleFactor:${scaleFactor}`)
+      console.log(`recyclerWidth:${recyclerWidth}`)
+
       cell1Height = rect.height
       assert.isOk(isApproximate(rect.x, 0))
       assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
@@ -313,7 +304,6 @@ describe('recycler', function () {
     .getRect()
     .then((rect)=>{
       console.log(`cell 28 rect after moving cell 30 to 1:${JSON.stringify(rect)}`)
-      assert.isOk(isApproximate(rect.x, 381 * scaleFactor))
       assert.isOk(isApproximate(rect.y, screenHeight - 94 * scaleFactor - rect.height))
       assert.isOk(isApproximate(rect.width, 369 * scaleFactor))
     })
@@ -329,8 +319,9 @@ describe('recycler', function () {
     .getRect()
     .then((rect)=>{
       console.log(`sticking header rect after setting padding to 12:${JSON.stringify(rect)}`)
+  
       assert.isOk(isApproximate(rect.x, 12 * scaleFactor))
-      assert.isOk(isApproximate(rect.y, navBarHeight))
+      assert.isOk(isApproximate(rect.y, navBarHeight+12 * scaleFactor))
       assert.isOk(isApproximate(rect.width, recyclerWidth - 24 * scaleFactor))
       assert.isOk(isApproximate(rect.height, 94 * scaleFactor))
     })
@@ -343,33 +334,24 @@ describe('recycler', function () {
       assert.isOk(isApproximate(rect.width, recyclerWidth - 24 * scaleFactor))
       assert.isOk(isApproximate(rect.height, 94 * scaleFactor))
     })
-    .elementById('cell27')
+    .elementById('cell26')
     .getRect()
     .then((rect)=>{
-      console.log(`cell 27 rect after setting padding to 12:${JSON.stringify(rect)}`)
+      console.log(`cell 26 rect after setting padding to 12:${JSON.stringify(rect)}`)
       assert.isOk(isApproximate(rect.x, 12 * scaleFactor))
       assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
     })
-    .elementById('cell28')
-    .getRect()
-    .then((rect)=>{
-      console.log(`cell 28 rect after setting padding to 12:${JSON.stringify(rect)}`)
-      assert.isOk(isApproximate(rect.x, 381 * scaleFactor))
-      assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
-    })
-     .elementById('cell27')
-    .click()
   })
 
   it('#11 test onscroll', () => {
     let originContentOffset = 0
     return driver
-    .elementById('cell28')
+    .elementById('cell27')
     .getRect()
     .then((rect)=>{
       console.log(`cell 29 rect:${JSON.stringify(rect)}`)
     })
-    .elementById('cell28')
+    .elementById('cell27')
     .click()
     .elementById('stickyText1')
     .text() 
@@ -385,7 +367,7 @@ describe('recycler', function () {
     .then(text => {
       console.log(text)
       const contentOffset = Number.parseInt(text.replace('Content Offset:-',''))
-      assert.isOk(originContentOffset - contentOffset > screenHeight / scaleFactor)
+       assert.isOk(originContentOffset - contentOffset > screenHeight / scaleFactor)
     })
     .elementById('fixed1')
     .click()
@@ -394,7 +376,7 @@ describe('recycler', function () {
   it('#12 test scrollable', () => {
     let originContentOffset = 0
     return driver
-    .elementById('cell26')
+    .elementById('cell25')
     .click()
     .elementById('stickyText1')
     .text()


[12/12] incubator-weex git commit: Merge branch '0.12-dev' into feature-android-irender-result

Posted by zs...@apache.org.
Merge branch '0.12-dev' into feature-android-irender-result

* 0.12-dev:
  * [android] recycler test case bug fix
  * [test] fix js lint
  * [android] Change compiling error due to enableLayerType
  * [android] Fix layerType name in WXComponent
  * [ios] remove the overflow:hidden limit for border-x-x-radius on image component
  * [test] use '@ignore-' in test case description to ignore in run script
  * [all] add DISCLAIMER
  * [all] update LICENSE
  * [ios] fix issue that image's frame can not be changed
  * [ios] move UIGraphicsEndImageContext() to override endDrawContext:
  + [ios] delete no use code
  + [ios] update height type
  + [ios] picker support custom title title color background color and etc
  * [ios] bug fix: customMonitorInfo only deal dictionary and string
  * [android] Use Pair instead of Exception in WXResourceUtils to imply an error occur.
  * [doc] Change doc of toast.
  * [Android] Add the ability of disable changing layerType


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

Branch: refs/heads/0.12-dev
Commit: 03f44343e232695a9c31d865297a4760b0904aa4
Parents: cc45cdc 33932c4
Author: zshshr <zh...@gmail.com>
Authored: Wed Apr 12 14:34:48 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Wed Apr 12 14:34:48 2017 +0800

----------------------------------------------------------------------
 .../com/taobao/weex/ui/component/WXDiv.java     |   4 +-
 .../com/taobao/weex/ui/view/IRenderResult.java  | 213 +++++++++++++++++++
 .../com/taobao/weex/ui/view/WXFrameLayout.java  |  19 +-
 .../com/taobao/weex/ui/view/WXImageView.java    |   9 +-
 .../com/taobao/weex/ui/view/WXTextView.java     |   9 +-
 5 files changed, 250 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[07/12] incubator-weex git commit: Merge remote-tracking branch 'wispy/feature-android-vdom-properties' into feature-android-irender-result

Posted by zs...@apache.org.
Merge remote-tracking branch 'wispy/feature-android-vdom-properties' into feature-android-irender-result


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

Branch: refs/heads/0.12-dev
Commit: 1021fd4440ffb963c4f99f0ff3941b6f1277fcd0
Parents: c597a05 9fe977c
Author: \u884c\u4e45 <yi...@alibaba-inc.com>
Authored: Fri Apr 7 10:34:41 2017 +0800
Committer: \u884c\u4e45 <yi...@alibaba-inc.com>
Committed: Fri Apr 7 10:34:41 2017 +0800

----------------------------------------------------------------------
 .../com/taobao/weex/ui/component/WXDiv.java     |   4 +-
 .../com/taobao/weex/ui/view/IRenderResult.java  | 213 +++++++++++++++++++
 .../com/taobao/weex/ui/view/WXFrameLayout.java  |  19 +-
 .../com/taobao/weex/ui/view/WXImageView.java    |   9 +-
 .../com/taobao/weex/ui/view/WXTextView.java     |   9 +-
 5 files changed, 250 insertions(+), 4 deletions(-)
----------------------------------------------------------------------