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

[01/50] [abbrv] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.11-dev' into 0.11-dev

Repository: incubator-weex
Updated Branches:
  refs/heads/dev 92cf07444 -> cbc373ba9


Merge remote-tracking branch 'upstream/0.11-dev' into 0.11-dev


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

Branch: refs/heads/dev
Commit: 014cfc1fa658c8d661ca888bc8310f76df27d0c8
Parents: be02dec 20ee586
Author: \u9690\u98ce <cx...@apache.org>
Authored: Tue Mar 28 00:34:55 2017 +0800
Committer: \u9690\u98ce <cx...@apache.org>
Committed: Tue Mar 28 00:34:55 2017 +0800

----------------------------------------------------------------------
 .../bundlejs/vue/components/waterfall.js        | 873 +++++++++++++++++++
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |  40 +-
 2 files changed, 910 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[21/50] [abbrv] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.11-dev' into 0.11-dev

Posted by so...@apache.org.
Merge remote-tracking branch 'upstream/0.11-dev' into 0.11-dev


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

Branch: refs/heads/dev
Commit: cae9aa8ac675919f577dace712944b817d7d0bea
Parents: 5c543fa 61ab9f4
Author: \u9690\u98ce <cx...@apache.org>
Authored: Tue Mar 28 21:28:42 2017 +0800
Committer: \u9690\u98ce <cx...@apache.org>
Committed: Tue Mar 28 21:28:42 2017 +0800

----------------------------------------------------------------------
 examples/component/input-demo.we                |  253 +-
 examples/component/list/list-basic.we           |   79 +-
 examples/component/scroller-demo.we             |   64 +-
 examples/component/slider-tab.we                |  100 +
 examples/include/example-list-item.we           |   30 +-
 examples/index.we                               |    4 +-
 examples/module/chatroom-demo.we                |  227 ++
 examples/module/websocket-demo.we               |   50 +-
 examples/showcase/boxshadow.we                  |   46 +
 examples/vue/components/input.vue               |  203 +-
 examples/vue/components/list.vue                |    3 +
 examples/vue/index.vue                          |    1 +
 examples/vue/showcase/boxshadow.vue             |   39 +
 ios/playground/bundlejs/component/image-demo.js |    2 +-
 ios/playground/bundlejs/component/input-demo.js | 2683 ++++--------------
 .../bundlejs/component/lengthunitwx-demo.js     |  329 +++
 .../bundlejs/component/list/list-basic.js       |  132 +-
 .../component/list/list-demo-horizon.js         |   12 +-
 .../bundlejs/component/list/list-demo.js        |   12 +-
 .../bundlejs/component/list/waterfall.js        |  877 ++++++
 .../bundlejs/component/marquee-demo.js          |   13 +-
 .../bundlejs/component/process-bar-demo.js      |   17 +-
 .../bundlejs/component/scroller-demo.js         |  219 +-
 .../bundlejs/component/slider-neighbor/index.js |    8 +-
 .../slider-neighbor/slider-neighbor-item.js     |   12 +-
 .../slider-neighbor/slider-neighbor-page.js     |   28 +-
 ios/playground/bundlejs/component/slider-tab.js |  633 +++++
 .../bundlejs/component/slider/index.js          |   56 +-
 .../bundlejs/component/slider/slider-item.js    |   12 +-
 .../bundlejs/component/slider/slider-page.js    |   28 +-
 ios/playground/bundlejs/component/text-demo.js  |   24 +-
 ios/playground/bundlejs/component/video-demo.js |   24 +-
 ios/playground/bundlejs/component/web-demo.js   |   25 +-
 ios/playground/bundlejs/error.js                |   20 +-
 ios/playground/bundlejs/geolocation.js          |   46 +-
 ios/playground/bundlejs/hello.js                |    4 +-
 ios/playground/bundlejs/iconfont.js             |   12 +-
 ios/playground/bundlejs/index.js                |  270 +-
 ios/playground/bundlejs/linear-gradient.js      |    8 +-
 ios/playground/bundlejs/module/chatroom-demo.js |  370 +++
 ios/playground/bundlejs/module/clipboard.js     |   61 +-
 ios/playground/bundlejs/module/componentRect.js |   28 +-
 ios/playground/bundlejs/module/instance-api.js  |   61 +-
 ios/playground/bundlejs/module/modal.js         |   27 +-
 ios/playground/bundlejs/module/picker-demo.js   |   27 +-
 ios/playground/bundlejs/module/storage-demo.js  |   61 +-
 ios/playground/bundlejs/module/stream-demo.js   |   61 +-
 .../bundlejs/module/websocket-demo.js           | 2661 +++++++----------
 ios/playground/bundlejs/showcase/boxshadow.js   |  269 ++
 ios/playground/bundlejs/showcase/calculator.js  |   30 +-
 .../bundlejs/showcase/dropdown/dropdown-demo.js |   38 +-
 .../bundlejs/showcase/dropdown/we-dropdown.js   |   12 +-
 ios/playground/bundlejs/showcase/minesweeper.js |   12 +-
 .../bundlejs/showcase/pseudo-class.js           |   30 +-
 ios/playground/bundlejs/showcase/ui.js          |   30 +-
 ios/playground/bundlejs/style/index.js          |   82 +-
 ios/playground/bundlejs/style/style-box.js      |   46 +-
 ios/playground/bundlejs/style/style-flex.js     |   54 +-
 ios/playground/bundlejs/style/style-item.js     |   12 +-
 ios/playground/bundlejs/syntax/hello-world-1.js |    4 +-
 ios/playground/bundlejs/syntax/hello-world-2.js |    4 +-
 ios/playground/bundlejs/syntax/hello-world-3.js |    8 +-
 ios/playground/bundlejs/syntax/hello-world-4.js |   12 +-
 ios/playground/bundlejs/syntax/hello-world-5.js |   12 +-
 ios/playground/bundlejs/syntax/hello-world.js   |   12 +-
 ios/playground/bundlejs/syntax/index.js         |  296 +-
 .../bundlejs/syntax/script-component.js         |   24 +-
 ios/playground/bundlejs/syntax/script-data.js   |   12 +-
 ios/playground/bundlejs/syntax/script-events.js |   20 +-
 .../bundlejs/syntax/script-instance.js          |   12 +-
 .../bundlejs/syntax/script-lifecycle.js         |   12 +-
 ios/playground/bundlejs/syntax/script-module.js |   12 +-
 .../bundlejs/syntax/script-options.js           |   12 +-
 .../bundlejs/syntax/template-class.js           |   12 +-
 .../bundlejs/syntax/template-content.js         |   20 +-
 .../bundlejs/syntax/template-event.js           |   12 +-
 ios/playground/bundlejs/syntax/template-if.js   |   12 +-
 .../bundlejs/syntax/template-repeat-update.js   |   12 +-
 .../bundlejs/syntax/template-repeat.js          |   12 +-
 .../bundlejs/syntax/template-style.js           |    8 +-
 ios/playground/bundlejs/template.js             |   12 +-
 ios/playground/bundlejs/test.js                 |    8 +-
 ios/playground/bundlejs/vue/animation.js        |  120 +-
 ios/playground/bundlejs/vue/components/a.js     |   97 +-
 .../bundlejs/vue/components/countdown.js        |  122 +-
 ios/playground/bundlejs/vue/components/image.js |  142 +-
 ios/playground/bundlejs/vue/components/input.js |  735 +++--
 ios/playground/bundlejs/vue/components/list.js  |   44 +-
 .../bundlejs/vue/components/marquee.js          |  105 +-
 .../bundlejs/vue/components/navigator.js        |  187 +-
 .../bundlejs/vue/components/scroller.js         |   48 +-
 .../bundlejs/vue/components/slider.js           |  341 +--
 .../bundlejs/vue/components/tabbar.js           |  133 +-
 ios/playground/bundlejs/vue/components/text.js  |  132 +-
 ios/playground/bundlejs/vue/components/video.js |   72 +-
 .../bundlejs/vue/components/waterfall.js        |   24 +-
 ios/playground/bundlejs/vue/components/web.js   |   74 +-
 ios/playground/bundlejs/vue/hello.js            |   19 +-
 ios/playground/bundlejs/vue/iconfont.js         |   36 +-
 ios/playground/bundlejs/vue/index.js            |  139 +-
 .../bundlejs/vue/modules/clipboard.js           |  147 +-
 .../bundlejs/vue/modules/instance-api.js        |   59 +-
 ios/playground/bundlejs/vue/modules/modal.js    |  105 +-
 ios/playground/bundlejs/vue/modules/storage.js  |   71 +-
 ios/playground/bundlejs/vue/modules/stream.js   |   95 +-
 .../bundlejs/vue/showcase/boxshadow.js          |  244 ++
 .../bundlejs/vue/showcase/calculator.js         |   72 +-
 .../bundlejs/vue/showcase/itemlist.js           |  166 +-
 .../bundlejs/vue/showcase/new-fashion.js        |  557 ++--
 .../bundlejs/vue/showcase/progress.js           |   63 +-
 ios/playground/bundlejs/vue/style/index.js      |  418 +--
 ios/playground/bundlejs/vue/style/style-box.js  |  180 +-
 ios/playground/bundlejs/vue/style/style-flex.js |  238 +-
 ios/playground/bundlejs/vue/style/style-item.js |   26 +-
 .../bundlejs/vue/syntax/hello-world-1.js        |   17 +-
 .../bundlejs/vue/syntax/hello-world-2.js        |   23 +-
 .../bundlejs/vue/syntax/hello-world-3.js        |   28 +-
 .../bundlejs/vue/syntax/hello-world-4.js        |   32 +-
 .../bundlejs/vue/syntax/hello-world-5.js        |   32 +-
 .../bundlejs/vue/syntax/hello-world.js          |   32 +-
 .../bundlejs/vue/syntax/script-component.js     |   64 +-
 .../bundlejs/vue/syntax/script-data.js          |   36 +-
 .../bundlejs/vue/syntax/script-events.js        |   32 +-
 .../bundlejs/vue/syntax/script-instance.js      |   30 +-
 .../bundlejs/vue/syntax/script-lifecycle.js     |   32 +-
 .../bundlejs/vue/syntax/script-module.js        |   30 +-
 .../bundlejs/vue/syntax/script-options.js       |   28 +-
 .../bundlejs/vue/syntax/template-class.js       |   34 +-
 .../bundlejs/vue/syntax/template-content.js     |   49 +-
 .../bundlejs/vue/syntax/template-event.js       |   36 +-
 .../bundlejs/vue/syntax/template-if.js          |   32 +-
 .../vue/syntax/template-repeat-update.js        |   40 +-
 .../bundlejs/vue/syntax/template-repeat.js      |   50 +-
 .../bundlejs/vue/syntax/template-style.js       |   27 +-
 ios/playground/bundlejs/vue/template.js         |  181 +-
 135 files changed, 9826 insertions(+), 7187 deletions(-)
----------------------------------------------------------------------



[15/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/module/websocket-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/module/websocket-demo.js b/ios/playground/bundlejs/module/websocket-demo.js
index 0d9ba97..a60abb6 100644
--- a/ios/playground/bundlejs/module/websocket-demo.js
+++ b/ios/playground/bundlejs/module/websocket-demo.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(226)
-	var __weex_style__ = __webpack_require__(227)
-	var __weex_script__ = __webpack_require__(228)
+	var __weex_template__ = __webpack_require__(241)
+	var __weex_style__ = __webpack_require__(242)
+	var __weex_script__ = __webpack_require__(243)
 
 	__weex_define__('@weex-component/f1edaa994f4c5a505cfb7f32ca9ee569', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -67,760 +67,34 @@
 /* 1 */,
 /* 2 */,
 /* 3 */,
-/* 4 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(5);
-	__webpack_require__(9);
-	__webpack_require__(13);
-	__webpack_require__(17);
-	__webpack_require__(21);
-	__webpack_require__(25);
-	__webpack_require__(66);
-	__webpack_require__(70);
-	__webpack_require__(74);
-	__webpack_require__(78);
-	__webpack_require__(79);
-
-
-/***/ },
-/* 5 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(6)
-	var __weex_style__ = __webpack_require__(7)
-	var __weex_script__ = __webpack_require__(8)
-
-	__weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 6 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]},
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]},
-	      "attr": {
-	        "value": function () {return this.value}
-	      }
-	    }
-	  ]
-	}
-
-/***/ },
-/* 7 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "btn": {
-	    "marginBottom": 0,
-	    "alignItems": "center",
-	    "justifyContent": "center",
-	    "borderWidth": 1,
-	    "borderStyle": "solid",
-	    "borderColor": "#333333"
-	  },
-	  "btn-default": {
-	    "color": "rgb(51,51,51)"
-	  },
-	  "btn-primary": {
-	    "backgroundColor": "rgb(40,96,144)",
-	    "borderColor": "rgb(40,96,144)"
-	  },
-	  "btn-success": {
-	    "backgroundColor": "rgb(92,184,92)",
-	    "borderColor": "rgb(76,174,76)"
-	  },
-	  "btn-info": {
-	    "backgroundColor": "rgb(91,192,222)",
-	    "borderColor": "rgb(70,184,218)"
-	  },
-	  "btn-warning": {
-	    "backgroundColor": "rgb(240,173,78)",
-	    "borderColor": "rgb(238,162,54)"
-	  },
-	  "btn-danger": {
-	    "backgroundColor": "rgb(217,83,79)",
-	    "borderColor": "rgb(212,63,58)"
-	  },
-	  "btn-link": {
-	    "borderColor": "rgba(0,0,0,0)",
-	    "borderRadius": 0
-	  },
-	  "btn-txt-default": {
-	    "color": "rgb(51,51,51)"
-	  },
-	  "btn-txt-primary": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-success": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-info": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-warning": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-danger": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-link": {
-	    "color": "rgb(51,122,183)"
-	  },
-	  "btn-sz-large": {
-	    "width": 300,
-	    "height": 100,
-	    "paddingTop": 25,
-	    "paddingBottom": 25,
-	    "paddingLeft": 40,
-	    "paddingRight": 40,
-	    "borderRadius": 15
-	  },
-	  "btn-sz-middle": {
-	    "width": 240,
-	    "height": 80,
-	    "paddingTop": 15,
-	    "paddingBottom": 15,
-	    "paddingLeft": 30,
-	    "paddingRight": 30,
-	    "borderRadius": 10
-	  },
-	  "btn-sz-small": {
-	    "width": 170,
-	    "height": 60,
-	    "paddingTop": 12,
-	    "paddingBottom": 12,
-	    "paddingLeft": 25,
-	    "paddingRight": 25,
-	    "borderRadius": 7
-	  },
-	  "btn-txt-sz-large": {
-	    "fontSize": 45
-	  },
-	  "btn-txt-sz-middle": {
-	    "fontSize": 35
-	  },
-	  "btn-txt-sz-small": {
-	    "fontSize": 30
-	  }
-	}
-
-/***/ },
-/* 8 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    type: 'default',
-	    size: 'large',
-	    value: ''
-	  }},
-	  methods: {}
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 9 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(10)
-	var __weex_style__ = __webpack_require__(11)
-	var __weex_script__ = __webpack_require__(12)
-
-	__weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 10 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": function () {return ['h' + (this.level)]},
-	  "style": {
-	    "justifyContent": "center"
-	  },
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": function () {return ['txt-h' + (this.level)]},
-	      "attr": {
-	        "value": function () {return this.value}
-	      }
-	    }
-	  ]
-	}
-
-/***/ },
-/* 11 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "h1": {
-	    "height": 110,
-	    "paddingTop": 20,
-	    "paddingBottom": 20
-	  },
-	  "h2": {
-	    "height": 110,
-	    "paddingTop": 20,
-	    "paddingBottom": 20
-	  },
-	  "h3": {
-	    "height": 110,
-	    "paddingTop": 20,
-	    "paddingBottom": 20
-	  },
-	  "txt-h1": {
-	    "fontSize": 70
-	  },
-	  "txt-h2": {
-	    "fontSize": 52
-	  },
-	  "txt-h3": {
-	    "fontSize": 42
-	  }
-	}
-
-/***/ },
-/* 12 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    level: 1,
-	    value: ''
-	  }},
-	  methods: {}
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 13 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(14)
-	var __weex_style__ = __webpack_require__(15)
-	var __weex_script__ = __webpack_require__(16)
-
-	__weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 14 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "item"
-	  ],
-	  "events": {
-	    "touchstart": "touchstart",
-	    "touchend": "touchend"
-	  },
-	  "style": {
-	    "backgroundColor": function () {return this.bgColor}
-	  },
-	  "children": [
-	    {
-	      "type": "content"
-	    }
-	  ]
-	}
-
-/***/ },
-/* 15 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "item": {
-	    "paddingTop": 25,
-	    "paddingBottom": 25,
-	    "paddingLeft": 35,
-	    "paddingRight": 35,
-	    "height": 160,
-	    "justifyContent": "center",
-	    "borderBottomWidth": 1,
-	    "borderColor": "#dddddd"
-	  }
-	}
-
-/***/ },
-/* 16 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    bgColor: '#ffffff'
-	  }},
-	  methods: {
-	    touchstart: function touchstart() {},
-	    touchend: function touchend() {}
-	  }
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 17 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(18)
-	var __weex_style__ = __webpack_require__(19)
-	var __weex_script__ = __webpack_require__(20)
-
-	__weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 18 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": function () {return ['panel', 'panel-' + (this.type)]},
-	  "style": {
-	    "borderWidth": function () {return this.border}
-	  },
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]},
-	      "style": {
-	        "paddingTop": function () {return this.paddingHead},
-	        "paddingBottom": function () {return this.paddingHead},
-	        "paddingLeft": function () {return this.paddingHead*1.5},
-	        "paddingRight": function () {return this.paddingHead*1.5}
-	      },
-	      "attr": {
-	        "value": function () {return this.title}
-	      }
-	    },
-	    {
-	      "type": "div",
-	      "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]},
-	      "style": {
-	        "paddingTop": function () {return this.paddingBody},
-	        "paddingBottom": function () {return this.paddingBody},
-	        "paddingLeft": function () {return this.paddingBody*1.5},
-	        "paddingRight": function () {return this.paddingBody*1.5}
-	      },
-	      "children": [
-	        {
-	          "type": "content"
-	        }
-	      ]
-	    }
-	  ]
-	}
-
-/***/ },
-/* 19 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "panel": {
-	    "marginBottom": 20,
-	    "backgroundColor": "#ffffff",
-	    "borderColor": "#dddddd",
-	    "borderWidth": 1
-	  },
-	  "panel-primary": {
-	    "borderColor": "rgb(40,96,144)"
-	  },
-	  "panel-success": {
-	    "borderColor": "rgb(76,174,76)"
-	  },
-	  "panel-info": {
-	    "borderColor": "rgb(70,184,218)"
-	  },
-	  "panel-warning": {
-	    "borderColor": "rgb(238,162,54)"
-	  },
-	  "panel-danger": {
-	    "borderColor": "rgb(212,63,58)"
-	  },
-	  "panel-header": {
-	    "backgroundColor": "#f5f5f5",
-	    "fontSize": 40,
-	    "color": "#333333"
-	  },
-	  "panel-header-primary": {
-	    "backgroundColor": "rgb(40,96,144)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-success": {
-	    "backgroundColor": "rgb(92,184,92)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-info": {
-	    "backgroundColor": "rgb(91,192,222)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-warning": {
-	    "backgroundColor": "rgb(240,173,78)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-danger": {
-	    "backgroundColor": "rgb(217,83,79)",
-	    "color": "#ffffff"
-	  }
-	}
-
-/***/ },
-/* 20 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    type: 'default',
-	    title: '',
-	    paddingBody: 20,
-	    paddingHead: 20,
-	    dataClass: '',
-	    border: 0
-	  }},
-	  ready: function ready() {}
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 21 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(22)
-	var __weex_style__ = __webpack_require__(23)
-	var __weex_script__ = __webpack_require__(24)
-
-	__weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 22 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": function () {return ['tip', 'tip-' + (this.type)]},
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]},
-	      "attr": {
-	        "value": function () {return this.value}
-	      }
-	    }
-	  ]
-	}
-
-/***/ },
-/* 23 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "tip": {
-	    "paddingLeft": 36,
-	    "paddingRight": 36,
-	    "paddingTop": 36,
-	    "paddingBottom": 36,
-	    "borderRadius": 10
-	  },
-	  "tip-txt": {
-	    "fontSize": 28
-	  },
-	  "tip-success": {
-	    "backgroundColor": "#dff0d8",
-	    "borderColor": "#d6e9c6"
-	  },
-	  "tip-txt-success": {
-	    "color": "#3c763d"
-	  },
-	  "tip-info": {
-	    "backgroundColor": "#d9edf7",
-	    "borderColor": "#bce8f1"
-	  },
-	  "tip-txt-info": {
-	    "color": "#31708f"
-	  },
-	  "tip-warning": {
-	    "backgroundColor": "#fcf8e3",
-	    "borderColor": "#faebcc"
-	  },
-	  "tip-txt-warning": {
-	    "color": "#8a6d3b"
-	  },
-	  "tip-danger": {
-	    "backgroundColor": "#f2dede",
-	    "borderColor": "#ebccd1"
-	  },
-	  "tip-txt-danger": {
-	    "color": "#a94442"
-	  }
-	}
-
-/***/ },
-/* 24 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    type: 'success',
-	    value: ''
-	  }}
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 25 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(26)
-	var __weex_style__ = __webpack_require__(27)
-	var __weex_script__ = __webpack_require__(28)
-
-	__weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 26 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "style": {
-	    "overflow": "hidden",
-	    "flexDirection": "row"
-	  },
-	  "events": {
-	    "appear": "appeared",
-	    "disappear": "disappeared"
-	  },
-	  "children": [
-	    {
-	      "type": "content"
-	    }
-	  ]
-	}
-
-/***/ },
-/* 27 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "wrap": {
-	    "overflow": "hidden"
-	  }
-	}
-
-/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	var _assign = __webpack_require__(29);
-
-	var _assign2 = _interopRequireDefault(_assign);
-
-	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-	module.exports = {
-	    data: function () {return {
-	        now: 0,
-	        remain: 0,
-	        time: {
-	            elapse: 0,
-	            D: '0',
-	            DD: '0',
-	            h: '0',
-	            hh: '00',
-	            H: '0',
-	            HH: '0',
-	            m: '0',
-	            mm: '00',
-	            M: '0',
-	            MM: '0',
-	            s: '0',
-	            ss: '00',
-	            S: '0',
-	            SS: '0'
-	        },
-	        outofview: false
-	    }},
-	    ready: function ready() {
-	        if (this.remain <= 0) {
-	            return;
-	        }
-
-	        this.now = Date.now();
-	        this.nextTick();
-	    },
-	    methods: {
-	        nextTick: function nextTick() {
-	            if (this.outofview) {
-	                setTimeout(this.nextTick.bind(this), 1000);
-	            } else {
-	                this.time.elapse = parseInt((Date.now() - this.now) / 1000);
-
-	                if (this.calc()) {
-	                    this.$emit('tick', (0, _assign2.default)({}, this.time));
-	                    setTimeout(this.nextTick.bind(this), 1000);
-	                } else {
-	                    this.$emit('alarm', (0, _assign2.default)({}, this.time));
-	                }
-	                this._app.updateActions();
-	            }
-	        },
-	        format: function format(str) {
-	            if (str.length >= 2) {
-	                return str;
-	            } else {
-	                return '0' + str;
-	            }
-	        },
-	        calc: function calc() {
-	            var remain = this.remain - this.time.elapse;
-	            if (remain < 0) {
-	                remain = 0;
-	            }
-	            this.time.D = String(parseInt(remain / 86400));
-	            this.time.DD = this.format(this.time.D);
-	            this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600));
-	            this.time.hh = this.format(this.time.h);
-	            this.time.H = String(parseInt(remain / 3600));
-	            this.time.HH = this.format(this.time.H);
-	            this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60));
-	            this.time.mm = this.format(this.time.m);
-	            this.time.M = String(parseInt(remain / 60));
-	            this.time.MM = this.format(this.time.M);
-	            this.time.s = String(remain - parseInt(this.time.M) * 60);
-	            this.time.ss = this.format(this.time.s);
-	            this.time.S = String(remain);
-	            this.time.SS = this.format(this.time.S);
-
-	            return remain > 0;
-	        },
-	        appeared: function appeared() {
-	            this.outofview = false;
-	        },
-	        disappeared: function disappeared() {
-	            this.outofview = true;
-	        }
-	    }
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 29 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = { "default": __webpack_require__(30), __esModule: true };
-
-/***/ },
-/* 30 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(31);
-	module.exports = __webpack_require__(34).Object.assign;
-
-/***/ },
-/* 31 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.3.1 Object.assign(target, source)
-	var $export = __webpack_require__(32);
-
-	$export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)});
-
-/***/ },
+/* 4 */,
+/* 5 */,
+/* 6 */,
+/* 7 */,
+/* 8 */,
+/* 9 */,
+/* 10 */,
+/* 11 */,
+/* 12 */,
+/* 13 */,
+/* 14 */,
+/* 15 */,
+/* 16 */,
+/* 17 */,
+/* 18 */,
+/* 19 */,
+/* 20 */,
+/* 21 */,
+/* 22 */,
+/* 23 */,
+/* 24 */,
+/* 25 */,
+/* 26 */,
+/* 27 */,
+/* 28 */,
+/* 29 */,
+/* 30 */,
+/* 31 */,
 /* 32 */
 /***/ function(module, exports, __webpack_require__) {
 
@@ -1060,44 +334,7 @@
 	};
 
 /***/ },
-/* 47 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 19.1.2.1 Object.assign(target, source, ...)
-	var getKeys  = __webpack_require__(48)
-	  , gOPS     = __webpack_require__(63)
-	  , pIE      = __webpack_require__(64)
-	  , toObject = __webpack_require__(65)
-	  , IObject  = __webpack_require__(52)
-	  , $assign  = Object.assign;
-
-	// should work with symbols and should have deterministic property order (V8 bug)
-	module.exports = !$assign || __webpack_require__(43)(function(){
-	  var A = {}
-	    , B = {}
-	    , S = Symbol()
-	    , K = 'abcdefghijklmnopqrst';
-	  A[S] = 7;
-	  K.split('').forEach(function(k){ B[k] = k; });
-	  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
-	}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
-	  var T     = toObject(target)
-	    , aLen  = arguments.length
-	    , index = 1
-	    , getSymbols = gOPS.f
-	    , isEnum     = pIE.f;
-	  while(aLen > index){
-	    var S      = IObject(arguments[index++])
-	      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
-	      , length = keys.length
-	      , j      = 0
-	      , key;
-	    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
-	  } return T;
-	} : $assign;
-
-/***/ },
+/* 47 */,
 /* 48 */
 /***/ function(module, exports, __webpack_require__) {
 
@@ -1304,793 +541,893 @@
 	};
 
 /***/ },
-/* 66 */
+/* 66 */,
+/* 67 */,
+/* 68 */,
+/* 69 */,
+/* 70 */,
+/* 71 */,
+/* 72 */,
+/* 73 */,
+/* 74 */,
+/* 75 */,
+/* 76 */,
+/* 77 */,
+/* 78 */,
+/* 79 */,
+/* 80 */,
+/* 81 */,
+/* 82 */,
+/* 83 */,
+/* 84 */,
+/* 85 */,
+/* 86 */,
+/* 87 */,
+/* 88 */,
+/* 89 */,
+/* 90 */,
+/* 91 */,
+/* 92 */,
+/* 93 */,
+/* 94 */,
+/* 95 */,
+/* 96 */,
+/* 97 */,
+/* 98 */,
+/* 99 */,
+/* 100 */,
+/* 101 */,
+/* 102 */,
+/* 103 */,
+/* 104 */,
+/* 105 */,
+/* 106 */,
+/* 107 */,
+/* 108 */,
+/* 109 */,
+/* 110 */,
+/* 111 */,
+/* 112 */,
+/* 113 */,
+/* 114 */,
+/* 115 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(67)
-	var __weex_style__ = __webpack_require__(68)
-	var __weex_script__ = __webpack_require__(69)
+	"use strict";
 
-	__weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+	exports.__esModule = true;
 
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
+	var _iterator = __webpack_require__(116);
 
-	    __weex_module__.exports.template = __weex_template__
+	var _iterator2 = _interopRequireDefault(_iterator);
 
-	    __weex_module__.exports.style = __weex_style__
+	var _symbol = __webpack_require__(136);
 
-	})
+	var _symbol2 = _interopRequireDefault(_symbol);
 
+	var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; };
 
-/***/ },
-/* 67 */
-/***/ function(module, exports) {
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "wrap"
-	  ],
-	  "events": {
-	    "appear": "appeared",
-	    "disappear": "disappeared"
-	  },
-	  "children": [
-	    {
-	      "type": "div",
-	      "id": "anim",
-	      "classList": [
-	        "anim"
-	      ],
-	      "children": [
-	        {
-	          "type": "content"
-	        }
-	      ]
-	    }
-	  ]
-	}
+	exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
+	  return typeof obj === "undefined" ? "undefined" : _typeof(obj);
+	} : function (obj) {
+	  return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
+	};
 
 /***/ },
-/* 68 */
-/***/ function(module, exports) {
+/* 116 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = {
-	  "wrap": {
-	    "overflow": "hidden",
-	    "position": "relative"
-	  },
-	  "anim": {
-	    "flexDirection": "column",
-	    "position": "absolute",
-	    "transform": "translateY(0) translateZ(0)"
-	  }
-	}
+	module.exports = { "default": __webpack_require__(117), __esModule: true };
 
 /***/ },
-/* 69 */
-/***/ function(module, exports) {
+/* 117 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = function(module, exports, __weex_require__){'use strict';
+	__webpack_require__(118);
+	__webpack_require__(131);
+	module.exports = __webpack_require__(135).f('iterator');
 
-	module.exports = {
-	    data: function () {return {
-	        step: 0,
-	        count: 0,
-	        index: 1,
-	        duration: 0,
-	        interval: 0,
-	        outofview: false
-	    }},
-	    ready: function ready() {
-	        if (this.interval > 0 && this.step > 0 && this.duration > 0) {
-	            this.nextTick();
-	        }
-	    },
-	    methods: {
-	        nextTick: function nextTick() {
-	            var self = this;
-	            if (this.outofview) {
-	                setTimeout(self.nextTick.bind(self), self.interval);
-	            } else {
-	                setTimeout(function () {
-	                    self.animation(self.nextTick.bind(self));
-	                }, self.interval);
-	            }
-	        },
-	        animation: function animation(cb) {
-	            var self = this;
-	            var offset = -self.step * self.index;
-	            var $animation = __weex_require__('@weex-module/animation');
-	            $animation.transition(this.$el('anim'), {
-	                styles: {
-	                    transform: 'translateY(' + String(offset) + 'px) translateZ(0)'
-	                },
-	                timingFunction: 'ease',
-	                duration: self.duration
-	            }, function () {
-	                self.index = (self.index + 1) % self.count;
-	                self.$emit('change', {
-	                    index: self.index,
-	                    count: self.count
-	                });
-	                cb && cb();
-	            });
-	        },
-	        appeared: function appeared() {
-	            this.outofview = false;
-	        },
-	        disappeared: function disappeared() {
-	            this.outofview = true;
-	        }
-	    }
-	};}
-	/* generated by weex-loader */
+/***/ },
+/* 118 */
+/***/ function(module, exports, __webpack_require__) {
 
+	'use strict';
+	var $at  = __webpack_require__(119)(true);
+
+	// 21.1.3.27 String.prototype[@@iterator]()
+	__webpack_require__(120)(String, 'String', function(iterated){
+	  this._t = String(iterated); // target
+	  this._i = 0;                // next index
+	// 21.1.5.2.1 %StringIteratorPrototype%.next()
+	}, function(){
+	  var O     = this._t
+	    , index = this._i
+	    , point;
+	  if(index >= O.length)return {value: undefined, done: true};
+	  point = $at(O, index);
+	  this._i += point.length;
+	  return {value: point, done: false};
+	});
 
 /***/ },
-/* 70 */
+/* 119 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(71)
-	var __weex_style__ = __webpack_require__(72)
-	var __weex_script__ = __webpack_require__(73)
+	var toInteger = __webpack_require__(57)
+	  , defined   = __webpack_require__(54);
+	// true  -> String#at
+	// false -> String#codePointAt
+	module.exports = function(TO_STRING){
+	  return function(that, pos){
+	    var s = String(defined(that))
+	      , i = toInteger(pos)
+	      , l = s.length
+	      , a, b;
+	    if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
+	    a = s.charCodeAt(i);
+	    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
+	      ? TO_STRING ? s.charAt(i) : a
+	      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
+	  };
+	};
 
-	__weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+/***/ },
+/* 120 */
+/***/ function(module, exports, __webpack_require__) {
 
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
+	'use strict';
+	var LIBRARY        = __webpack_require__(121)
+	  , $export        = __webpack_require__(32)
+	  , redefine       = __webpack_require__(122)
+	  , hide           = __webpack_require__(37)
+	  , has            = __webpack_require__(50)
+	  , Iterators      = __webpack_require__(123)
+	  , $iterCreate    = __webpack_require__(124)
+	  , setToStringTag = __webpack_require__(128)
+	  , getPrototypeOf = __webpack_require__(130)
+	  , ITERATOR       = __webpack_require__(129)('iterator')
+	  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
+	  , FF_ITERATOR    = '@@iterator'
+	  , KEYS           = 'keys'
+	  , VALUES         = 'values';
+
+	var returnThis = function(){ return this; };
+
+	module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
+	  $iterCreate(Constructor, NAME, next);
+	  var getMethod = function(kind){
+	    if(!BUGGY && kind in proto)return proto[kind];
+	    switch(kind){
+	      case KEYS: return function keys(){ return new Constructor(this, kind); };
+	      case VALUES: return function values(){ return new Constructor(this, kind); };
+	    } return function entries(){ return new Constructor(this, kind); };
+	  };
+	  var TAG        = NAME + ' Iterator'
+	    , DEF_VALUES = DEFAULT == VALUES
+	    , VALUES_BUG = false
+	    , proto      = Base.prototype
+	    , $native    = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
+	    , $default   = $native || getMethod(DEFAULT)
+	    , $entries   = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
+	    , $anyNative = NAME == 'Array' ? proto.entries || $native : $native
+	    , methods, key, IteratorPrototype;
+	  // Fix native
+	  if($anyNative){
+	    IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
+	    if(IteratorPrototype !== Object.prototype){
+	      // Set @@toStringTag to native iterators
+	      setToStringTag(IteratorPrototype, TAG, true);
+	      // fix for some old engines
+	      if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
 	    }
+	  }
+	  // fix Array#{values, @@iterator}.name in V8 / FF
+	  if(DEF_VALUES && $native && $native.name !== VALUES){
+	    VALUES_BUG = true;
+	    $default = function values(){ return $native.call(this); };
+	  }
+	  // Define iterator
+	  if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
+	    hide(proto, ITERATOR, $default);
+	  }
+	  // Plug for library
+	  Iterators[NAME] = $default;
+	  Iterators[TAG]  = returnThis;
+	  if(DEFAULT){
+	    methods = {
+	      values:  DEF_VALUES ? $default : getMethod(VALUES),
+	      keys:    IS_SET     ? $default : getMethod(KEYS),
+	      entries: $entries
+	    };
+	    if(FORCED)for(key in methods){
+	      if(!(key in proto))redefine(proto, key, methods[key]);
+	    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
+	  }
+	  return methods;
+	};
 
-	    __weex_module__.exports.template = __weex_template__
+/***/ },
+/* 121 */
+/***/ function(module, exports) {
 
-	    __weex_module__.exports.style = __weex_style__
+	module.exports = true;
 
-	})
+/***/ },
+/* 122 */
+/***/ function(module, exports, __webpack_require__) {
 
+	module.exports = __webpack_require__(37);
 
 /***/ },
-/* 71 */
+/* 123 */
 /***/ function(module, exports) {
 
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "container"
-	  ],
-	  "style": {
-	    "height": function () {return this.height},
-	    "backgroundColor": function () {return this.backgroundColor}
-	  },
-	  "attr": {
-	    "dataRole": function () {return this.dataRole}
-	  },
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": [
-	        "right-text"
-	      ],
-	      "style": {
-	        "color": function () {return this.rightItemColor}
-	      },
-	      "attr": {
-	        "naviItemPosition": "right",
-	        "value": function () {return this.rightItemTitle}
-	      },
-	      "shown": function () {return !this.rightItemSrc},
-	      "events": {
-	        "click": "onclickrightitem"
-	      }
-	    },
-	    {
-	      "type": "image",
-	      "classList": [
-	        "right-image"
-	      ],
-	      "attr": {
-	        "naviItemPosition": "right",
-	        "src": function () {return this.rightItemSrc}
-	      },
-	      "shown": function () {return this.rightItemSrc},
-	      "events": {
-	        "click": "onclickrightitem"
-	      }
-	    },
-	    {
-	      "type": "text",
-	      "classList": [
-	        "left-text"
-	      ],
-	      "style": {
-	        "color": function () {return this.leftItemColor}
-	      },
-	      "attr": {
-	        "naviItemPosition": "left",
-	        "value": function () {return this.leftItemTitle}
-	      },
-	      "shown": function () {return !this.leftItemSrc},
-	      "events": {
-	        "click": "onclickleftitem"
-	      }
-	    },
-	    {
-	      "type": "image",
-	      "classList": [
-	        "left-image"
-	      ],
-	      "attr": {
-	        "naviItemPosition": "left",
-	        "src": function () {return this.leftItemSrc}
-	      },
-	      "shown": function () {return this.leftItemSrc},
-	      "events": {
-	        "click": "onclickleftitem"
-	      }
-	    },
-	    {
-	      "type": "text",
-	      "classList": [
-	        "center-text"
-	      ],
-	      "style": {
-	        "color": function () {return this.titleColor}
-	      },
-	      "attr": {
-	        "naviItemPosition": "center",
-	        "value": function () {return this.title}
-	      }
-	    }
-	  ]
-	}
+	module.exports = {};
 
 /***/ },
-/* 72 */
-/***/ function(module, exports) {
+/* 124 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = {
-	  "container": {
-	    "flexDirection": "row",
-	    "position": "fixed",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "width": 750
-	  },
-	  "right-text": {
-	    "position": "absolute",
-	    "bottom": 28,
-	    "right": 32,
-	    "textAlign": "right",
-	    "fontSize": 32,
-	    "fontFamily": "'Open Sans', sans-serif"
-	  },
-	  "left-text": {
-	    "position": "absolute",
-	    "bottom": 28,
-	    "left": 32,
-	    "textAlign": "left",
-	    "fontSize": 32,
-	    "fontFamily": "'Open Sans', sans-serif"
-	  },
-	  "center-text": {
-	    "position": "absolute",
-	    "bottom": 25,
-	    "left": 172,
-	    "right": 172,
-	    "textAlign": "center",
-	    "fontSize": 36,
-	    "fontWeight": "bold"
-	  },
-	  "left-image": {
-	    "position": "absolute",
-	    "bottom": 20,
-	    "left": 28,
-	    "width": 50,
-	    "height": 50
-	  },
-	  "right-image": {
-	    "position": "absolute",
-	    "bottom": 20,
-	    "right": 28,
-	    "width": 50,
-	    "height": 50
-	  }
-	}
+	'use strict';
+	var create         = __webpack_require__(125)
+	  , descriptor     = __webpack_require__(46)
+	  , setToStringTag = __webpack_require__(128)
+	  , IteratorPrototype = {};
+
+	// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
+	__webpack_require__(37)(IteratorPrototype, __webpack_require__(129)('iterator'), function(){ return this; });
+
+	module.exports = function(Constructor, NAME, next){
+	  Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
+	  setToStringTag(Constructor, NAME + ' Iterator');
+	};
 
 /***/ },
-/* 73 */
-/***/ function(module, exports) {
+/* 125 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = function(module, exports, __weex_require__){'use strict';
+	// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
+	var anObject    = __webpack_require__(39)
+	  , dPs         = __webpack_require__(126)
+	  , enumBugKeys = __webpack_require__(62)
+	  , IE_PROTO    = __webpack_require__(59)('IE_PROTO')
+	  , Empty       = function(){ /* empty */ }
+	  , PROTOTYPE   = 'prototype';
+
+	// Create object with fake `null` prototype: use iframe Object with cleared prototype
+	var createDict = function(){
+	  // Thrash, waste and sodomy: IE GC bug
+	  var iframe = __webpack_require__(44)('iframe')
+	    , i      = enumBugKeys.length
+	    , lt     = '<'
+	    , gt     = '>'
+	    , iframeDocument;
+	  iframe.style.display = 'none';
+	  __webpack_require__(127).appendChild(iframe);
+	  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
+	  // createDict = iframe.contentWindow.Object;
+	  // html.removeChild(iframe);
+	  iframeDocument = iframe.contentWindow.document;
+	  iframeDocument.open();
+	  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
+	  iframeDocument.close();
+	  createDict = iframeDocument.F;
+	  while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
+	  return createDict();
+	};
 
-	module.exports = {
-	  data: function () {return {
-	    dataRole: 'navbar',
+	module.exports = Object.create || function create(O, Properties){
+	  var result;
+	  if(O !== null){
+	    Empty[PROTOTYPE] = anObject(O);
+	    result = new Empty;
+	    Empty[PROTOTYPE] = null;
+	    // add "__proto__" for Object.getPrototypeOf polyfill
+	    result[IE_PROTO] = O;
+	  } else result = createDict();
+	  return Properties === undefined ? result : dPs(result, Properties);
+	};
 
-	    backgroundColor: 'black',
 
-	    height: 88,
+/***/ },
+/* 126 */
+/***/ function(module, exports, __webpack_require__) {
 
-	    title: "",
+	var dP       = __webpack_require__(38)
+	  , anObject = __webpack_require__(39)
+	  , getKeys  = __webpack_require__(48);
 
-	    titleColor: 'black',
+	module.exports = __webpack_require__(42) ? Object.defineProperties : function defineProperties(O, Properties){
+	  anObject(O);
+	  var keys   = getKeys(Properties)
+	    , length = keys.length
+	    , i = 0
+	    , P;
+	  while(length > i)dP.f(O, P = keys[i++], Properties[P]);
+	  return O;
+	};
 
-	    rightItemSrc: '',
+/***/ },
+/* 127 */
+/***/ function(module, exports, __webpack_require__) {
 
-	    rightItemTitle: '',
+	module.exports = __webpack_require__(33).document && document.documentElement;
 
-	    rightItemColor: 'black',
+/***/ },
+/* 128 */
+/***/ function(module, exports, __webpack_require__) {
 
-	    leftItemSrc: '',
+	var def = __webpack_require__(38).f
+	  , has = __webpack_require__(50)
+	  , TAG = __webpack_require__(129)('toStringTag');
 
-	    leftItemTitle: '',
+	module.exports = function(it, tag, stat){
+	  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
+	};
 
-	    leftItemColor: 'black'
-	  }},
-	  methods: {
-	    onclickrightitem: function onclickrightitem(e) {
-	      this.$dispatch('naviBar.rightItem.click', {});
-	    },
-	    onclickleftitem: function onclickleftitem(e) {
-	      this.$dispatch('naviBar.leftItem.click', {});
-	    }
-	  }
-	};}
-	/* generated by weex-loader */
+/***/ },
+/* 129 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var store      = __webpack_require__(60)('wks')
+	  , uid        = __webpack_require__(61)
+	  , Symbol     = __webpack_require__(33).Symbol
+	  , USE_SYMBOL = typeof Symbol == 'function';
+
+	var $exports = module.exports = function(name){
+	  return store[name] || (store[name] =
+	    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
+	};
 
+	$exports.store = store;
 
 /***/ },
-/* 74 */
+/* 130 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(70)
-	var __weex_template__ = __webpack_require__(75)
-	var __weex_style__ = __webpack_require__(76)
-	var __weex_script__ = __webpack_require__(77)
+	// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
+	var has         = __webpack_require__(50)
+	  , toObject    = __webpack_require__(65)
+	  , IE_PROTO    = __webpack_require__(59)('IE_PROTO')
+	  , ObjectProto = Object.prototype;
+
+	module.exports = Object.getPrototypeOf || function(O){
+	  O = toObject(O);
+	  if(has(O, IE_PROTO))return O[IE_PROTO];
+	  if(typeof O.constructor == 'function' && O instanceof O.constructor){
+	    return O.constructor.prototype;
+	  } return O instanceof Object ? ObjectProto : null;
+	};
 
-	__weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+/***/ },
+/* 131 */
+/***/ function(module, exports, __webpack_require__) {
 
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
+	__webpack_require__(132);
+	var global        = __webpack_require__(33)
+	  , hide          = __webpack_require__(37)
+	  , Iterators     = __webpack_require__(123)
+	  , TO_STRING_TAG = __webpack_require__(129)('toStringTag');
+
+	for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
+	  var NAME       = collections[i]
+	    , Collection = global[NAME]
+	    , proto      = Collection && Collection.prototype;
+	  if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
+	  Iterators[NAME] = Iterators.Array;
+	}
 
-	    __weex_module__.exports.template = __weex_template__
+/***/ },
+/* 132 */
+/***/ function(module, exports, __webpack_require__) {
 
-	    __weex_module__.exports.style = __weex_style__
+	'use strict';
+	var addToUnscopables = __webpack_require__(133)
+	  , step             = __webpack_require__(134)
+	  , Iterators        = __webpack_require__(123)
+	  , toIObject        = __webpack_require__(51);
+
+	// 22.1.3.4 Array.prototype.entries()
+	// 22.1.3.13 Array.prototype.keys()
+	// 22.1.3.29 Array.prototype.values()
+	// 22.1.3.30 Array.prototype[@@iterator]()
+	module.exports = __webpack_require__(120)(Array, 'Array', function(iterated, kind){
+	  this._t = toIObject(iterated); // target
+	  this._i = 0;                   // next index
+	  this._k = kind;                // kind
+	// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+	}, function(){
+	  var O     = this._t
+	    , kind  = this._k
+	    , index = this._i++;
+	  if(!O || index >= O.length){
+	    this._t = undefined;
+	    return step(1);
+	  }
+	  if(kind == 'keys'  )return step(0, index);
+	  if(kind == 'values')return step(0, O[index]);
+	  return step(0, [index, O[index]]);
+	}, 'values');
 
-	})
+	// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+	Iterators.Arguments = Iterators.Array;
 
+	addToUnscopables('keys');
+	addToUnscopables('values');
+	addToUnscopables('entries');
 
 /***/ },
-/* 75 */
+/* 133 */
 /***/ function(module, exports) {
 
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "wrapper"
-	  ],
-	  "children": [
-	    {
-	      "type": "wxc-navbar",
-	      "attr": {
-	        "dataRole": function () {return this.dataRole},
-	        "height": function () {return this.height},
-	        "backgroundColor": function () {return this.backgroundColor},
-	        "title": function () {return this.title},
-	        "titleColor": function () {return this.titleColor},
-	        "leftItemSrc": function () {return this.leftItemSrc},
-	        "leftItemTitle": function () {return this.leftItemTitle},
-	        "leftItemColor": function () {return this.leftItemColor},
-	        "rightItemSrc": function () {return this.rightItemSrc},
-	        "rightItemTitle": function () {return this.rightItemTitle},
-	        "rightItemColor": function () {return this.rightItemColor}
-	      }
-	    },
-	    {
-	      "type": "div",
-	      "classList": [
-	        "wrapper"
-	      ],
-	      "style": {
-	        "marginTop": function () {return this.height}
-	      },
-	      "children": [
-	        {
-	          "type": "content"
-	        }
-	      ]
-	    }
-	  ]
-	}
+	module.exports = function(){ /* empty */ };
 
 /***/ },
-/* 76 */
+/* 134 */
 /***/ function(module, exports) {
 
-	module.exports = {
-	  "wrapper": {
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "bottom": 0,
-	    "width": 750
-	  }
-	}
+	module.exports = function(done, value){
+	  return {value: value, done: !!done};
+	};
 
 /***/ },
-/* 77 */
-/***/ function(module, exports) {
+/* 135 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = function(module, exports, __weex_require__){'use strict';
+	exports.f = __webpack_require__(129);
 
-	module.exports = {
-	  data: function () {return {
-	    dataRole: 'navbar',
-	    backgroundColor: 'black',
-	    height: 88,
-	    title: "",
-	    titleColor: 'black',
-	    rightItemSrc: '',
-	    rightItemTitle: '',
-	    rightItemColor: 'black',
-	    leftItemSrc: '',
-	    leftItemTitle: '',
-	    leftItemColor: 'black'
-	  }}
-	};}
-	/* generated by weex-loader */
+/***/ },
+/* 136 */
+/***/ function(module, exports, __webpack_require__) {
 
+	module.exports = { "default": __webpack_require__(137), __esModule: true };
 
 /***/ },
-/* 78 */
+/* 137 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(79)
-	var __weex_template__ = __webpack_require__(83)
-	var __weex_style__ = __webpack_require__(84)
-	var __weex_script__ = __webpack_require__(85)
+	__webpack_require__(138);
+	__webpack_require__(147);
+	__webpack_require__(148);
+	__webpack_require__(149);
+	module.exports = __webpack_require__(34).Symbol;
 
-	__weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+/***/ },
+/* 138 */
+/***/ function(module, exports, __webpack_require__) {
 
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
+	'use strict';
+	// ECMAScript 6 symbols shim
+	var global         = __webpack_require__(33)
+	  , has            = __webpack_require__(50)
+	  , DESCRIPTORS    = __webpack_require__(42)
+	  , $export        = __webpack_require__(32)
+	  , redefine       = __webpack_require__(122)
+	  , META           = __webpack_require__(139).KEY
+	  , $fails         = __webpack_require__(43)
+	  , shared         = __webpack_require__(60)
+	  , setToStringTag = __webpack_require__(128)
+	  , uid            = __webpack_require__(61)
+	  , wks            = __webpack_require__(129)
+	  , wksExt         = __webpack_require__(135)
+	  , wksDefine      = __webpack_require__(140)
+	  , keyOf          = __webpack_require__(141)
+	  , enumKeys       = __webpack_require__(142)
+	  , isArray        = __webpack_require__(143)
+	  , anObject       = __webpack_require__(39)
+	  , toIObject      = __webpack_require__(51)
+	  , toPrimitive    = __webpack_require__(45)
+	  , createDesc     = __webpack_require__(46)
+	  , _create        = __webpack_require__(125)
+	  , gOPNExt        = __webpack_require__(144)
+	  , $GOPD          = __webpack_require__(146)
+	  , $DP            = __webpack_require__(38)
+	  , $keys          = __webpack_require__(48)
+	  , gOPD           = $GOPD.f
+	  , dP             = $DP.f
+	  , gOPN           = gOPNExt.f
+	  , $Symbol        = global.Symbol
+	  , $JSON          = global.JSON
+	  , _stringify     = $JSON && $JSON.stringify
+	  , PROTOTYPE      = 'prototype'
+	  , HIDDEN         = wks('_hidden')
+	  , TO_PRIMITIVE   = wks('toPrimitive')
+	  , isEnum         = {}.propertyIsEnumerable
+	  , SymbolRegistry = shared('symbol-registry')
+	  , AllSymbols     = shared('symbols')
+	  , OPSymbols      = shared('op-symbols')
+	  , ObjectProto    = Object[PROTOTYPE]
+	  , USE_NATIVE     = typeof $Symbol == 'function'
+	  , QObject        = global.QObject;
+	// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
+	var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+
+	// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
+	var setSymbolDesc = DESCRIPTORS && $fails(function(){
+	  return _create(dP({}, 'a', {
+	    get: function(){ return dP(this, 'a', {value: 7}).a; }
+	  })).a != 7;
+	}) ? function(it, key, D){
+	  var protoDesc = gOPD(ObjectProto, key);
+	  if(protoDesc)delete ObjectProto[key];
+	  dP(it, key, D);
+	  if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
+	} : dP;
+
+	var wrap = function(tag){
+	  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
+	  sym._k = tag;
+	  return sym;
+	};
 
-	    __weex_module__.exports.template = __weex_template__
+	var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
+	  return typeof it == 'symbol';
+	} : function(it){
+	  return it instanceof $Symbol;
+	};
 
-	    __weex_module__.exports.style = __weex_style__
+	var $defineProperty = function defineProperty(it, key, D){
+	  if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
+	  anObject(it);
+	  key = toPrimitive(key, true);
+	  anObject(D);
+	  if(has(AllSymbols, key)){
+	    if(!D.enumerable){
+	      if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
+	      it[HIDDEN][key] = true;
+	    } else {
+	      if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
+	      D = _create(D, {enumerable: createDesc(0, false)});
+	    } return setSymbolDesc(it, key, D);
+	  } return dP(it, key, D);
+	};
+	var $defineProperties = function defineProperties(it, P){
+	  anObject(it);
+	  var keys = enumKeys(P = toIObject(P))
+	    , i    = 0
+	    , l = keys.length
+	    , key;
+	  while(l > i)$defineProperty(it, key = keys[i++], P[key]);
+	  return it;
+	};
+	var $create = function create(it, P){
+	  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
+	};
+	var $propertyIsEnumerable = function propertyIsEnumerable(key){
+	  var E = isEnum.call(this, key = toPrimitive(key, true));
+	  if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
+	  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+	};
+	var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
+	  it  = toIObject(it);
+	  key = toPrimitive(key, true);
+	  if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
+	  var D = gOPD(it, key);
+	  if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
+	  return D;
+	};
+	var $getOwnPropertyNames = function getOwnPropertyNames(it){
+	  var names  = gOPN(toIObject(it))
+	    , result = []
+	    , i      = 0
+	    , key;
+	  while(names.length > i){
+	    if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
+	  } return result;
+	};
+	var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
+	  var IS_OP  = it === ObjectProto
+	    , names  = gOPN(IS_OP ? OPSymbols : toIObject(it))
+	    , result = []
+	    , i      = 0
+	    , key;
+	  while(names.length > i){
+	    if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
+	  } return result;
+	};
 
-	})
+	// 19.4.1.1 Symbol([description])
+	if(!USE_NATIVE){
+	  $Symbol = function Symbol(){
+	    if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
+	    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
+	    var $set = function(value){
+	      if(this === ObjectProto)$set.call(OPSymbols, value);
+	      if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
+	      setSymbolDesc(this, tag, createDesc(1, value));
+	    };
+	    if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
+	    return wrap(tag);
+	  };
+	  redefine($Symbol[PROTOTYPE], 'toString', function toString(){
+	    return this._k;
+	  });
+
+	  $GOPD.f = $getOwnPropertyDescriptor;
+	  $DP.f   = $defineProperty;
+	  __webpack_require__(145).f = gOPNExt.f = $getOwnPropertyNames;
+	  __webpack_require__(64).f  = $propertyIsEnumerable;
+	  __webpack_require__(63).f = $getOwnPropertySymbols;
+
+	  if(DESCRIPTORS && !__webpack_require__(121)){
+	    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
+	  }
 
+	  wksExt.f = function(name){
+	    return wrap(wks(name));
+	  }
+	}
 
-/***/ },
-/* 79 */
-/***/ function(module, exports, __webpack_require__) {
+	$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
 
-	var __weex_template__ = __webpack_require__(80)
-	var __weex_style__ = __webpack_require__(81)
-	var __weex_script__ = __webpack_require__(82)
+	for(var symbols = (
+	  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
+	  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
+	).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
 
-	__weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+	for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
 
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
+	$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
+	  // 19.4.2.1 Symbol.for(key)
+	  'for': function(key){
+	    return has(SymbolRegistry, key += '')
+	      ? SymbolRegistry[key]
+	      : SymbolRegistry[key] = $Symbol(key);
+	  },
+	  // 19.4.2.5 Symbol.keyFor(sym)
+	  keyFor: function keyFor(key){
+	    if(isSymbol(key))return keyOf(SymbolRegistry, key);
+	    throw TypeError(key + ' is not a symbol!');
+	  },
+	  useSetter: function(){ setter = true; },
+	  useSimple: function(){ setter = false; }
+	});
 
-	    __weex_module__.exports.template = __weex_template__
+	$export($export.S + $export.F * !USE_NATIVE, 'Object', {
+	  // 19.1.2.2 Object.create(O [, Properties])
+	  create: $create,
+	  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+	  defineProperty: $defineProperty,
+	  // 19.1.2.3 Object.defineProperties(O, Properties)
+	  defineProperties: $defineProperties,
+	  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+	  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+	  // 19.1.2.7 Object.getOwnPropertyNames(O)
+	  getOwnPropertyNames: $getOwnPropertyNames,
+	  // 19.1.2.8 Object.getOwnPropertySymbols(O)
+	  getOwnPropertySymbols: $getOwnPropertySymbols
+	});
 
-	    __weex_module__.exports.style = __weex_style__
+	// 24.3.2 JSON.stringify(value [, replacer [, space]])
+	$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
+	  var S = $Symbol();
+	  // MS Edge converts symbol values to JSON as {}
+	  // WebKit converts symbol values to JSON as null
+	  // V8 throws on boxed symbols
+	  return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
+	})), 'JSON', {
+	  stringify: function stringify(it){
+	    if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
+	    var args = [it]
+	      , i    = 1
+	      , replacer, $replacer;
+	    while(arguments.length > i)args.push(arguments[i++]);
+	    replacer = args[1];
+	    if(typeof replacer == 'function')$replacer = replacer;
+	    if($replacer || !isArray(replacer))replacer = function(key, value){
+	      if($replacer)value = $replacer.call(this, key, value);
+	      if(!isSymbol(value))return value;
+	    };
+	    args[1] = replacer;
+	    return _stringify.apply($JSON, args);
+	  }
+	});
 
-	})
+	// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
+	$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(37)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+	// 19.4.3.5 Symbol.prototype[@@toStringTag]
+	setToStringTag($Symbol, 'Symbol');
+	// 20.2.1.9 Math[@@toStringTag]
+	setToStringTag(Math, 'Math', true);
+	// 24.3.3 JSON[@@toStringTag]
+	setToStringTag(global.JSON, 'JSON', true);
+
+/***/ },
+/* 139 */
+/***/ function(module, exports, __webpack_require__) {
 
+	var META     = __webpack_require__(61)('meta')
+	  , isObject = __webpack_require__(40)
+	  , has      = __webpack_require__(50)
+	  , setDesc  = __webpack_require__(38).f
+	  , id       = 0;
+	var isExtensible = Object.isExtensible || function(){
+	  return true;
+	};
+	var FREEZE = !__webpack_require__(43)(function(){
+	  return isExtensible(Object.preventExtensions({}));
+	});
+	var setMeta = function(it){
+	  setDesc(it, META, {value: {
+	    i: 'O' + ++id, // object ID
+	    w: {}          // weak collections IDs
+	  }});
+	};
+	var fastKey = function(it, create){
+	  // return primitive with prefix
+	  if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+	  if(!has(it, META)){
+	    // can't set metadata to uncaught frozen object
+	    if(!isExtensible(it))return 'F';
+	    // not necessary to add metadata
+	    if(!create)return 'E';
+	    // add missing metadata
+	    setMeta(it);
+	  // return object ID
+	  } return it[META].i;
+	};
+	var getWeak = function(it, create){
+	  if(!has(it, META)){
+	    // can't set metadata to uncaught frozen object
+	    if(!isExtensible(it))return true;
+	    // not necessary to add metadata
+	    if(!create)return false;
+	    // add missing metadata
+	    setMeta(it);
+	  // return hash weak collections IDs
+	  } return it[META].w;
+	};
+	// add metadata on freeze-family methods calling
+	var onFreeze = function(it){
+	  if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
+	  return it;
+	};
+	var meta = module.exports = {
+	  KEY:      META,
+	  NEED:     false,
+	  fastKey:  fastKey,
+	  getWeak:  getWeak,
+	  onFreeze: onFreeze
+	};
 
 /***/ },
-/* 80 */
-/***/ function(module, exports) {
+/* 140 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "container"
-	  ],
-	  "style": {
-	    "backgroundColor": function () {return this.backgroundColor}
-	  },
-	  "events": {
-	    "click": "onclickitem"
-	  },
-	  "children": [
-	    {
-	      "type": "image",
-	      "classList": [
-	        "top-line"
-	      ],
-	      "attr": {
-	        "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png"
-	      }
-	    },
-	    {
-	      "type": "image",
-	      "classList": [
-	        "tab-icon"
-	      ],
-	      "attr": {
-	        "src": function () {return this.icon}
-	      }
-	    },
-	    {
-	      "type": "text",
-	      "classList": [
-	        "tab-text"
-	      ],
-	      "style": {
-	        "color": function () {return this.titleColor}
-	      },
-	      "attr": {
-	        "value": function () {return this.title}
-	      }
-	    }
-	  ]
-	}
+	var global         = __webpack_require__(33)
+	  , core           = __webpack_require__(34)
+	  , LIBRARY        = __webpack_require__(121)
+	  , wksExt         = __webpack_require__(135)
+	  , defineProperty = __webpack_require__(38).f;
+	module.exports = function(name){
+	  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
+	  if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
+	};
 
 /***/ },
-/* 81 */
-/***/ function(module, exports) {
+/* 141 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = {
-	  "container": {
-	    "flex": 1,
-	    "flexDirection": "column",
-	    "alignItems": "center",
-	    "justifyContent": "center",
-	    "height": 88
-	  },
-	  "top-line": {
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "height": 2
-	  },
-	  "tab-icon": {
-	    "marginTop": 5,
-	    "width": 40,
-	    "height": 40
-	  },
-	  "tab-text": {
-	    "marginTop": 5,
-	    "textAlign": "center",
-	    "fontSize": 20
-	  }
-	}
+	var getKeys   = __webpack_require__(48)
+	  , toIObject = __webpack_require__(51);
+	module.exports = function(object, el){
+	  var O      = toIObject(object)
+	    , keys   = getKeys(O)
+	    , length = keys.length
+	    , index  = 0
+	    , key;
+	  while(length > index)if(O[key = keys[index++]] === el)return key;
+	};
 
 /***/ },
-/* 82 */
-/***/ function(module, exports) {
+/* 142 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = function(module, exports, __weex_require__){'use strict';
+	// all enumerable object keys, includes symbols
+	var getKeys = __webpack_require__(48)
+	  , gOPS    = __webpack_require__(63)
+	  , pIE     = __webpack_require__(64);
+	module.exports = function(it){
+	  var result     = getKeys(it)
+	    , getSymbols = gOPS.f;
+	  if(getSymbols){
+	    var symbols = getSymbols(it)
+	      , isEnum  = pIE.f
+	      , i       = 0
+	      , key;
+	    while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
+	  } return result;
+	};
 
-	module.exports = {
-	  data: function () {return {
-	    index: 0,
-	    title: '',
-	    titleColor: '#000000',
-	    icon: '',
-	    backgroundColor: '#ffffff'
-	  }},
-	  methods: {
-	    onclickitem: function onclickitem(e) {
-	      var vm = this;
-	      var params = {
-	        index: vm.index
-	      };
-	      vm.$dispatch('tabItem.onClick', params);
-	    }
+/***/ },
+/* 143 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// 7.2.2 IsArray(argument)
+	var cof = __webpack_require__(53);
+	module.exports = Array.isArray || function isArray(arg){
+	  return cof(arg) == 'Array';
+	};
+
+/***/ },
+/* 144 */
+/***/ function(module, exports, __webpack_require__) {
+
+	// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+	var toIObject = __webpack_require__(51)
+	  , gOPN      = __webpack_require__(145).f
+	  , toString  = {}.toString;
+
+	var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
+	  ? Object.getOwnPropertyNames(window) : [];
+
+	var getWindowNames = function(it){
+	  try {
+	    return gOPN(it);
+	  } catch(e){
+	    return windowNames.slice();
 	  }
-	};}
-	/* generated by weex-loader */
+	};
+
+	module.exports.f = function getOwnPropertyNames(it){
+	  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
+	};
 
 
 /***/ },
-/* 83 */
-/***/ function(module, exports) {
+/* 145 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "wrapper"
-	  ],
-	  "children": [
-	    {
-	      "type": "embed",
-	      "classList": [
-	        "content"
-	      ],
-	      "style": {
-	        "visibility": function () {return this.visibility}
-	      },
-	      "repeat": function () {return this.tabItems},
-	      "attr": {
-	        "src": function () {return this.src},
-	        "type": "weex"
-	      }
-	    },
-	    {
-	      "type": "div",
-	      "classList": [
-	        "tabbar"
-	      ],
-	      "append": "tree",
-	      "children": [
-	        {
-	          "type": "wxc-tabitem",
-	          "repeat": function () {return this.tabItems},
-	          "attr": {
-	            "index": function () {return this.index},
-	            "icon": function () {return this.icon},
-	            "title": function () {return this.title},
-	            "titleColor": function () {return this.titleColor}
-	          }
-	        }
-	      ]
-	    }
-	  ]
-	}
+	// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
+	var $keys      = __webpack_require__(49)
+	  , hiddenKeys = __webpack_require__(62).concat('length', 'prototype');
+
+	exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
+	  return $keys(O, hiddenKeys);
+	};
 
 /***/ },
-/* 84 */
-/***/ function(module, exports) {
+/* 146 */
+/***/ function(module, exports, __webpack_require__) {
 
-	module.exports = {
-	  "wrapper": {
-	    "width": 750,
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "bottom": 0
-	  },
-	  "content": {
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "bottom": 0,
-	    "marginTop": 0,
-	    "marginBottom": 88
-	  },
-	  "tabbar": {
-	    "flexDirection": "row",
-	    "position": "fixed",
-	    "bottom": 0,
-	    "left": 0,
-	    "right": 0,
-	    "height": 88
-	  }
-	}
+	var pIE            = __webpack_require__(64)
+	  , createDesc     = __webpack_require__(46)
+	  , toIObject      = __webpack_require__(51)
+	  , toPrimitive    = __webpack_require__(45)
+	  , has            = __webpack_require__(50)
+	  , IE8_DOM_DEFINE = __webpack_require__(41)
+	  , gOPD           = Object.getOwnPropertyDescriptor;
+
+	exports.f = __webpack_require__(42) ? gOPD : function getOwnPropertyDescriptor(O, P){
+	  O = toIObject(O);
+	  P = toPrimitive(P, true);
+	  if(IE8_DOM_DEFINE)try {
+	    return gOPD(O, P);
+	  } catch(e){ /* empty */ }
+	  if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
+	};
 
 /***/ },
-/* 85 */
+/* 147 */
 /***/ function(module, exports) {
 
-	module.exports = function(module, exports, __weex_require__){'use strict';
+	
 
-	module.exports = {
-	  data: function () {return {
-	    tabItems: [],
-	    selectedIndex: 0,
-	    selectedColor: '#ff0000',
-	    unselectedColor: '#000000'
-	  }},
-	  created: function created() {
-	    this.selected(this.selectedIndex);
+/***/ },
+/* 148 */
+/***/ function(module, exports, __webpack_require__) {
 
-	    this.$on('tabItem.onClick', function (e) {
-	      var detail = e.detail;
-	      this.selectedIndex = detail.index;
-	      this.selected(detail.index);
+	__webpack_require__(140)('asyncIterator');
 
-	      var params = {
-	        index: detail.index
-	      };
-	      this.$dispatch('tabBar.onClick', params);
-	    });
-	  },
-	  methods: {
-	    selected: function selected(index) {
-	      for (var i = 0; i < this.tabItems.length; i++) {
-	        var tabItem = this.tabItems[i];
-	        if (i == index) {
-	          tabItem.icon = tabItem.selectedImage;
-	          tabItem.titleColor = this.selectedColor;
-	          tabItem.visibility = 'visible';
-	        } else {
-	          tabItem.icon = tabItem.image;
-	          tabItem.titleColor = this.unselectedColor;
-	          tabItem.visibility = 'hidden';
-	        }
-	      }
-	    }
-	  }
-	};}
-	/* generated by weex-loader */
+/***/ },
+/* 149 */
+/***/ function(module, exports, __webpack_require__) {
 
+	__webpack_require__(140)('observable');
 
 /***/ },
-/* 86 */,
-/* 87 */,
-/* 88 */,
-/* 89 */,
-/* 90 */,
-/* 91 */,
-/* 92 */,
-/* 93 */,
-/* 94 */,
-/* 95 */,
-/* 96 */,
-/* 97 */,
-/* 98 */,
-/* 99 */,
-/* 100 */,
-/* 101 */,
-/* 102 */,
-/* 103 */,
-/* 104 */,
-/* 105 */,
-/* 106 */,
-/* 107 */,
-/* 108 */,
-/* 109 */,
-/* 110 */,
-/* 111 */,
-/* 112 */,
-/* 113 */,
-/* 114 */,
-/* 115 */,
-/* 116 */,
-/* 117 */,
-/* 118 */,
-/* 119 */,
-/* 120 */,
-/* 121 */,
-/* 122 */,
-/* 123 */,
-/* 124 */,
-/* 125 */,
-/* 126 */,
-/* 127 */,
-/* 128 */,
-/* 129 */,
-/* 130 */,
-/* 131 */,
-/* 132 */,
-/* 133 */,
-/* 134 */,
-/* 135 */,
-/* 136 */,
-/* 137 */,
-/* 138 */,
-/* 139 */,
-/* 140 */,
-/* 141 */,
-/* 142 */,
-/* 143 */,
-/* 144 */,
-/* 145 */,
-/* 146 */,
-/* 147 */,
-/* 148 */,
-/* 149 */,
 /* 150 */,
 /* 151 */,
 /* 152 */,
@@ -2167,20 +1504,53 @@
 /* 223 */,
 /* 224 */,
 /* 225 */,
-/* 226 */
+/* 226 */,
+/* 227 */,
+/* 228 */,
+/* 229 */,
+/* 230 */,
+/* 231 */,
+/* 232 */,
+/* 233 */,
+/* 234 */,
+/* 235 */,
+/* 236 */,
+/* 237 */,
+/* 238 */,
+/* 239 */,
+/* 240 */,
+/* 241 */
 /***/ function(module, exports) {
 
 	module.exports = {
 	  "type": "scroller",
 	  "children": [
 	    {
-	      "type": "wxc-panel",
-	      "attr": {
-	        "title": "websocket",
-	        "type": "primary"
-	      },
+	      "type": "div",
 	      "children": [
 	        {
+	          "type": "div",
+	          "style": {
+	            "backgroundColor": "#286090"
+	          },
+	          "children": [
+	            {
+	              "type": "text",
+	              "classList": [
+	                "title"
+	              ],
+	              "style": {
+	                "height": 80,
+	                "padding": 20,
+	                "color": "#FFFFFF"
+	              },
+	              "attr": {
+	                "value": "websocket"
+	              }
+	            }
+	          ]
+	        },
+	        {
 	          "type": "input",
 	          "attr": {
 	            "type": "text",
@@ -2205,129 +1575,247 @@
 	          },
 	          "children": [
 	            {
-	              "type": "wxc-button",
-	              "attr": {
-	                "value": "connect",
-	                "size": "small",
-	                "type": "primary"
-	              },
+	              "type": "text",
+	              "classList": [
+	                "button"
+	              ],
 	              "events": {
 	                "click": "connect"
+	              },
+	              "attr": {
+	                "value": "connect"
 	              }
 	            },
 	            {
-	              "type": "wxc-button",
-	              "attr": {
-	                "value": "send",
-	                "size": "small",
-	                "type": "primary"
-	              },
+	              "type": "text",
+	              "classList": [
+	                "button"
+	              ],
 	              "events": {
 	                "click": "send"
 	              },
-	              "style": {
-	                "marginLeft": 20
+	              "attr": {
+	                "value": "send"
 	              }
 	            },
 	            {
-	              "type": "wxc-button",
-	              "attr": {
-	                "value": "close",
-	                "size": "small",
-	                "type": "primary"
-	              },
+	              "type": "text",
+	              "classList": [
+	                "button"
+	              ],
 	              "events": {
 	                "click": "close"
 	              },
-	              "style": {
-	                "marginLeft": 20
+	              "attr": {
+	                "value": "close"
+	              }
+	            },
+	            {
+	              "type": "text",
+	              "classList": [
+	                "button"
+	              ],
+	              "events": {
+	                "click": "go"
+	              },
+	              "attr": {
+	                "value": "chatroom"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
-	          "attr": {
-	            "title": "method = send"
+	          "type": "div",
+	          "style": {
+	            "backgroundColor": "#D3D3D3",
+	            "marginTop": 20
 	          },
 	          "children": [
 	            {
 	              "type": "text",
+	              "classList": [
+	                "title"
+	              ],
+	              "style": {
+	                "height": 80,
+	                "padding": 20,
+	                "color": "#000000"
+	              },
 	              "attr": {
-	                "value": function () {return this.sendinfo}
+	                "value": "method = send"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
+	          "type": "text",
+	          "style": {
+	            "color": "#000000",
+	            "height": 80
+	          },
 	          "attr": {
-	            "title": "method = onopen"
+	            "value": function () {return this.sendinfo}
+	          }
+	        },
+	        {
+	          "type": "div",
+	          "style": {
+	            "backgroundColor": "#D3D3D3"
 	          },
 	          "children": [
 	            {
 	              "type": "text",
+	              "classList": [
+	                "title"
+	              ],
+	              "style": {
+	                "height": 80,
+	                "padding": 20,
+	                "color": "#000000"
+	              },
 	              "attr": {
-	                "value": function () {return this.onopeninfo}
+	                "value": "method = onopen"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
+	          "type": "text",
+	          "style": {
+	            "color": "#000000",
+	            "height": 80
+	          },
 	          "attr": {
-	            "title": "method = onmessage"
+	            "value": function () {return this.onopeninfo}
+	          }
+	        },
+	        {
+	          "type": "div",
+	          "style": {
+	            "backgroundColor": "#D3D3D3"
 	          },
 	          "children": [
 	            {
 	              "type": "text",
+	              "classList": [
+	                "title"
+	              ],
+	              "style": {
+	                "height": 80,
+	                "padding": 20,
+	                "color": "#000000"
+	              },
 	              "attr": {
-	                "value": function () {return this.onmessage}
+	                "value": "method = onmessage"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
+	          "type": "text",
+	          "style": {
+	            "color": "#000000",
+	            "height": 100
+	          },
 	          "attr": {
-	            "title": "method = onclose"
+	            "value": function () {return this.onmessage}
+	          }
+	        },
+	        {
+	          "type": "div",
+	          "style": {
+	            "backgroundColor": "#D3D3D3"
 	          },
 	          "children": [
 	            {
 	              "type": "text",
+	              "classList": [
+	                "title"
+	              ],
+	              "style": {
+	                "height": 80,
+	                "padding": 20,
+	                "color": "#000000"
+	              },
 	              "attr": {
-	                "value": function () {return this.oncloseinfo}
+	                "value": "method = onclose"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
+	          "type": "text",
+	          "style": {
+	            "color": "#000000",
+	            "height": 80
+	          },
 	          "attr": {
-	            "title": "method = onerror"
+	            "value": function () {return this.oncloseinfo}
+	          }
+	        },
+	        {
+	          "type": "div",
+	          "style": {
+	            "backgroundColor": "#D3D3D3"
 	          },
 	          "children": [
 	            {
 	              "type": "text",
+	              "classList": [
+	                "title"
+	              ],
+	              "style": {
+	                "height": 80,
+	                "padding": 20,
+	                "color": "#000000"
+	              },
 	              "attr": {
-	                "value": function () {return this.onerrorinfo}
+	                "value": "method = onerror"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
+	          "type": "text",
+	          "style": {
+	            "color": "#000000",
+	            "height": 80
+	          },
 	          "attr": {
-	            "title": "method = close"
+	            "value": function () {return this.onerrorinfo}
+	          }
+	        },
+	        {
+	          "type": "div",
+	          "style": {
+	            "backgroundColor": "#D3D3D3"
 	          },
 	          "children": [
 	            {
 	              "type": "text",
+	              "classList": [
+	                "title"
+	              ],
+	              "style": {
+	                "height": 80,
+	                "padding": 20,
+	                "color": "#000000"
+	              },
 	              "attr": {
-	                "value": function () {return this.closeinfo}
+	                "value": "method = close"
 	              }
 	            }
 	          ]
+	        },
+	        {
+	          "type": "text",
+	          "style": {
+	            "color": "#000000",
+	            "height": 80
+	          },
+	          "attr": {
+	            "value": function () {return this.closeinfo}
+	          }
 	        }
 	      ]
 	    }
@@ -2335,7 +1823,7 @@
 	}
 
 /***/ },
-/* 227 */
+/* 242 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2343,64 +1831,123 @@
 	    "fontSize": 40,
 	    "height": 80,
 	    "width": 600
+	  },
+	  "button": {
+	    "fontSize": 30,
+	    "width": 150,
+	    "color": "#41B883",
+	    "textAlign": "center",
+	    "paddingTop": 10,
+	    "paddingBottom": 10,
+	    "borderWidth": 2,
+	    "borderStyle": "solid",
+	    "marginRight": 20,
+	    "borderColor": "rgb(162,217,192)",
+	    "backgroundColor": "rgba(162,217,192,0.2)"
 	  }
 	}
 
 /***/ },
-/* 228 */
+/* 243 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	__webpack_require__(4);
-	var navigator = __weex_require__('@weex-module/navigator');
-	var modal = __weex_require__('@weex-module/modal');
+	var _typeof2 = __webpack_require__(115);
+
+	var _typeof3 = _interopRequireDefault(_typeof2);
+
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
 	var websocket = __weex_require__('@weex-module/webSocket');
+	var navigator = __weex_require__('@weex-module/navigator');
 	module.exports = {
-	    data: function () {return {
-	        connectinfo: '',
-	        sendinfo: '',
-	        onopeninfo: '',
-	        onmessage: '',
-	        oncloseinfo: '',
-	        onerrorinfo: '',
-	        closeinfo: '',
-	        txtInput: '',
-	        navBarHeight: 88,
-	        title: 'Navigator',
-	        dir: 'examples',
-	        baseURL: ''
-	    }},
-	    methods: {
-	        connect: function connect() {
-	            websocket.WebSocket('ws://115.29.193.48:8088', '');
-	            var self = this;
-	            websocket.onopen = function (e) {
-	                self.onopeninfo = e;
-	            };
-	            websocket.onmessage = function (e) {
-	                self.onmessage = e.data;
-	            };
-	            websocket.onerror = function (e) {
-	                self.onerrorinfo = e.data;
-	            };
-	            websocket.onclose = function (e) {
-	                self.onerrorinfo = e.code;
-	            };
-	        },
-	        send: function send(e) {
-	            var input = this.$el('input');
-	            input.blur();
-	            websocket.send(this.txtInput);
-	            this.sendinfo = this.txtInput;
-	        },
-	        oninput: function oninput(event) {
-	            this.txtInput = event.value;
-	        },
-	        close: function close(e) {
-	            websocket.close();
-	        }
+	  data: function () {return {
+	    connectinfo: '',
+	    sendinfo: '',
+	    onopeninfo: '',
+	    onmessage: '',
+	    oncloseinfo: '',
+	    onerrorinfo: '',
+	    closeinfo: '',
+	    txtInput: '',
+	    navBarHeight: 88,
+	    title: 'Navigator',
+	    dir: 'examples',
+	    baseURL: ''
+	  }},
+	  created: function created() {
+	    var bundleUrl = this.$getConfig().bundleUrl;
+	    bundleUrl = new String(bundleUrl);
+	    console.log('hit', bundleUrl);
+	    var nativeBase;
+	    var isAndroidAssets = bundleUrl.indexOf('file://assets/') >= 0;
+
+	    var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0;
+	    if (isAndroidAssets) {
+	      nativeBase = 'file://assets/';
+	    } else if (isiOSAssets) {
+	      nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1);
+	    } else {
+	      var host = 'localhost:12580';
+	      var matches = /\/\/([^\/]+?)\//.exec(this.$getConfig().bundleUrl);
+	      if (matches && matches.length >= 2) {
+	        host = matches[1];
+	      }
+	      nativeBase = 'http://' + host + '/' + this.dir + '/build/';
+	    }
+	    var h5Base = bundleUrl;
+
+	    var base = nativeBase;
+	    if ((typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) == 'object') {
+	      base = h5Base;
+	    }
+	    this.baseURL = base;
+	  },
+	  methods: {
+
+	    connect: function connect() {
+	      websocket.WebSocket('ws://echo.websocket.org', '');
+	      var self = this;
+	      self.onopeninfo = 'connecting...';
+	      websocket.onopen = function (e) {
+	        self.onopeninfo = 'websocket open';
+	      };
+	      websocket.onmessage = function (e) {
+	        self.onmessage = e.data;
+	      };
+	      websocket.onerror = function (e) {
+	        self.onerrorinfo = e.data;
+	      };
+	      websocket.onclose = function (e) {
+	        self.onopeninfo = '';
+	        self.onerrorinfo = e.code;
+	      };
+	    },
+	    send: function send(e) {
+	      var input = this.$el('input');
+	      input.blur();
+	      websocket.send(this.txtInput);
+	      this.sendinfo = this.txtInput;
+	    },
+	    oninput: function oninput(event) {
+	      this.txtInput = event.value;
+	    },
+	    close: function close(e) {
+	      websocket.close();
+	    },
+	    go: function go(e) {
+	      var vm = this;
+	      if ((typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) !== 'object') {
+	        this.baseURL = this.baseURL + 'module/chatroom-demo.js?test=1';
+	      }
+	      var params = {
+	        'url': this.baseURL,
+	        'animated': 'true'
+	      };
+	      navigator.push(params, function () {});
 	    }
+	  }
 	};}
 	/* generated by weex-loader */
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/showcase/boxshadow.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/showcase/boxshadow.js b/ios/playground/bundlejs/showcase/boxshadow.js
new file mode 100644
index 0000000..e1cd50b
--- /dev/null
+++ b/ios/playground/bundlejs/showcase/boxshadow.js
@@ -0,0 +1,269 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId])
+/******/ 			return installedModules[moduleId].exports;
+
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			exports: {},
+/******/ 			id: moduleId,
+/******/ 			loaded: false
+/******/ 		};
+
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ 		// Flag the module as loaded
+/******/ 		module.loaded = true;
+
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+
+
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 0:
+/***/ function(module, exports, __webpack_require__) {
+
+	var __weex_template__ = __webpack_require__(244)
+	var __weex_style__ = __webpack_require__(245)
+	var __weex_script__ = __webpack_require__(246)
+
+	__weex_define__('@weex-component/2b448ff7e01d43a38e2ee57f8aa1d6de', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+
+	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
+	    if (__weex_exports__.__esModule && __weex_exports__.default) {
+	      __weex_module__.exports = __weex_exports__.default
+	    }
+
+	    __weex_module__.exports.template = __weex_template__
+
+	    __weex_module__.exports.style = __weex_style__
+
+	})
+
+	__weex_bootstrap__('@weex-component/2b448ff7e01d43a38e2ee57f8aa1d6de',undefined,undefined)
+
+/***/ },
+
+/***/ 244:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "type": "div",
+	  "classList": [
+	    "wrapper"
+	  ],
+	  "events": {
+	    "click": "update"
+	  },
+	  "children": [
+	    {
+	      "type": "div",
+	      "style": {
+	        "height": 60,
+	        "backgroundColor": "#FFE4C4",
+	        "boxShadow": function () {return this.bs},
+	        "width": function () {return this.w}
+	      },
+	      "children": [
+	        {
+	          "type": "text",
+	          "classList": [
+	            "title"
+	          ],
+	          "style": {
+	            "textAlign": "center"
+	          },
+	          "attr": {
+	            "value": function () {return 'Hello ' + (this.target)}
+	          }
+	        }
+	      ]
+	    },
+	    {
+	      "type": "div",
+	      "style": {
+	        "marginTop": 80,
+	        "width": 400,
+	        "height": 60,
+	        "backgroundColor": "#FFE4C4",
+	        "boxShadow": "20px  10px 5px rgba(255, 69, 0, 0.8)"
+	      },
+	      "children": [
+	        {
+	          "type": "text",
+	          "classList": [
+	            "title"
+	          ],
+	          "style": {
+	            "textAlign": "center"
+	          },
+	          "attr": {
+	            "value": function () {return 'Hello ' + (this.target)}
+	          }
+	        }
+	      ]
+	    },
+	    {
+	      "type": "div",
+	      "style": {
+	        "marginTop": 80,
+	        "width": 400,
+	        "height": 60,
+	        "backgroundColor": "#FFE4C4",
+	        "boxShadow": "inset 20px  10px 5px rgba(255, 69, 0, 0.8)"
+	      },
+	      "children": [
+	        {
+	          "type": "text",
+	          "classList": [
+	            "title"
+	          ],
+	          "style": {
+	            "textAlign": "center"
+	          },
+	          "attr": {
+	            "value": function () {return 'Hello ' + (this.target)}
+	          }
+	        }
+	      ]
+	    },
+	    {
+	      "type": "div",
+	      "style": {
+	        "marginTop": 80,
+	        "width": 400,
+	        "height": 60,
+	        "backgroundColor": "#FFE4C4",
+	        "boxShadow": "inset 20px  10px 5px rgb(255, 69, 0)"
+	      },
+	      "children": [
+	        {
+	          "type": "text",
+	          "classList": [
+	            "title"
+	          ],
+	          "style": {
+	            "textAlign": "center"
+	          },
+	          "attr": {
+	            "value": function () {return 'Hello ' + (this.target)}
+	          }
+	        }
+	      ]
+	    },
+	    {
+	      "type": "div",
+	      "style": {
+	        "marginTop": 80,
+	        "width": 400,
+	        "height": 60,
+	        "backgroundColor": "#FFE4C4",
+	        "boxShadow": "20px  10px 5px black"
+	      },
+	      "children": [
+	        {
+	          "type": "text",
+	          "classList": [
+	            "title"
+	          ],
+	          "style": {
+	            "textAlign": "center"
+	          },
+	          "attr": {
+	            "value": function () {return 'Hello ' + (this.target)}
+	          }
+	        }
+	      ]
+	    },
+	    {
+	      "type": "div",
+	      "style": {
+	        "marginTop": 80,
+	        "width": 400,
+	        "height": 60,
+	        "backgroundColor": "#FFE4C4",
+	        "boxShadow": "20px  10px 5px #008B00"
+	      },
+	      "children": [
+	        {
+	          "type": "text",
+	          "classList": [
+	            "title"
+	          ],
+	          "style": {
+	            "textAlign": "center"
+	          },
+	          "attr": {
+	            "value": function () {return 'Hello ' + (this.target)}
+	          }
+	        }
+	      ]
+	    }
+	  ]
+	}
+
+/***/ },
+
+/***/ 245:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "wrapper": {
+	    "alignItems": "center",
+	    "marginTop": 120
+	  },
+	  "title": {
+	    "fontSize": 48
+	  }
+	}
+
+/***/ },
+
+/***/ 246:
+/***/ function(module, exports) {
+
+	module.exports = function(module, exports, __weex_require__){'use strict';
+
+	module.exports = {
+	    data: function () {return {
+	        logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png',
+	        target: 'World',
+	        w: '400',
+	        bs: '20px  10px  5px rgb(255, 69, 0)'
+	    }},
+	    methods: {
+	        update: function update(e) {
+	            this.target = 'Weex';
+	            this.w = 600;
+	            this.bs = 'inset 20px  10px 5px rgba(0, 0, 0, 0.5)';
+	        }
+	    }
+	};}
+	/* generated by weex-loader */
+
+
+/***/ }
+
+/******/ });
\ No newline at end of file



[39/50] [abbrv] incubator-weex git commit: * [html5] clear logs.

Posted by so...@apache.org.
* [html5] clear logs.


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

Branch: refs/heads/dev
Commit: 91b8cc5943632e3f57f9d2eaf6f0475516e5f19e
Parents: 5f57aa7
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Mar 30 18:18:19 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Mar 30 18:18:19 2017 +0800

----------------------------------------------------------------------
 dangerfile.js | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/91b8cc59/dangerfile.js
----------------------------------------------------------------------
diff --git a/dangerfile.js b/dangerfile.js
index 00ab9b8..6d82fdb 100644
--- a/dangerfile.js
+++ b/dangerfile.js
@@ -31,7 +31,6 @@ const unFlowedFiles = jsFiles.filter(filepath => {
   const len = flowIgnorePaths.length
   while (i < len) {
     const p = flowIgnorePaths[i]
-    console.log(filepath, p, filepath.indexOf(p))
     if (filepath.indexOf(p) > -1) {
       // ignore this file because it's in the flow-ignore-paths.
       return false;


[47/50] [abbrv] incubator-weex git commit: * [html5] clear log.

Posted by so...@apache.org.
* [html5] clear log.


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

Branch: refs/heads/dev
Commit: 9905aa8cfb604d42cebd055f3bec7136e72c7cac
Parents: fed56d4
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Mar 31 23:19:33 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Mar 31 23:19:33 2017 +0800

----------------------------------------------------------------------
 build/karma.vue.conf.js | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9905aa8c/build/karma.vue.conf.js
----------------------------------------------------------------------
diff --git a/build/karma.vue.conf.js b/build/karma.vue.conf.js
index 9a91a94..50c22fd 100644
--- a/build/karma.vue.conf.js
+++ b/build/karma.vue.conf.js
@@ -36,8 +36,6 @@ for (var i = 0, l = plugins.length; i < l; i++) {
  */
 rollupConfig.plugins.splice(-2, 1, flow())
 
-console.log('rollupConfig', rollupConfig)
-
 rollupConfig.format = 'iife'
 rollupConfig.sourceMap = 'inline'
 


[16/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/index.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/index.js b/ios/playground/bundlejs/index.js
index bae4a96..b4cf207 100644
--- a/ios/playground/bundlejs/index.js
+++ b/ios/playground/bundlejs/index.js
@@ -44,8 +44,8 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(195)
-	var __weex_script__ = __webpack_require__(196)
+	var __weex_template__ = __webpack_require__(205)
+	var __weex_script__ = __webpack_require__(206)
 
 	__weex_define__('@weex-component/677c57764d82d558f236d5241843a2a2', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2048,18 +2048,23 @@
 /* 107 */,
 /* 108 */,
 /* 109 */,
-/* 110 */
+/* 110 */,
+/* 111 */,
+/* 112 */,
+/* 113 */,
+/* 114 */,
+/* 115 */
 /***/ function(module, exports, __webpack_require__) {
 
 	"use strict";
 
 	exports.__esModule = true;
 
-	var _iterator = __webpack_require__(111);
+	var _iterator = __webpack_require__(116);
 
 	var _iterator2 = _interopRequireDefault(_iterator);
 
-	var _symbol = __webpack_require__(131);
+	var _symbol = __webpack_require__(136);
 
 	var _symbol2 = _interopRequireDefault(_symbol);
 
@@ -2074,28 +2079,28 @@
 	};
 
 /***/ },
-/* 111 */
+/* 116 */
 /***/ function(module, exports, __webpack_require__) {
 
-	module.exports = { "default": __webpack_require__(112), __esModule: true };
+	module.exports = { "default": __webpack_require__(117), __esModule: true };
 
 /***/ },
-/* 112 */
+/* 117 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(113);
-	__webpack_require__(126);
-	module.exports = __webpack_require__(130).f('iterator');
+	__webpack_require__(118);
+	__webpack_require__(131);
+	module.exports = __webpack_require__(135).f('iterator');
 
 /***/ },
-/* 113 */
+/* 118 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
-	var $at  = __webpack_require__(114)(true);
+	var $at  = __webpack_require__(119)(true);
 
 	// 21.1.3.27 String.prototype[@@iterator]()
-	__webpack_require__(115)(String, 'String', function(iterated){
+	__webpack_require__(120)(String, 'String', function(iterated){
 	  this._t = String(iterated); // target
 	  this._i = 0;                // next index
 	// 21.1.5.2.1 %StringIteratorPrototype%.next()
@@ -2110,7 +2115,7 @@
 	});
 
 /***/ },
-/* 114 */
+/* 119 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var toInteger = __webpack_require__(57)
@@ -2132,20 +2137,20 @@
 	};
 
 /***/ },
-/* 115 */
+/* 120 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
-	var LIBRARY        = __webpack_require__(116)
+	var LIBRARY        = __webpack_require__(121)
 	  , $export        = __webpack_require__(32)
-	  , redefine       = __webpack_require__(117)
+	  , redefine       = __webpack_require__(122)
 	  , hide           = __webpack_require__(37)
 	  , has            = __webpack_require__(50)
-	  , Iterators      = __webpack_require__(118)
-	  , $iterCreate    = __webpack_require__(119)
-	  , setToStringTag = __webpack_require__(123)
-	  , getPrototypeOf = __webpack_require__(125)
-	  , ITERATOR       = __webpack_require__(124)('iterator')
+	  , Iterators      = __webpack_require__(123)
+	  , $iterCreate    = __webpack_require__(124)
+	  , setToStringTag = __webpack_require__(128)
+	  , getPrototypeOf = __webpack_require__(130)
+	  , ITERATOR       = __webpack_require__(129)('iterator')
 	  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
 	  , FF_ITERATOR    = '@@iterator'
 	  , KEYS           = 'keys'
@@ -2207,35 +2212,35 @@
 	};
 
 /***/ },
-/* 116 */
+/* 121 */
 /***/ function(module, exports) {
 
 	module.exports = true;
 
 /***/ },
-/* 117 */
+/* 122 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = __webpack_require__(37);
 
 /***/ },
-/* 118 */
+/* 123 */
 /***/ function(module, exports) {
 
 	module.exports = {};
 
 /***/ },
-/* 119 */
+/* 124 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
-	var create         = __webpack_require__(120)
+	var create         = __webpack_require__(125)
 	  , descriptor     = __webpack_require__(46)
-	  , setToStringTag = __webpack_require__(123)
+	  , setToStringTag = __webpack_require__(128)
 	  , IteratorPrototype = {};
 
 	// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-	__webpack_require__(37)(IteratorPrototype, __webpack_require__(124)('iterator'), function(){ return this; });
+	__webpack_require__(37)(IteratorPrototype, __webpack_require__(129)('iterator'), function(){ return this; });
 
 	module.exports = function(Constructor, NAME, next){
 	  Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
@@ -2243,12 +2248,12 @@
 	};
 
 /***/ },
-/* 120 */
+/* 125 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
 	var anObject    = __webpack_require__(39)
-	  , dPs         = __webpack_require__(121)
+	  , dPs         = __webpack_require__(126)
 	  , enumBugKeys = __webpack_require__(62)
 	  , IE_PROTO    = __webpack_require__(59)('IE_PROTO')
 	  , Empty       = function(){ /* empty */ }
@@ -2263,7 +2268,7 @@
 	    , gt     = '>'
 	    , iframeDocument;
 	  iframe.style.display = 'none';
-	  __webpack_require__(122).appendChild(iframe);
+	  __webpack_require__(127).appendChild(iframe);
 	  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
 	  // createDict = iframe.contentWindow.Object;
 	  // html.removeChild(iframe);
@@ -2290,7 +2295,7 @@
 
 
 /***/ },
-/* 121 */
+/* 126 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var dP       = __webpack_require__(38)
@@ -2308,25 +2313,25 @@
 	};
 
 /***/ },
-/* 122 */
+/* 127 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = __webpack_require__(33).document && document.documentElement;
 
 /***/ },
-/* 123 */
+/* 128 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var def = __webpack_require__(38).f
 	  , has = __webpack_require__(50)
-	  , TAG = __webpack_require__(124)('toStringTag');
+	  , TAG = __webpack_require__(129)('toStringTag');
 
 	module.exports = function(it, tag, stat){
 	  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
 	};
 
 /***/ },
-/* 124 */
+/* 129 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var store      = __webpack_require__(60)('wks')
@@ -2342,7 +2347,7 @@
 	$exports.store = store;
 
 /***/ },
-/* 125 */
+/* 130 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
@@ -2360,14 +2365,14 @@
 	};
 
 /***/ },
-/* 126 */
+/* 131 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(127);
+	__webpack_require__(132);
 	var global        = __webpack_require__(33)
 	  , hide          = __webpack_require__(37)
-	  , Iterators     = __webpack_require__(118)
-	  , TO_STRING_TAG = __webpack_require__(124)('toStringTag');
+	  , Iterators     = __webpack_require__(123)
+	  , TO_STRING_TAG = __webpack_require__(129)('toStringTag');
 
 	for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
 	  var NAME       = collections[i]
@@ -2378,20 +2383,20 @@
 	}
 
 /***/ },
-/* 127 */
+/* 132 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
-	var addToUnscopables = __webpack_require__(128)
-	  , step             = __webpack_require__(129)
-	  , Iterators        = __webpack_require__(118)
+	var addToUnscopables = __webpack_require__(133)
+	  , step             = __webpack_require__(134)
+	  , Iterators        = __webpack_require__(123)
 	  , toIObject        = __webpack_require__(51);
 
 	// 22.1.3.4 Array.prototype.entries()
 	// 22.1.3.13 Array.prototype.keys()
 	// 22.1.3.29 Array.prototype.values()
 	// 22.1.3.30 Array.prototype[@@iterator]()
-	module.exports = __webpack_require__(115)(Array, 'Array', function(iterated, kind){
+	module.exports = __webpack_require__(120)(Array, 'Array', function(iterated, kind){
 	  this._t = toIObject(iterated); // target
 	  this._i = 0;                   // next index
 	  this._k = kind;                // kind
@@ -2417,13 +2422,13 @@
 	addToUnscopables('entries');
 
 /***/ },
-/* 128 */
+/* 133 */
 /***/ function(module, exports) {
 
 	module.exports = function(){ /* empty */ };
 
 /***/ },
-/* 129 */
+/* 134 */
 /***/ function(module, exports) {
 
 	module.exports = function(done, value){
@@ -2431,29 +2436,29 @@
 	};
 
 /***/ },
-/* 130 */
+/* 135 */
 /***/ function(module, exports, __webpack_require__) {
 
-	exports.f = __webpack_require__(124);
+	exports.f = __webpack_require__(129);
 
 /***/ },
-/* 131 */
+/* 136 */
 /***/ function(module, exports, __webpack_require__) {
 
-	module.exports = { "default": __webpack_require__(132), __esModule: true };
+	module.exports = { "default": __webpack_require__(137), __esModule: true };
 
 /***/ },
-/* 132 */
+/* 137 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(133);
-	__webpack_require__(142);
-	__webpack_require__(143);
-	__webpack_require__(144);
+	__webpack_require__(138);
+	__webpack_require__(147);
+	__webpack_require__(148);
+	__webpack_require__(149);
 	module.exports = __webpack_require__(34).Symbol;
 
 /***/ },
-/* 133 */
+/* 138 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -2462,25 +2467,25 @@
 	  , has            = __webpack_require__(50)
 	  , DESCRIPTORS    = __webpack_require__(42)
 	  , $export        = __webpack_require__(32)
-	  , redefine       = __webpack_require__(117)
-	  , META           = __webpack_require__(134).KEY
+	  , redefine       = __webpack_require__(122)
+	  , META           = __webpack_require__(139).KEY
 	  , $fails         = __webpack_require__(43)
 	  , shared         = __webpack_require__(60)
-	  , setToStringTag = __webpack_require__(123)
+	  , setToStringTag = __webpack_require__(128)
 	  , uid            = __webpack_require__(61)
-	  , wks            = __webpack_require__(124)
-	  , wksExt         = __webpack_require__(130)
-	  , wksDefine      = __webpack_require__(135)
-	  , keyOf          = __webpack_require__(136)
-	  , enumKeys       = __webpack_require__(137)
-	  , isArray        = __webpack_require__(138)
+	  , wks            = __webpack_require__(129)
+	  , wksExt         = __webpack_require__(135)
+	  , wksDefine      = __webpack_require__(140)
+	  , keyOf          = __webpack_require__(141)
+	  , enumKeys       = __webpack_require__(142)
+	  , isArray        = __webpack_require__(143)
 	  , anObject       = __webpack_require__(39)
 	  , toIObject      = __webpack_require__(51)
 	  , toPrimitive    = __webpack_require__(45)
 	  , createDesc     = __webpack_require__(46)
-	  , _create        = __webpack_require__(120)
-	  , gOPNExt        = __webpack_require__(139)
-	  , $GOPD          = __webpack_require__(141)
+	  , _create        = __webpack_require__(125)
+	  , gOPNExt        = __webpack_require__(144)
+	  , $GOPD          = __webpack_require__(146)
 	  , $DP            = __webpack_require__(38)
 	  , $keys          = __webpack_require__(48)
 	  , gOPD           = $GOPD.f
@@ -2605,11 +2610,11 @@
 
 	  $GOPD.f = $getOwnPropertyDescriptor;
 	  $DP.f   = $defineProperty;
-	  __webpack_require__(140).f = gOPNExt.f = $getOwnPropertyNames;
+	  __webpack_require__(145).f = gOPNExt.f = $getOwnPropertyNames;
 	  __webpack_require__(64).f  = $propertyIsEnumerable;
 	  __webpack_require__(63).f = $getOwnPropertySymbols;
 
-	  if(DESCRIPTORS && !__webpack_require__(116)){
+	  if(DESCRIPTORS && !__webpack_require__(121)){
 	    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
 	  }
 
@@ -2693,7 +2698,7 @@
 	setToStringTag(global.JSON, 'JSON', true);
 
 /***/ },
-/* 134 */
+/* 139 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var META     = __webpack_require__(61)('meta')
@@ -2751,13 +2756,13 @@
 	};
 
 /***/ },
-/* 135 */
+/* 140 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var global         = __webpack_require__(33)
 	  , core           = __webpack_require__(34)
-	  , LIBRARY        = __webpack_require__(116)
-	  , wksExt         = __webpack_require__(130)
+	  , LIBRARY        = __webpack_require__(121)
+	  , wksExt         = __webpack_require__(135)
 	  , defineProperty = __webpack_require__(38).f;
 	module.exports = function(name){
 	  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
@@ -2765,7 +2770,7 @@
 	};
 
 /***/ },
-/* 136 */
+/* 141 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var getKeys   = __webpack_require__(48)
@@ -2780,7 +2785,7 @@
 	};
 
 /***/ },
-/* 137 */
+/* 142 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// all enumerable object keys, includes symbols
@@ -2800,7 +2805,7 @@
 	};
 
 /***/ },
-/* 138 */
+/* 143 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// 7.2.2 IsArray(argument)
@@ -2810,12 +2815,12 @@
 	};
 
 /***/ },
-/* 139 */
+/* 144 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
 	var toIObject = __webpack_require__(51)
-	  , gOPN      = __webpack_require__(140).f
+	  , gOPN      = __webpack_require__(145).f
 	  , toString  = {}.toString;
 
 	var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
@@ -2835,7 +2840,7 @@
 
 
 /***/ },
-/* 140 */
+/* 145 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
@@ -2847,7 +2852,7 @@
 	};
 
 /***/ },
-/* 141 */
+/* 146 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var pIE            = __webpack_require__(64)
@@ -2868,29 +2873,24 @@
 	};
 
 /***/ },
-/* 142 */
+/* 147 */
 /***/ function(module, exports) {
 
 	
 
 /***/ },
-/* 143 */
+/* 148 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(135)('asyncIterator');
+	__webpack_require__(140)('asyncIterator');
 
 /***/ },
-/* 144 */
+/* 149 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(135)('observable');
+	__webpack_require__(140)('observable');
 
 /***/ },
-/* 145 */,
-/* 146 */,
-/* 147 */,
-/* 148 */,
-/* 149 */,
 /* 150 */,
 /* 151 */,
 /* 152 */,
@@ -2936,7 +2936,17 @@
 /* 192 */,
 /* 193 */,
 /* 194 */,
-/* 195 */
+/* 195 */,
+/* 196 */,
+/* 197 */,
+/* 198 */,
+/* 199 */,
+/* 200 */,
+/* 201 */,
+/* 202 */,
+/* 203 */,
+/* 204 */,
+/* 205 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2948,29 +2958,29 @@
 	}
 
 /***/ },
-/* 196 */
+/* 206 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	__webpack_require__(197);
+	__webpack_require__(207);
 	module.exports = {
 	  data: function () {return {
 	    root: 'examples',
-	    items: [{ name: 'hello', title: 'Hello World' }, { name: 'style/index', title: 'Common Style' }, { name: 'animation', title: 'Animation' }, { name: 'linear-gradient', title: 'Gradient Color' }, { name: 'component/text-demo', title: 'Text' }, { name: 'component/image-demo', title: 'Image' }, { name: 'component/input-demo', title: 'Input' }, { name: 'component/scroller-demo', title: 'Scroller' }, { name: 'component/list/list-basic', title: 'List (Basic)' }, { name: 'component/list/list-demo', title: 'List (Advanced)' }, { name: 'component/slider/index', title: 'Slider' }, { name: 'component/slider-neighbor/index', title: 'Slider Neighbor' }, { name: 'component/a-demo', title: 'A' }, { name: 'component/video-demo', title: 'Video' }, { name: 'component/countdown-demo', title: 'Countdown' }, { name: 'component/marquee-demo', title: 'Marquee' }, { name: 'component/web-demo', title: 'Web' }, { name: 'component/navigator-demo', title: 'Navigator' }, { name: 'component/tabbar/tabbar-dem
 o', title: 'Tabbar' }, { name: 'component/process-bar-demo', title: 'ProcessBar' }, { name: 'module/instance-api', title: 'Instance API' }, { name: 'module/modal', title: 'Modal' }, { name: 'module/stream-demo', title: 'Stream' }, { name: 'module/websocket-demo', title: 'WebSocket' }, { name: 'module/storage-demo', title: 'Storage' }, { name: 'module/picker-demo', title: 'Picker' }, { name: 'module/componentRect', title: 'componentRect' }, { name: 'module/clipboard', title: 'Clipboard' }, { name: 'showcase/new-fashion/index', title: 'Activity' }, { name: 'showcase/calculator', title: 'Calculator' }, { name: 'showcase/minesweeper', title: 'Minesweeper' }, { name: 'showcase/ui', title: 'UI Gallery' }, { name: 'showcase/dropdown/dropdown-demo', title: 'Dropdown' }, { name: 'showcase/pseudo-class', title: 'PseudoClass' }]
+	    items: [{ name: 'hello', title: 'Hello World' }, { name: 'style/index', title: 'Common Style' }, { name: 'animation', title: 'Animation' }, { name: 'linear-gradient', title: 'Gradient Color' }, { name: 'component/text-demo', title: 'Text' }, { name: 'component/image-demo', title: 'Image' }, { name: 'component/input-demo', title: 'Input' }, { name: 'component/scroller-demo', title: 'Scroller' }, { name: 'component/list/list-basic', title: 'List (Basic)' }, { name: 'component/list/list-demo', title: 'List (Advanced)' }, { name: 'component/list/waterfall', title: 'List (WaterFall)' }, { name: 'component/slider/index', title: 'Slider' }, { name: 'component/slider-neighbor/index', title: 'Slider Neighbor' }, { name: 'component/slider-tab', title: 'Slider Tab' }, { name: 'component/a-demo', title: 'A' }, { name: 'component/video-demo', title: 'Video' }, { name: 'component/countdown-demo', title: 'Countdown' }, { name: 'component/marquee-demo', title: 'Marquee' }, { name: 'component/w
 eb-demo', title: 'Web' }, { name: 'component/navigator-demo', title: 'Navigator' }, { name: 'component/tabbar/tabbar-demo', title: 'Tabbar' }, { name: 'component/process-bar-demo', title: 'ProcessBar' }, { name: 'module/instance-api', title: 'Instance API' }, { name: 'module/modal', title: 'Modal' }, { name: 'module/stream-demo', title: 'Stream' }, { name: 'module/websocket-demo', title: 'WebSocket' }, { name: 'module/storage-demo', title: 'Storage' }, { name: 'module/picker-demo', title: 'Picker' }, { name: 'module/componentRect', title: 'componentRect' }, { name: 'module/clipboard', title: 'Clipboard' }, { name: 'showcase/new-fashion/index', title: 'Activity' }, { name: 'showcase/calculator', title: 'Calculator' }, { name: 'showcase/minesweeper', title: 'Minesweeper' }, { name: 'showcase/ui', title: 'UI Gallery' }, { name: 'showcase/dropdown/dropdown-demo', title: 'Dropdown' }, { name: 'showcase/pseudo-class', title: 'PseudoClass' }, { name: 'showcase/boxshadow', title: 'boxshadow
 ' }]
 	  }}
 	};}
 	/* generated by weex-loader */
 
 
 /***/ },
-/* 197 */
+/* 207 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(198)
-	var __weex_template__ = __webpack_require__(202)
-	var __weex_style__ = __webpack_require__(203)
-	var __weex_script__ = __webpack_require__(204)
+	__webpack_require__(208)
+	var __weex_template__ = __webpack_require__(212)
+	var __weex_style__ = __webpack_require__(213)
+	var __weex_script__ = __webpack_require__(214)
 
 	__weex_define__('@weex-component/example-list', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2987,12 +2997,12 @@
 
 
 /***/ },
-/* 198 */
+/* 208 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(199)
-	var __weex_style__ = __webpack_require__(200)
-	var __weex_script__ = __webpack_require__(201)
+	var __weex_template__ = __webpack_require__(209)
+	var __weex_style__ = __webpack_require__(210)
+	var __weex_script__ = __webpack_require__(211)
 
 	__weex_define__('@weex-component/example-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -3009,11 +3019,17 @@
 
 
 /***/ },
-/* 199 */
+/* 209 */
 /***/ function(module, exports) {
 
 	module.exports = {
-	  "type": "wxc-list-item",
+	  "type": "div",
+	  "classList": [
+	    "item"
+	  ],
+	  "style": {
+	    "backgroundColor": function () {return this.bgColor}
+	  },
 	  "events": {
 	    "click": "redirect"
 	  },
@@ -3031,18 +3047,37 @@
 	}
 
 /***/ },
-/* 200 */
+/* 210 */
 /***/ function(module, exports) {
 
 	module.exports = {
 	  "item-txt": {
 	    "fontSize": 48,
 	    "color": "#555555"
+	  },
+	  "item": {
+	    "paddingTop": 25,
+	    "paddingBottom": 25,
+	    "paddingLeft": 35,
+	    "paddingRight": 35,
+	    "height": 160,
+	    "justifyContent": "center",
+	    "borderBottomWidth": 1,
+	    "borderColor": "#dddddd",
+	    "paddingTop:active": 25,
+	    "paddingBottom:active": 25,
+	    "paddingLeft:active": 35,
+	    "paddingRight:active": 35,
+	    "height:active": 160,
+	    "justifyContent:active": "center",
+	    "backgroundColor:active": "#00BDFF",
+	    "borderBottomWidth:active": 1,
+	    "borderColor:active": "#dddddd"
 	  }
 	}
 
 /***/ },
-/* 201 */
+/* 211 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -3051,7 +3086,8 @@
 	module.exports = {
 	  data: function () {return {
 	    title: '',
-	    url: ''
+	    url: '',
+	    bgColor: '#ffffff'
 	  }},
 	  methods: {
 	    redirect: function redirect() {
@@ -3063,7 +3099,7 @@
 
 
 /***/ },
-/* 202 */
+/* 212 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3087,18 +3123,18 @@
 	}
 
 /***/ },
-/* 203 */
+/* 213 */
 /***/ function(module, exports) {
 
 	module.exports = {}
 
 /***/ },
-/* 204 */
+/* 214 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	var _typeof2 = __webpack_require__(110);
+	var _typeof2 = __webpack_require__(115);
 
 	var _typeof3 = _interopRequireDefault(_typeof2);
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/linear-gradient.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/linear-gradient.js b/ios/playground/bundlejs/linear-gradient.js
index 3866ce5..8e4859e 100644
--- a/ios/playground/bundlejs/linear-gradient.js
+++ b/ios/playground/bundlejs/linear-gradient.js
@@ -45,8 +45,8 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(205)
-	var __weex_style__ = __webpack_require__(206)
+	var __weex_template__ = __webpack_require__(215)
+	var __weex_style__ = __webpack_require__(216)
 
 	__weex_define__('@weex-component/695f94322dfa977e2812d2616f20e495', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -60,7 +60,7 @@
 
 /***/ },
 
-/***/ 205:
+/***/ 215:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -334,7 +334,7 @@
 
 /***/ },
 
-/***/ 206:
+/***/ 216:
 /***/ function(module, exports) {
 
 	module.exports = {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/module/chatroom-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/module/chatroom-demo.js b/ios/playground/bundlejs/module/chatroom-demo.js
new file mode 100644
index 0000000..a99ff43
--- /dev/null
+++ b/ios/playground/bundlejs/module/chatroom-demo.js
@@ -0,0 +1,370 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId])
+/******/ 			return installedModules[moduleId].exports;
+
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			exports: {},
+/******/ 			id: moduleId,
+/******/ 			loaded: false
+/******/ 		};
+
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ 		// Flag the module as loaded
+/******/ 		module.loaded = true;
+
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+
+
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 0:
+/***/ function(module, exports, __webpack_require__) {
+
+	var __weex_template__ = __webpack_require__(217)
+	var __weex_style__ = __webpack_require__(218)
+	var __weex_script__ = __webpack_require__(219)
+
+	__weex_define__('@weex-component/29706d742e69367afe49c8e240836540', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+
+	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
+	    if (__weex_exports__.__esModule && __weex_exports__.default) {
+	      __weex_module__.exports = __weex_exports__.default
+	    }
+
+	    __weex_module__.exports.template = __weex_template__
+
+	    __weex_module__.exports.style = __weex_style__
+
+	})
+
+	__weex_bootstrap__('@weex-component/29706d742e69367afe49c8e240836540',undefined,undefined)
+
+/***/ },
+
+/***/ 217:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "type": "div",
+	  "classList": [
+	    "container"
+	  ],
+	  "children": [
+	    {
+	      "type": "list",
+	      "classList": [
+	        "list"
+	      ],
+	      "attr": {
+	        "loadmore": "loadmore",
+	        "loadmoreoffset": "500"
+	      },
+	      "children": [
+	        {
+	          "type": "cell",
+	          "append": "tree",
+	          "repeat": {
+	            "expression": function () {return this.rows},
+	            "value": "row"
+	          },
+	          "children": [
+	            {
+	              "type": "div",
+	              "classList": [
+	                "item"
+	              ],
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "item-title"
+	                  ],
+	                  "style": {
+	                    "textAlign": function () {return this.row.align},
+	                    "backgroundColor": function () {return this.row.bg}
+	                  },
+	                  "attr": {
+	                    "value": function () {return this.row.message}
+	                  }
+	                }
+	              ]
+	            }
+	          ]
+	        },
+	        {
+	          "type": "cell",
+	          "append": "tree",
+	          "children": [
+	            {
+	              "type": "text",
+	              "id": "cellfoot",
+	              "style": {
+	                "marginBottom": 40
+	              }
+	            }
+	          ]
+	        }
+	      ]
+	    },
+	    {
+	      "type": "div",
+	      "style": {
+	        "flexDirection": "row",
+	        "justifyContent": "center"
+	      },
+	      "children": [
+	        {
+	          "type": "input",
+	          "attr": {
+	            "type": "text",
+	            "placeholder": "\u8bf7\u8f93\u5165\u804a\u5929\u4fe1\u606f",
+	            "autofocus": "false",
+	            "value": ""
+	          },
+	          "classList": [
+	            "input"
+	          ],
+	          "events": {
+	            "change": "onchange",
+	            "input": "oninput"
+	          },
+	          "id": "input"
+	        },
+	        {
+	          "type": "text",
+	          "classList": [
+	            "button"
+	          ],
+	          "events": {
+	            "click": "send"
+	          },
+	          "attr": {
+	            "value": "\u53d1\u9001"
+	          }
+	        }
+	      ]
+	    },
+	    {
+	      "type": "text",
+	      "id": "foot",
+	      "style": {
+	        "color": "#000000",
+	        "height": 40
+	      }
+	    }
+	  ]
+	}
+
+/***/ },
+
+/***/ 218:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "input": {
+	    "fontSize": 40,
+	    "height": 80,
+	    "width": 500,
+	    "marginBottom": 40,
+	    "borderWidth": 2,
+	    "borderStyle": "solid",
+	    "borderColor": "rgb(162,217,192)"
+	  },
+	  "button": {
+	    "fontSize": 36,
+	    "width": 150,
+	    "height": 80,
+	    "textAlign": "center",
+	    "paddingTop": 15,
+	    "paddingBottom": 15,
+	    "borderWidth": 2,
+	    "borderStyle": "solid",
+	    "marginRight": 20,
+	    "marginLeft": 20,
+	    "borderColor": "rgb(162,217,192)",
+	    "backgroundColor": "#00BFFF",
+	    "color": "#FFFFFF",
+	    "fontWeight": "900",
+	    "boxShadow": "1 1px 8px rgba(205, 155, 29, 0.85)",
+	    "backgroundColor:active": "#1E90FF",
+	    "boxShadow:active": "1 4px 6px rgba(255, 99, 71, 0.85)"
+	  },
+	  "container": {
+	    "flex": 1,
+	    "justifyContent": "center",
+	    "alignItems": "center",
+	    "flexDirection": "column",
+	    "borderTopStyle": "solid",
+	    "borderTopWidth": 2,
+	    "borderTopColor": "#DFDFDF"
+	  },
+	  "list": {
+	    "flex": 1,
+	    "width": 750,
+	    "justifyContent": "center",
+	    "alignItems": "center",
+	    "flexDirection": "column",
+	    "borderTopStyle": "solid",
+	    "borderTopWidth": 2,
+	    "borderTopColor": "#DFDFDF"
+	  },
+	  "item": {
+	    "justifyContent": "center",
+	    "height": 60,
+	    "padding": 20,
+	    "marginTop": 5
+	  },
+	  "item-title": {
+	    "fontSize": 30,
+	    "height": 60,
+	    "paddingTop": 10,
+	    "paddingRight": 20,
+	    "paddingLeft": 20
+	  }
+	}
+
+/***/ },
+
+/***/ 219:
+/***/ function(module, exports) {
+
+	module.exports = function(module, exports, __weex_require__){'use strict';
+
+	var dom = __weex_require__('@weex-module/dom');
+	var websocket = __weex_require__('@weex-module/webSocket');
+	module.exports = {
+	  data: function () {return {
+	    rows: [],
+	    names: ['A', 'B', 'C', 'D', 'E', 'F', 'H', 'G'],
+	    connectinfo: '',
+	    sendinfo: '',
+	    onopeninfo: '',
+	    onmessage: '',
+	    oncloseinfo: '',
+	    onerrorinfo: '',
+	    closeinfo: '',
+	    txtInput: '',
+	    info: '',
+	    message: '',
+	    align: 'left',
+	    bg: 'white',
+	    from_client_id: '',
+	    name: '',
+	    number: 1
+	  }},
+	  methods: {
+	    ready: function ready() {
+	      var self = this;
+	      self.connect();
+	    },
+	    connect: function connect() {
+	      websocket.WebSocket('ws://chat.workerman.net:7272/', '');
+	      var self = this;
+	      self.info = 'connecting...';
+	      websocket.onopen = function (e) {
+	        self.info = 'websocket open';
+	        var count = self.names.length;
+	        var id = Math.ceil(Math.random() * count);
+	        self.name = self.names[id];
+	        var loginData = '{"type":"login","client_name":"' + self.name + '","room_id":"1"}';
+	        self.login(loginData);
+	      };
+
+	      websocket.onmessage = function (e) {
+	        self.onmessage = e.data;
+	        var message = JSON.parse(e.data);
+	        self.align = 'left';
+	        self.bg = 'white';
+	        var loginMessage = '';
+	        if (message.type == 'login') {
+	          if (self.from_client_id.length == 0) {
+	            self.from_client_id = message.client_id;
+
+	            self.align = 'right';
+	            self.bg = '#00CD00';
+	            loginMessage = self.name + ' \u6b22\u8fce\u60a8\u52a0\u5165\u4e86\u804a\u5929\u5ba4';
+	          } else {
+	            self.info = 'type is login';
+	            self.align = 'left';
+	            self.bg = 'white';
+	            loginMessage = message.client_name + '\u52a0\u5165\u4e86\u804a\u5929\u5ba4';
+	          }
+	        }
+	        if (self.from_client_id == message.from_client_id) {
+	          self.align = 'right';
+	          self.bg = '#00CD00';
+	        }
+
+	        if (message.type == 'ping') {}
+
+	        if (message.type == 'login') {
+	          self.rows.push({ message: loginMessage, align: self.align, bg: self.bg });
+	        } else if (message.type == 'logout') {
+	          self.rows.push({ message: message.from_client_name + '\u79bb\u5f00\u4e86\u804a\u5929\u5ba4', align: self.align, bg: self.bg });
+	        }
+
+	        if (message.content) {
+	          self.rows.push({ message: message.from_client_name + ':' + message.content, align: self.align, bg: self.bg });
+	          if (self.rows.length > 16) {
+	            dom.scrollToElement(self.$el('cellfoot'), { offset: 0 });
+	          }
+	        }
+	      };
+	      websocket.onerror = function (e) {
+	        self.onerrorinfo = e.data;
+	      };
+	      websocket.onclose = function (e) {
+	        self.onopeninfo = '';
+	        self.onerrorinfo = e.code;
+	      };
+	    },
+	    login: function login(loginInfo) {
+	      websocket.send(loginInfo);
+	    },
+	    send: function send(e) {
+
+	      var input = this.$el('input');
+	      input.blur();
+	      var self = this;
+	      var sendinfo = '{"type":"say","from_client_id":"' + self.from_client_id + '","from_client_name":"' + '\u6e38\u5ba2' + '","to_client_id":"all","content":"' + this.txtInput + '","time":"2017-03-15 01:04:00"}';
+	      websocket.send(sendinfo);
+	    },
+	    oninput: function oninput(event) {
+	      this.txtInput = event.value;
+	    },
+	    close: function close(e) {
+	      websocket.close();
+	    }
+	  }
+	};}
+	/* generated by weex-loader */
+
+
+/***/ }
+
+/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/module/clipboard.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/module/clipboard.js b/ios/playground/bundlejs/module/clipboard.js
index 58aff6c..55ae588 100644
--- a/ios/playground/bundlejs/module/clipboard.js
+++ b/ios/playground/bundlejs/module/clipboard.js
@@ -44,8 +44,8 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(205)
-	var __weex_script__ = __webpack_require__(206)
+	var __weex_template__ = __webpack_require__(220)
+	var __weex_script__ = __webpack_require__(221)
 
 	__weex_define__('@weex-component/e93e729eb05598f04027627a24c804bf', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2038,8 +2038,22 @@
 /* 97 */,
 /* 98 */,
 /* 99 */,
-/* 100 */,
-/* 101 */,
+/* 100 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
+
+/***/ },
+/* 101 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var core  = __webpack_require__(34)
+	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
+	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
+	  return $JSON.stringify.apply($JSON, arguments);
+	};
+
+/***/ },
 /* 102 */,
 /* 103 */,
 /* 104 */,
@@ -2127,22 +2141,8 @@
 /* 186 */,
 /* 187 */,
 /* 188 */,
-/* 189 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = { "default": __webpack_require__(190), __esModule: true };
-
-/***/ },
-/* 190 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var core  = __webpack_require__(34)
-	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
-	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
-	  return $JSON.stringify.apply($JSON, arguments);
-	};
-
-/***/ },
+/* 189 */,
+/* 190 */,
 /* 191 */,
 /* 192 */,
 /* 193 */,
@@ -2157,7 +2157,22 @@
 /* 202 */,
 /* 203 */,
 /* 204 */,
-/* 205 */
+/* 205 */,
+/* 206 */,
+/* 207 */,
+/* 208 */,
+/* 209 */,
+/* 210 */,
+/* 211 */,
+/* 212 */,
+/* 213 */,
+/* 214 */,
+/* 215 */,
+/* 216 */,
+/* 217 */,
+/* 218 */,
+/* 219 */,
+/* 220 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2251,12 +2266,12 @@
 	}
 
 /***/ },
-/* 206 */
+/* 221 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	var _stringify = __webpack_require__(189);
+	var _stringify = __webpack_require__(100);
 
 	var _stringify2 = _interopRequireDefault(_stringify);
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/module/componentRect.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/module/componentRect.js b/ios/playground/bundlejs/module/componentRect.js
index 3e1e81f..85c709f 100644
--- a/ios/playground/bundlejs/module/componentRect.js
+++ b/ios/playground/bundlejs/module/componentRect.js
@@ -45,10 +45,10 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(207)
-	var __weex_template__ = __webpack_require__(211)
-	var __weex_style__ = __webpack_require__(212)
-	var __weex_script__ = __webpack_require__(213)
+	__webpack_require__(222)
+	var __weex_template__ = __webpack_require__(226)
+	var __weex_style__ = __webpack_require__(227)
+	var __weex_script__ = __webpack_require__(228)
 
 	__weex_define__('@weex-component/3cccb00caad47f9888c7597d009c670e', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -67,12 +67,12 @@
 
 /***/ },
 
-/***/ 207:
+/***/ 222:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(208)
-	var __weex_style__ = __webpack_require__(209)
-	var __weex_script__ = __webpack_require__(210)
+	var __weex_template__ = __webpack_require__(223)
+	var __weex_style__ = __webpack_require__(224)
+	var __weex_script__ = __webpack_require__(225)
 
 	__weex_define__('@weex-component/multi-text', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -90,7 +90,7 @@
 
 /***/ },
 
-/***/ 208:
+/***/ 223:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -124,7 +124,7 @@
 
 /***/ },
 
-/***/ 209:
+/***/ 224:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -145,7 +145,7 @@
 
 /***/ },
 
-/***/ 210:
+/***/ 225:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -161,7 +161,7 @@
 
 /***/ },
 
-/***/ 211:
+/***/ 226:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -430,7 +430,7 @@
 
 /***/ },
 
-/***/ 212:
+/***/ 227:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -507,7 +507,7 @@
 
 /***/ },
 
-/***/ 213:
+/***/ 228:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/module/instance-api.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/module/instance-api.js b/ios/playground/bundlejs/module/instance-api.js
index adc1613..db5b1c3 100644
--- a/ios/playground/bundlejs/module/instance-api.js
+++ b/ios/playground/bundlejs/module/instance-api.js
@@ -44,8 +44,8 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(214)
-	var __weex_script__ = __webpack_require__(215)
+	var __weex_template__ = __webpack_require__(229)
+	var __weex_script__ = __webpack_require__(230)
 
 	__weex_define__('@weex-component/2c1f438ffab50b73880065c54d5a1b0c', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2038,8 +2038,22 @@
 /* 97 */,
 /* 98 */,
 /* 99 */,
-/* 100 */,
-/* 101 */,
+/* 100 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
+
+/***/ },
+/* 101 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var core  = __webpack_require__(34)
+	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
+	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
+	  return $JSON.stringify.apply($JSON, arguments);
+	};
+
+/***/ },
 /* 102 */,
 /* 103 */,
 /* 104 */,
@@ -2127,22 +2141,8 @@
 /* 186 */,
 /* 187 */,
 /* 188 */,
-/* 189 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = { "default": __webpack_require__(190), __esModule: true };
-
-/***/ },
-/* 190 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var core  = __webpack_require__(34)
-	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
-	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
-	  return $JSON.stringify.apply($JSON, arguments);
-	};
-
-/***/ },
+/* 189 */,
+/* 190 */,
 /* 191 */,
 /* 192 */,
 /* 193 */,
@@ -2166,7 +2166,22 @@
 /* 211 */,
 /* 212 */,
 /* 213 */,
-/* 214 */
+/* 214 */,
+/* 215 */,
+/* 216 */,
+/* 217 */,
+/* 218 */,
+/* 219 */,
+/* 220 */,
+/* 221 */,
+/* 222 */,
+/* 223 */,
+/* 224 */,
+/* 225 */,
+/* 226 */,
+/* 227 */,
+/* 228 */,
+/* 229 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2191,12 +2206,12 @@
 	}
 
 /***/ },
-/* 215 */
+/* 230 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	var _stringify = __webpack_require__(189);
+	var _stringify = __webpack_require__(100);
 
 	var _stringify2 = _interopRequireDefault(_stringify);
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/module/modal.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/module/modal.js b/ios/playground/bundlejs/module/modal.js
index 9d43515..71a2c2a 100644
--- a/ios/playground/bundlejs/module/modal.js
+++ b/ios/playground/bundlejs/module/modal.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(216)
-	var __weex_style__ = __webpack_require__(217)
-	var __weex_script__ = __webpack_require__(218)
+	var __weex_template__ = __webpack_require__(231)
+	var __weex_style__ = __webpack_require__(232)
+	var __weex_script__ = __webpack_require__(233)
 
 	__weex_define__('@weex-component/3e30f1e2562a57b329ab7ebd1387f07b', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2157,7 +2157,22 @@
 /* 213 */,
 /* 214 */,
 /* 215 */,
-/* 216 */
+/* 216 */,
+/* 217 */,
+/* 218 */,
+/* 219 */,
+/* 220 */,
+/* 221 */,
+/* 222 */,
+/* 223 */,
+/* 224 */,
+/* 225 */,
+/* 226 */,
+/* 227 */,
+/* 228 */,
+/* 229 */,
+/* 230 */,
+/* 231 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2231,13 +2246,13 @@
 	}
 
 /***/ },
-/* 217 */
+/* 232 */
 /***/ function(module, exports) {
 
 	module.exports = {}
 
 /***/ },
-/* 218 */
+/* 233 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/module/picker-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/module/picker-demo.js b/ios/playground/bundlejs/module/picker-demo.js
index 9d3d0d2..8511d04 100644
--- a/ios/playground/bundlejs/module/picker-demo.js
+++ b/ios/playground/bundlejs/module/picker-demo.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(219)
-	var __weex_style__ = __webpack_require__(220)
-	var __weex_script__ = __webpack_require__(221)
+	var __weex_template__ = __webpack_require__(234)
+	var __weex_style__ = __webpack_require__(235)
+	var __weex_script__ = __webpack_require__(236)
 
 	__weex_define__('@weex-component/713f21e067b638ad251dbcb7d5b37be5', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2160,7 +2160,22 @@
 /* 216 */,
 /* 217 */,
 /* 218 */,
-/* 219 */
+/* 219 */,
+/* 220 */,
+/* 221 */,
+/* 222 */,
+/* 223 */,
+/* 224 */,
+/* 225 */,
+/* 226 */,
+/* 227 */,
+/* 228 */,
+/* 229 */,
+/* 230 */,
+/* 231 */,
+/* 232 */,
+/* 233 */,
+/* 234 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2271,7 +2286,7 @@
 	}
 
 /***/ },
-/* 220 */
+/* 235 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2283,7 +2298,7 @@
 	}
 
 /***/ },
-/* 221 */
+/* 236 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/module/storage-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/module/storage-demo.js b/ios/playground/bundlejs/module/storage-demo.js
index 6dccf7f..467c9c7 100644
--- a/ios/playground/bundlejs/module/storage-demo.js
+++ b/ios/playground/bundlejs/module/storage-demo.js
@@ -44,8 +44,8 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(222)
-	var __weex_script__ = __webpack_require__(223)
+	var __weex_template__ = __webpack_require__(237)
+	var __weex_script__ = __webpack_require__(238)
 
 	__weex_define__('@weex-component/6f110d391fd7b90c9a19583f6ee1a7cf', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2038,8 +2038,22 @@
 /* 97 */,
 /* 98 */,
 /* 99 */,
-/* 100 */,
-/* 101 */,
+/* 100 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
+
+/***/ },
+/* 101 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var core  = __webpack_require__(34)
+	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
+	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
+	  return $JSON.stringify.apply($JSON, arguments);
+	};
+
+/***/ },
 /* 102 */,
 /* 103 */,
 /* 104 */,
@@ -2127,22 +2141,8 @@
 /* 186 */,
 /* 187 */,
 /* 188 */,
-/* 189 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = { "default": __webpack_require__(190), __esModule: true };
-
-/***/ },
-/* 190 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var core  = __webpack_require__(34)
-	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
-	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
-	  return $JSON.stringify.apply($JSON, arguments);
-	};
-
-/***/ },
+/* 189 */,
+/* 190 */,
 /* 191 */,
 /* 192 */,
 /* 193 */,
@@ -2174,7 +2174,22 @@
 /* 219 */,
 /* 220 */,
 /* 221 */,
-/* 222 */
+/* 222 */,
+/* 223 */,
+/* 224 */,
+/* 225 */,
+/* 226 */,
+/* 227 */,
+/* 228 */,
+/* 229 */,
+/* 230 */,
+/* 231 */,
+/* 232 */,
+/* 233 */,
+/* 234 */,
+/* 235 */,
+/* 236 */,
+/* 237 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2263,12 +2278,12 @@
 	}
 
 /***/ },
-/* 223 */
+/* 238 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	var _stringify = __webpack_require__(189);
+	var _stringify = __webpack_require__(100);
 
 	var _stringify2 = _interopRequireDefault(_stringify);
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/module/stream-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/module/stream-demo.js b/ios/playground/bundlejs/module/stream-demo.js
index 30b93a2..a34fdad 100644
--- a/ios/playground/bundlejs/module/stream-demo.js
+++ b/ios/playground/bundlejs/module/stream-demo.js
@@ -44,8 +44,8 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(224)
-	var __weex_script__ = __webpack_require__(225)
+	var __weex_template__ = __webpack_require__(239)
+	var __weex_script__ = __webpack_require__(240)
 
 	__weex_define__('@weex-component/2c445dcf67fa0895d197edb5ffa2f439', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2038,8 +2038,22 @@
 /* 97 */,
 /* 98 */,
 /* 99 */,
-/* 100 */,
-/* 101 */,
+/* 100 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
+
+/***/ },
+/* 101 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var core  = __webpack_require__(34)
+	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
+	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
+	  return $JSON.stringify.apply($JSON, arguments);
+	};
+
+/***/ },
 /* 102 */,
 /* 103 */,
 /* 104 */,
@@ -2127,22 +2141,8 @@
 /* 186 */,
 /* 187 */,
 /* 188 */,
-/* 189 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = { "default": __webpack_require__(190), __esModule: true };
-
-/***/ },
-/* 190 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var core  = __webpack_require__(34)
-	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
-	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
-	  return $JSON.stringify.apply($JSON, arguments);
-	};
-
-/***/ },
+/* 189 */,
+/* 190 */,
 /* 191 */,
 /* 192 */,
 /* 193 */,
@@ -2176,7 +2176,22 @@
 /* 221 */,
 /* 222 */,
 /* 223 */,
-/* 224 */
+/* 224 */,
+/* 225 */,
+/* 226 */,
+/* 227 */,
+/* 228 */,
+/* 229 */,
+/* 230 */,
+/* 231 */,
+/* 232 */,
+/* 233 */,
+/* 234 */,
+/* 235 */,
+/* 236 */,
+/* 237 */,
+/* 238 */,
+/* 239 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2293,12 +2308,12 @@
 	}
 
 /***/ },
-/* 225 */
+/* 240 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	var _stringify = __webpack_require__(189);
+	var _stringify = __webpack_require__(100);
 
 	var _stringify2 = _interopRequireDefault(_stringify);
 


[12/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/slider.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/slider.js b/ios/playground/bundlejs/vue/components/slider.js
index faec8f8..be6b93b 100644
--- a/ios/playground/bundlejs/vue/components/slider.js
+++ b/ios/playground/bundlejs/vue/components/slider.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(432)
+	__vue_styles__.push(__webpack_require__(450)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(433)
+	__vue_exports__ = __webpack_require__(451)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(442)
+	var __vue_template__ = __webpack_require__(460)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/slider.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/slider.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-5e494ae2"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,21 +91,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -113,22 +117,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -182,7 +190,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -227,16 +235,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -244,7 +252,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -252,13 +260,13 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 432:
+/***/ 450:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -283,7 +291,7 @@
 
 /***/ },
 
-/***/ 433:
+/***/ 451:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -459,8 +467,8 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    sliderPage: __webpack_require__(434)
+	    panel: __webpack_require__(399),
+	    sliderPage: __webpack_require__(452)
 	  },
 	  methods: {
 	    togglePlay: function togglePlay() {
@@ -487,21 +495,21 @@
 
 /***/ },
 
-/***/ 434:
+/***/ 452:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(435)
+	__vue_styles__.push(__webpack_require__(453)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(436)
+	__vue_exports__ = __webpack_require__(454)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(441)
+	var __vue_template__ = __webpack_require__(459)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -513,22 +521,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/slider-page.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/slider-page.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-8d84a608"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 435:
+/***/ 453:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -542,7 +554,7 @@
 
 /***/ },
 
-/***/ 436:
+/***/ 454:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -569,27 +581,27 @@
 	    items: { default: [] }
 	  },
 	  components: {
-	    sliderItem: __webpack_require__(437)
+	    sliderItem: __webpack_require__(455)
 	  }
 	};
 
 /***/ },
 
-/***/ 437:
+/***/ 455:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(438)
+	__vue_styles__.push(__webpack_require__(456)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(439)
+	__vue_exports__ = __webpack_require__(457)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(440)
+	var __vue_template__ = __webpack_require__(458)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -601,22 +613,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/slider-item.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/slider-item.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-679a3900"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 438:
+/***/ 456:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -628,7 +644,7 @@
 
 /***/ },
 
-/***/ 439:
+/***/ 457:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -647,11 +663,11 @@
 
 /***/ },
 
-/***/ 440:
+/***/ 458:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('image', {
+	  return _c('image', {
 	    staticClass: ["slider-item"],
 	    attrs: {
 	      "src": _vm.image
@@ -662,236 +678,17 @@
 
 /***/ },
 
-/***/ 441:
+/***/ 459:
 /***/ function(module, exports) {
 
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
-	    staticClass: ["slider-page"]
-	  }, [_vm._l((_vm.items), function(v) {
-	    return _h('slider-item', {
-	      attrs: {
-	        "image": v.image,
-	        "link": v.link
-	      }
-	    })
-	  })])
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
+	module.exports={render:function(){},staticRenderFns:[]}
 
 /***/ },
 
-/***/ 442:
+/***/ 460:
 /***/ function(module, exports) {
 
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', {
-	    staticClass: ["body"]
-	  }, [_h('panel', {
-	    attrs: {
-	      "title": "auto-play",
-	      "type": "primary"
-	    }
-	  }, [_h('panel', {
-	    attrs: {
-	      "title": "auto-play = false",
-	      "padding-body": "0"
-	    }
-	  }, [_h('slider', {
-	    staticClass: ["slider"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree",
-	      "interval": _vm.sliders[1].interval,
-	      "autoPlay": "false"
-	    }
-	  }, [_h('indicator', {
-	    staticClass: ["indicator"]
-	  }), _vm._l((_vm.sliders[1].sliderPages), function(v) {
-	    return _h('slider-page', {
-	      attrs: {
-	        "items": v.items
-	      }
-	    })
-	  })])]), _h('panel', {
-	    attrs: {
-	      "title": "auto-play = true",
-	      "padding-body": "0"
-	    }
-	  }, [_h('slider', {
-	    staticClass: ["slider"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree",
-	      "interval": _vm.sliders[0].interval,
-	      "autoPlay": _vm.sliders[0].autoPlay
-	    }
-	  }, [_h('indicator', {
-	    staticClass: ["indicator"]
-	  }), _vm._l((_vm.sliders[0].sliderPages), function(v) {
-	    return _h('slider-page', {
-	      attrs: {
-	        "items": v.items
-	      }
-	    })
-	  })])])]), _h('panel', {
-	    attrs: {
-	      "title": 'Event, ' + _vm.eventCnt + ' change',
-	      "type": "primary"
-	    }
-	  }, [_h('slider', {
-	    staticClass: ["slider"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree",
-	      "interval": _vm.sliders[0].interval,
-	      "autoPlay": _vm.sliders[0].autoPlay
-	    },
-	    on: {
-	      "change": _vm.handleSliderChange
-	    }
-	  }, [_h('indicator', {
-	    staticClass: ["indicator"]
-	  }), _vm._l((_vm.sliders[0].sliderPages), function(v) {
-	    return _h('slider-page', {
-	      attrs: {
-	        "items": v.items
-	      }
-	    })
-	  })])]), _h('panel', {
-	    attrs: {
-	      "title": "Indicator",
-	      "type": "primary"
-	    }
-	  }, [_h('panel', {
-	    attrs: {
-	      "title": "default style",
-	      "padding-body": "0"
-	    }
-	  }, [_h('slider', {
-	    staticClass: ["slider"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree",
-	      "interval": _vm.sliders[0].interval,
-	      "autoPlay": _vm.sliders[0].autoPlay
-	    },
-	    on: {
-	      "change": _vm.handleSliderChange
-	    }
-	  }, [_h('indicator', {
-	    staticClass: ["indicator"]
-	  }), _vm._l((_vm.sliders[0].sliderPages), function(v) {
-	    return _h('slider-page', {
-	      attrs: {
-	        "items": v.items
-	      }
-	    })
-	  })])]), _h('panel', {
-	    attrs: {
-	      "title": "width & height",
-	      "padding-body": "0"
-	    }
-	  }, [_h('slider', {
-	    staticClass: ["slider"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree",
-	      "interval": _vm.sliders[0].interval,
-	      "autoPlay": _vm.sliders[0].autoPlay
-	    }
-	  }, [_h('indicator', {
-	    staticStyle: {
-	      itemColor: "#dddddd",
-	      width: "714",
-	      height: "460"
-	    }
-	  }), _vm._l((_vm.sliders[0].sliderPages), function(v) {
-	    return _h('slider-page', {
-	      attrs: {
-	        "items": v.items
-	      }
-	    })
-	  })])]), _h('panel', {
-	    attrs: {
-	      "title": "left & top",
-	      "padding-body": "0"
-	    }
-	  }, [_h('slider', {
-	    staticClass: ["slider"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree",
-	      "interval": _vm.sliders[1].interval,
-	      "autoPlay": _vm.sliders[1].autoPlay
-	    }
-	  }, [_h('indicator', {
-	    staticClass: ["indicator"],
-	    staticStyle: {
-	      top: "-140",
-	      left: "-240"
-	    }
-	  }), _vm._l((_vm.sliders[1].sliderPages), function(v) {
-	    return _h('slider-page', {
-	      attrs: {
-	        "items": v.items
-	      }
-	    })
-	  })])]), _h('panel', {
-	    attrs: {
-	      "title": "itemColor & itemSelectedColor",
-	      "padding-body": "0"
-	    }
-	  }, [_h('slider', {
-	    staticClass: ["slider"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree",
-	      "interval": _vm.sliders[2].interval,
-	      "autoPlay": _vm.sliders[2].autoPlay
-	    }
-	  }, [_h('indicator', {
-	    staticClass: ["indicator"],
-	    staticStyle: {
-	      itemSelectedColor: "rgb(217, 83, 79)"
-	    }
-	  }), _vm._l((_vm.sliders[2].sliderPages), function(v) {
-	    return _h('slider-page', {
-	      attrs: {
-	        "items": v.items
-	      }
-	    })
-	  })])]), _h('panel', {
-	    attrs: {
-	      "title": "itemSize",
-	      "padding-body": "0"
-	    }
-	  }, [_h('slider', {
-	    staticClass: ["slider"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree",
-	      "interval": _vm.sliders[1].interval,
-	      "autoPlay": _vm.sliders[1].autoPlay
-	    }
-	  }, [_h('indicator', {
-	    staticStyle: {
-	      itemColor: "#dddddd",
-	      itemSize: "40",
-	      top: "140",
-	      left: "180",
-	      width: "700",
-	      height: "380"
-	    }
-	  }), _vm._l((_vm.sliders[1].sliderPages), function(v) {
-	    return _h('slider-page', {
-	      attrs: {
-	        "items": v.items
-	      }
-	    })
-	  })])])])])
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
+	module.exports={render:function(){},staticRenderFns:[]}
 
 /***/ }
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/tabbar.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/tabbar.js b/ios/playground/bundlejs/vue/components/tabbar.js
index c266b0b..7afd55b 100644
--- a/ios/playground/bundlejs/vue/components/tabbar.js
+++ b/ios/playground/bundlejs/vue/components/tabbar.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(443)
+	__vue_exports__ = __webpack_require__(461)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(452)
+	var __vue_template__ = __webpack_require__(470)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/tabbar.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/tabbar.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,7 +86,7 @@
 
 /***/ },
 
-/***/ 419:
+/***/ 437:
 /***/ function(module, exports) {
 
 	exports.getBaseURL = function (vm) {
@@ -107,7 +110,7 @@
 	    }
 	    nativeBase = 'http://' + host + '/' + vm.dir + '/build/';
 	  }
-	  var h5Base = './index.html?page=./' + vm.dir + '/build/';
+	  var h5Base = './vue.html?page=./' + vm.dir + '/build/';
 	  // in Native
 	  var base = nativeBase;
 	  if (typeof window === 'object') {
@@ -120,7 +123,7 @@
 
 /***/ },
 
-/***/ 443:
+/***/ 461:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -132,7 +135,7 @@
 	//
 	//
 
-	var getBaseURL = __webpack_require__(419).getBaseURL;
+	var getBaseURL = __webpack_require__(437).getBaseURL;
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -168,7 +171,7 @@
 	    };
 	  },
 	  components: {
-	    tabbar: __webpack_require__(444)
+	    tabbar: __webpack_require__(462)
 	  },
 	  created: function created() {
 	    var baseURL = getBaseURL(this);
@@ -186,21 +189,21 @@
 
 /***/ },
 
-/***/ 444:
+/***/ 462:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(445)
+	__vue_styles__.push(__webpack_require__(463)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(446)
+	__vue_exports__ = __webpack_require__(464)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(451)
+	var __vue_template__ = __webpack_require__(469)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -212,22 +215,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/tabbar.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/tabbar.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-72e74326"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 445:
+/***/ 463:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -260,7 +267,7 @@
 
 /***/ },
 
-/***/ 446:
+/***/ 464:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -328,7 +335,7 @@
 	    };
 	  },
 	  components: {
-	    tabitem: __webpack_require__(447)
+	    tabitem: __webpack_require__(465)
 	  },
 	  created: function created() {
 	    this.select(this.selectedIndex);
@@ -358,21 +365,21 @@
 
 /***/ },
 
-/***/ 447:
+/***/ 465:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(448)
+	__vue_styles__.push(__webpack_require__(466)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(449)
+	__vue_exports__ = __webpack_require__(467)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(450)
+	var __vue_template__ = __webpack_require__(468)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -384,22 +391,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/tabitem.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/tabitem.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-8733b9ae"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 448:
+/***/ 466:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -431,7 +442,7 @@
 
 /***/ },
 
-/***/ 449:
+/***/ 467:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -501,11 +512,11 @@
 
 /***/ },
 
-/***/ 450:
+/***/ 468:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["container"],
 	    style: {
 	      backgroundColor: _vm.backgroundColor
@@ -513,84 +524,50 @@
 	    on: {
 	      "click": _vm.onclickitem
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["top-line"],
 	    attrs: {
 	      "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png"
 	    }
-	  }), _h('image', {
+	  }), _c('image', {
 	    staticClass: ["tab-icon"],
 	    attrs: {
 	      "src": _vm.icon
 	    }
-	  }), _h('text', {
+	  }), _c('text', {
 	    staticClass: ["tab-text"],
 	    style: {
 	      color: _vm.titleColor
 	    }
-	  }, [_vm._s(_vm.title)])])
+	  }, [_vm._v(_vm._s(_vm.title))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 451:
+/***/ 469:
 /***/ function(module, exports) {
 
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
-	    staticClass: ["wrapper"]
-	  }, [_vm._l((_vm.tabItems), function(item) {
-	    return _h('embed', {
-	      staticClass: ["content"],
-	      style: {
-	        visibility: item.visibility
-	      },
-	      attrs: {
-	        "src": item.src,
-	        "type": "weex"
-	      }
-	    })
-	  }), _h('div', {
-	    staticClass: ["tabbar"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree"
-	    }
-	  }, [_vm._l((_vm.tabItems), function(item) {
-	    return _h('tabitem', {
-	      attrs: {
-	        "index": item.index,
-	        "icon": item.icon,
-	        "title": item.title,
-	        "titleColor": item.titleColor
-	      },
-	      on: {
-	        "tabItemOnClick": _vm.tabItemOnClick
-	      }
-	    })
-	  })])])
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
+	module.exports={render:function(){},staticRenderFns:[]}
 
 /***/ },
 
-/***/ 452:
+/***/ 470:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticStyle: {
 	      flexDirection: "column"
 	    }
-	  }, [_h('tabbar', {
+	  }, [_c('tabbar', {
 	    attrs: {
 	      "tabItems": _vm.tabItems
 	    },
 	    on: {
 	      "tabBarOnClick": _vm.tabBarOnClick
 	    }
-	  })])
+	  })], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/text.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/text.js b/ios/playground/bundlejs/vue/components/text.js
index 31ec7e7..26c562a 100644
--- a/ios/playground/bundlejs/vue/components/text.js
+++ b/ios/playground/bundlejs/vue/components/text.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(453)
+	__vue_styles__.push(__webpack_require__(471)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(454)
+	__vue_exports__ = __webpack_require__(472)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(455)
+	var __vue_template__ = __webpack_require__(473)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/text.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/text.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-19a6f76e"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,21 +91,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -113,22 +117,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -182,7 +190,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -227,16 +235,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -244,7 +252,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -252,13 +260,13 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 453:
+/***/ 471:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -270,7 +278,7 @@
 
 /***/ },
 
-/***/ 454:
+/***/ 472:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -331,180 +339,180 @@
 
 	module.exports = {
 	  components: {
-	    panel: __webpack_require__(381)
+	    panel: __webpack_require__(399)
 	  }
 	};
 
 /***/ },
 
-/***/ 455:
+/***/ 473:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "color",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["txt"]
-	  }, ["default is black"]), _h('text', {
+	  }, [_vm._v("default is black")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      color: "#286090"
 	    }
-	  }, ["#286090"]), _h('text', {
+	  }, [_vm._v("#286090")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      color: "#0f0"
 	    }
-	  }, ["#0f0"]), _h('text', {
+	  }, [_vm._v("#0f0")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      color: "red"
 	    }
-	  }, ["keyword"]), _h('text', {
+	  }, [_vm._v("keyword")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      color: "rgb(238, 162, 54)"
 	    }
-	  }, ["rgb(238, 162, 54)"]), _h('text', {
+	  }, [_vm._v("rgb(238, 162, 54)")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      color: "rgba(238, 162, 54, 0.5)"
 	    }
-	  }, ["rgba(238, 162, 54, 0.5)"])]), _h('panel', {
+	  }, [_vm._v("rgba(238, 162, 54, 0.5)")])]), _c('panel', {
 	    attrs: {
 	      "title": "font-size",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      fontSize: "32px"
 	    }
-	  }, ["32"]), _h('text', {
+	  }, [_vm._v("32")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      fontSize: "64px"
 	    }
-	  }, ["64"]), _h('text', {
+	  }, [_vm._v("64")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      fontSize: "100px"
 	    }
-	  }, ["100"])]), _h('panel', {
+	  }, [_vm._v("100")])]), _c('panel', {
 	    attrs: {
 	      "title": "font-style",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      fontStyle: "normal"
 	    }
-	  }, ["normal"]), _h('text', {
+	  }, [_vm._v("normal")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      fontStyle: "italic"
 	    }
-	  }, ["italic"])]), _h('panel', {
+	  }, [_vm._v("italic")])]), _c('panel', {
 	    attrs: {
 	      "title": "font-weight",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      fontWeight: "normal"
 	    }
-	  }, ["normal"]), _h('text', {
+	  }, [_vm._v("normal")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      fontWeight: "bold"
 	    }
-	  }, ["bold"])]), _h('panel', {
+	  }, [_vm._v("bold")])]), _c('panel', {
 	    attrs: {
 	      "title": "text-decoration",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      textDecoration: "none"
 	    }
-	  }, ["none"]), _h('text', {
+	  }, [_vm._v("none")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      textDecoration: "underline"
 	    }
-	  }, ["underline"]), _h('text', {
+	  }, [_vm._v("underline")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      textDecoration: "line-through"
 	    }
-	  }, ["line-through"])]), _h('panel', {
+	  }, [_vm._v("line-through")])]), _c('panel', {
 	    attrs: {
 	      "title": "text-align",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      textAlign: "left"
 	    }
-	  }, ["left"]), _h('text', {
+	  }, [_vm._v("left")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      textAlign: "center"
 	    }
-	  }, ["center"]), _h('text', {
+	  }, [_vm._v("center")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      textAlign: "right"
 	    }
-	  }, ["right"])]), _h('panel', {
+	  }, [_vm._v("right")])]), _c('panel', {
 	    attrs: {
 	      "title": "text-overflow",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      lines: "1"
 	    }
-	  }, ["no text-overflow, no text-overflow"]), _h('text', {
+	  }, [_vm._v("no text-overflow, no text-overflow")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      textOverflow: "clip",
 	      width: "450px",
 	      lines: "1"
 	    }
-	  }, ["text-overflow: clip, text-overflow: clip"]), _h('text', {
+	  }, [_vm._v("text-overflow: clip, text-overflow: clip")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
 	      textOverflow: "ellipsis",
 	      width: "450px",
 	      lines: "1"
 	    }
-	  }, ["text-overflow: ellipsis, text-overflow: ellipsis"])]), _h('panel', {
+	  }, [_vm._v("text-overflow: ellipsis, text-overflow: ellipsis")])]), _c('panel', {
 	    attrs: {
 	      "title": "line-height",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["txt"]
-	  }, ["no lineheight setting"]), _h('text', {
+	  }, [_vm._v("no lineheight setting")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
-	      lineHeight: "50"
+	      lineHeight: "50px"
 	    }
-	  }, ["lineheight 50"]), _h('text', {
+	  }, [_vm._v("lineheight 50")]), _c('text', {
 	    staticClass: ["txt"],
 	    staticStyle: {
-	      lineHeight: "80"
+	      lineHeight: "80px"
 	    }
-	  }, [" lineheight 80"])])])
+	  }, [_vm._v(" lineheight 80")])])], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/video.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/video.js b/ios/playground/bundlejs/vue/components/video.js
index caf0cea..fccfbe4 100644
--- a/ios/playground/bundlejs/vue/components/video.js
+++ b/ios/playground/bundlejs/vue/components/video.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(456)
+	__vue_styles__.push(__webpack_require__(474)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(457)
+	__vue_exports__ = __webpack_require__(475)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(458)
+	var __vue_template__ = __webpack_require__(476)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/video.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/video.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-a9b90eec"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,21 +91,21 @@
 
 /***/ },
 
-/***/ 385:
+/***/ 403:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(386)
+	__vue_styles__.push(__webpack_require__(404)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(387)
+	__vue_exports__ = __webpack_require__(405)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(388)
+	var __vue_template__ = __webpack_require__(406)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -113,22 +117,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/button.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/button.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4c6be341"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 386:
+/***/ 404:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -228,7 +236,7 @@
 
 /***/ },
 
-/***/ 387:
+/***/ 405:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -251,21 +259,21 @@
 
 /***/ },
 
-/***/ 388:
+/***/ 406:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 456:
+/***/ 474:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -278,7 +286,7 @@
 
 /***/ },
 
-/***/ 457:
+/***/ 475:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -305,7 +313,7 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
+	var modal = weex.requireModule('modal');
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -313,7 +321,7 @@
 	    };
 	  },
 	  components: {
-	    button: __webpack_require__(385)
+	    button: __webpack_require__(403)
 	  },
 	  methods: {
 	    pause: function pause() {
@@ -345,11 +353,11 @@
 
 /***/ },
 
-/***/ 458:
+/***/ 476:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('video', {
+	  return _c('scroller', [_c('video', {
 	    staticClass: ["video"],
 	    attrs: {
 	      "onpause": "onpause",
@@ -357,15 +365,15 @@
 	      "onfinish": "onfinish",
 	      "onfail": "onfail",
 	      "src": "http://g.tbcdn.cn/ali-wireless-h5/res/0.0.6/toy.mp4",
-	      "auto-play": "true",
+	      "autoPlay": "true",
 	      "playStatus": _vm.playStatus
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticStyle: {
 	      flexDirection: "row",
 	      justifyContent: "center"
 	    }
-	  }, [_h('button', {
+	  }, [_c('button', {
 	    attrs: {
 	      "value": "Pause"
 	    },
@@ -374,7 +382,7 @@
 	        _vm.pause($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    staticStyle: {
 	      marginLeft: "20px"
 	    },
@@ -387,7 +395,7 @@
 	        _vm.play($event)
 	      }
 	    }
-	  })])])
+	  })], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/waterfall.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/waterfall.js b/ios/playground/bundlejs/vue/components/waterfall.js
index 821158e..100252b 100644
--- a/ios/playground/bundlejs/vue/components/waterfall.js
+++ b/ios/playground/bundlejs/vue/components/waterfall.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(468)
+	__vue_styles__.push(__webpack_require__(477)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(469)
+	__vue_exports__ = __webpack_require__(478)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(470)
+	var __vue_template__ = __webpack_require__(479)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/incubator-weex/examples/vue/components/waterfall.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/waterfall.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-13cb2621"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 468:
+/***/ 477:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -259,7 +263,7 @@
 
 /***/ },
 
-/***/ 469:
+/***/ 478:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -720,7 +724,7 @@
 
 /***/ },
 
-/***/ 470:
+/***/ 479:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/web.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/web.js b/ios/playground/bundlejs/vue/components/web.js
index 602ac0a..e15cbeb 100644
--- a/ios/playground/bundlejs/vue/components/web.js
+++ b/ios/playground/bundlejs/vue/components/web.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(459)
+	__vue_styles__.push(__webpack_require__(480)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(460)
+	__vue_exports__ = __webpack_require__(481)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(461)
+	var __vue_template__ = __webpack_require__(482)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/web.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/web.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-74e76ca3"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,21 +91,21 @@
 
 /***/ },
 
-/***/ 385:
+/***/ 403:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(386)
+	__vue_styles__.push(__webpack_require__(404)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(387)
+	__vue_exports__ = __webpack_require__(405)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(388)
+	var __vue_template__ = __webpack_require__(406)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -113,22 +117,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/button.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/button.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4c6be341"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 386:
+/***/ 404:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -228,7 +236,7 @@
 
 /***/ },
 
-/***/ 387:
+/***/ 405:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -251,21 +259,21 @@
 
 /***/ },
 
-/***/ 388:
+/***/ 406:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 459:
+/***/ 480:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -298,7 +306,7 @@
 
 /***/ },
 
-/***/ 460:
+/***/ 481:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -350,10 +358,10 @@
 	//
 	//
 
-	var webview = __weex_require_module__('webview');
+	var webview = weex.requireModule('webview');
 	module.exports = {
 	  components: {
-	    button: __webpack_require__(385)
+	    button: __webpack_require__(403)
 	  },
 	  methods: {
 	    goback: function goback() {
@@ -376,19 +384,19 @@
 
 /***/ },
 
-/***/ 461:
+/***/ 482:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["wrapper"]
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["toolbar"],
 	    appendAsTree: true,
 	    attrs: {
 	      "append": "tree"
 	    }
-	  }, [_h('button', {
+	  }, [_c('button', {
 	    staticStyle: {
 	      marginLeft: "30px",
 	      width: "210px",
@@ -405,7 +413,7 @@
 	        _vm.goback($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    staticStyle: {
 	      marginLeft: "30px",
 	      width: "210px",
@@ -422,7 +430,7 @@
 	        _vm.goforward($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    staticStyle: {
 	      marginLeft: "30px",
 	      width: "210px",
@@ -439,7 +447,7 @@
 	        _vm.refresh($event)
 	      }
 	    }
-	  })]), _h('web', {
+	  })], 1), _c('web', {
 	    ref: "webview",
 	    staticClass: ["content"],
 	    attrs: {
@@ -450,7 +458,7 @@
 	      "pagefinish": _vm.finishload,
 	      "error": _vm.failload
 	    }
-	  })])
+	  })], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/hello.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/hello.js b/ios/playground/bundlejs/vue/hello.js
index efe0372..caaec75 100644
--- a/ios/playground/bundlejs/vue/hello.js
+++ b/ios/playground/bundlejs/vue/hello.js
@@ -51,7 +51,7 @@
 	var __vue_styles__ = []
 
 	/* template */
-	var __vue_template__ = __webpack_require__(462)
+	var __vue_template__ = __webpack_require__(483)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -63,15 +63,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/hello.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/hello.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -80,17 +83,17 @@
 
 /***/ },
 
-/***/ 462:
+/***/ 483:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
 	  return _vm._m(0)
 	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', {
+	  return _c('div', [_c('text', {
 	    staticStyle: {
 	      fontSize: "100px"
 	    }
-	  }, ["Hello World."])])
+	  }, [_vm._v("Hello World.")])])
 	}]}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/iconfont.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/iconfont.js b/ios/playground/bundlejs/vue/iconfont.js
index 13ffee7..764b96c 100644
--- a/ios/playground/bundlejs/vue/iconfont.js
+++ b/ios/playground/bundlejs/vue/iconfont.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(463)
+	__vue_styles__.push(__webpack_require__(484)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(464)
+	__vue_exports__ = __webpack_require__(485)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(465)
+	var __vue_template__ = __webpack_require__(486)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/iconfont.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/iconfont.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-df4234e0"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 463:
+/***/ 484:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -115,7 +119,7 @@
 
 /***/ },
 
-/***/ 464:
+/***/ 485:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -156,7 +160,7 @@
 	//
 	//
 
-	var domModule = __weex_require_module__('dom');
+	var domModule = weex.requireModule('dom');
 	module.exports = {
 	  created: function created() {
 	    //\u76ee\u524d\u652f\u6301ttf\u3001woff\u6587\u4ef6\uff0c\u4e0d\u652f\u6301svg\u3001eot\u7c7b\u578b
@@ -181,21 +185,21 @@
 
 /***/ },
 
-/***/ 465:
+/***/ 486:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
 	  return _vm._m(0)
 	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', {
+	  return _c('div', [_c('text', {
 	    staticClass: ["title1"]
-	  }, ["Assets: \ue606\ue605\ue604\ue603\ue602\ue601\ue600"]), _h('text', {
+	  }, [_vm._v("Assets: \ue606\ue605\ue604\ue603\ue602\ue601\ue600")]), _c('text', {
 	    staticClass: ["title2"]
-	  }, ["http ttf: \ue606\ue605\ue604\ue603\ue602\ue601\ue600"]), _h('text', {
+	  }, [_vm._v("http ttf: \ue606\ue605\ue604\ue603\ue602\ue601\ue600")]), _c('text', {
 	    staticClass: ["title3"]
-	  }, ["http woff: \ue606\ue605\ue604\ue603\ue602\ue601\ue600"]), _h('text', {
+	  }, [_vm._v("http woff: \ue606\ue605\ue604\ue603\ue602\ue601\ue600")]), _c('text', {
 	    staticClass: ["title4"]
-	  }, ["file: \ue606\ue605\ue604\ue603\ue602\ue601\ue600"])])
+	  }, [_vm._v("file: \ue606\ue605\ue604\ue603\ue602\ue601\ue600")])])
 	}]}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/index.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/index.js b/ios/playground/bundlejs/vue/index.js
index b8adb93..91d32ae 100644
--- a/ios/playground/bundlejs/vue/index.js
+++ b/ios/playground/bundlejs/vue/index.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(466)
+	__vue_exports__ = __webpack_require__(487)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(478)
+	var __vue_template__ = __webpack_require__(499)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/index.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/index.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,7 +86,7 @@
 
 /***/ },
 
-/***/ 419:
+/***/ 437:
 /***/ function(module, exports) {
 
 	exports.getBaseURL = function (vm) {
@@ -107,7 +110,7 @@
 	    }
 	    nativeBase = 'http://' + host + '/' + vm.dir + '/build/';
 	  }
-	  var h5Base = './index.html?page=./' + vm.dir + '/build/';
+	  var h5Base = './vue.html?page=./' + vm.dir + '/build/';
 	  // in Native
 	  var base = nativeBase;
 	  if (typeof window === 'object') {
@@ -120,11 +123,13 @@
 
 /***/ },
 
-/***/ 466:
+/***/ 487:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
 
+	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
+
 	//
 	//
 	//
@@ -132,40 +137,41 @@
 
 	module.exports = {
 	  data: function data() {
+	    var root = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' ? 'vue-web/vue' : 'vue';
 	    return {
 	      items: [
 	      // common
-	      { name: 'vue/syntax/hello-world', title: 'Hello World' }, { name: 'vue/style/index', title: 'Common Style' }, { name: 'vue/animation', title: 'Animation' },
+	      { name: root + '/syntax/hello-world', title: 'Hello World' }, { name: root + '/style/index', title: 'Common Style' }, { name: root + '/animation', title: 'Animation' },
 
 	      // component
-	      { name: 'vue/components/text', title: 'Text' }, { name: 'vue/components/image', title: 'Image' }, { name: 'vue/components/input', title: 'Input' }, { name: 'vue/components/scroller', title: 'Scroller' }, { name: 'vue/components/list', title: 'List' }, { name: 'vue/components/slider', title: 'Slider' }, { name: 'vue/components/a', title: 'A' }, { name: 'vue/components/video', title: 'Video' }, { name: 'vue/components/countdown', title: 'Countdown' }, { name: 'vue/components/marquee', title: 'Marquee' }, { name: 'vue/components/web', title: 'Web' }, { name: 'vue/components/navigator', title: 'Navigator' }, { name: 'vue/components/tabbar', title: 'Tabbar' },
+	      { name: root + '/components/text', title: 'Text' }, { name: root + '/components/image', title: 'Image' }, { name: root + '/components/input', title: 'Input' }, { name: root + '/components/scroller', title: 'Scroller' }, { name: root + '/components/list', title: 'List' }, { name: root + '/components/waterfall', title: 'Waterfall' }, { name: root + '/components/slider', title: 'Slider' }, { name: root + '/components/a', title: 'A' }, { name: root + '/components/video', title: 'Video' }, { name: root + '/components/countdown', title: 'Countdown' }, { name: root + '/components/marquee', title: 'Marquee' }, { name: root + '/components/web', title: 'Web' }, { name: root + '/components/navigator', title: 'Navigator' }, { name: root + '/components/tabbar', title: 'Tabbar' },
 
 	      // module
-	      { name: 'vue/modules/instance-api', title: 'Instance API' }, { name: 'vue/modules/modal', title: 'Modal' }, { name: 'vue/modules/stream', title: 'Stream' }, { name: 'vue/modules/storage', title: 'Storage' },
+	      { name: root + '/modules/instance-api', title: 'Instance API' }, { name: root + '/modules/modal', title: 'Modal' }, { name: root + '/modules/stream', title: 'Stream' }, { name: root + '/modules/storage', title: 'Storage' },
 	      // {name: 'module/clipboard', title: 'Clipboard'}, // 0.8 , developing
 
 	      // showcase
-	      { name: 'vue/showcase/progress', title: 'Progress Bar' }, { name: 'vue/showcase/itemlist', title: 'List (Advanced)' }, { name: 'vue/showcase/calculator', title: 'Calculator' }]
+	      { name: root + '/showcase/boxshadow', title: 'boxshadow' }, { name: root + '/showcase/progress', title: 'Progress Bar' }, { name: root + '/showcase/itemlist', title: 'List (Advanced)' }, { name: root + '/showcase/calculator', title: 'Calculator' }]
 	    };
 	  },
 	  components: {
-	    exampleList: __webpack_require__(467)
+	    exampleList: __webpack_require__(488)
 	  }
 	};
 
 /***/ },
 
-/***/ 467:
+/***/ 488:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(468)
+	__vue_exports__ = __webpack_require__(489)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(477)
+	var __vue_template__ = __webpack_require__(498)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -177,22 +183,25 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/example-list.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/example-list.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 468:
+/***/ 489:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -206,7 +215,7 @@
 	//
 	//
 
-	var getBaseURL = __webpack_require__(419).getBaseURL;
+	var getBaseURL = __webpack_require__(437).getBaseURL;
 	module.exports = {
 	  props: {
 	    dir: {
@@ -217,7 +226,7 @@
 	    }
 	  },
 	  components: {
-	    exampleListItem: __webpack_require__(469)
+	    exampleListItem: __webpack_require__(490)
 	  },
 	  created: function created() {
 	    var base = getBaseURL(this);
@@ -232,21 +241,21 @@
 
 /***/ },
 
-/***/ 469:
+/***/ 490:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(470)
+	__vue_styles__.push(__webpack_require__(491)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(471)
+	__vue_exports__ = __webpack_require__(492)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(476)
+	var __vue_template__ = __webpack_require__(497)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -258,22 +267,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/example-list-item.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/example-list-item.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-1f417e80"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 470:
+/***/ 491:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -285,7 +298,7 @@
 
 /***/ },
 
-/***/ 471:
+/***/ 492:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -304,14 +317,14 @@
 	//
 	//
 
-	var event = __weex_require_module__('event');
+	var event = weex.requireModule('event');
 	module.exports = {
 	  props: {
 	    title: { default: '456' },
 	    url: { default: '' }
 	  },
 	  components: {
-	    listItem: __webpack_require__(472)
+	    listItem: __webpack_require__(493)
 	  },
 	  methods: {
 	    redirect: function redirect() {
@@ -322,21 +335,21 @@
 
 /***/ },
 
-/***/ 472:
+/***/ 493:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(473)
+	__vue_styles__.push(__webpack_require__(494)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(474)
+	__vue_exports__ = __webpack_require__(495)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(475)
+	var __vue_template__ = __webpack_require__(496)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -348,22 +361,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/list-item.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/list-item.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-917012ba"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 473:
+/***/ 494:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -381,7 +398,7 @@
 
 /***/ },
 
-/***/ 474:
+/***/ 495:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -420,11 +437,11 @@
 
 /***/ },
 
-/***/ 475:
+/***/ 496:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["item"],
 	    style: {
 	      backgroundColor: _vm.bgColor
@@ -434,55 +451,55 @@
 	      "touchstart": _vm.touchstart,
 	      "touchend": _vm.touchend
 	    }
-	  }, [_vm._t("default")])
+	  }, [_vm._t("default")], 2)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 476:
+/***/ 497:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('list-item', {
+	  return _c('list-item', {
 	    on: {
 	      "click": _vm.redirect
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["item-txt"]
-	  }, [_vm._s(_vm.title)])])
+	  }, [_vm._v(_vm._s(_vm.title))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 477:
+/***/ 498:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('list', [_vm._l((_vm.items), function(item) {
-	    return _h('cell', {
+	  return _c('list', _vm._l((_vm.items), function(item) {
+	    return _c('cell', {
 	      appendAsTree: true,
 	      attrs: {
 	        "append": "tree"
 	      }
-	    }, [_h('example-list-item', {
+	    }, [_c('example-list-item', {
 	      attrs: {
 	        "title": item.title,
 	        "url": item.url
 	      }
-	    })])
-	  })])
+	    })], 1)
+	  }))
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 478:
+/***/ 499:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('example-list', {
+	  return _c('example-list', {
 	    attrs: {
 	      "items": _vm.items,
 	      "dir": "examples"

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/modules/clipboard.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/modules/clipboard.js b/ios/playground/bundlejs/vue/modules/clipboard.js
index b791c2a..d299838 100644
--- a/ios/playground/bundlejs/vue/modules/clipboard.js
+++ b/ios/playground/bundlejs/vue/modules/clipboard.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(479)
+	__vue_exports__ = __webpack_require__(500)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(480)
+	var __vue_template__ = __webpack_require__(501)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/modules/clipboard.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/modules/clipboard.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,27 +255,27 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 385:
+/***/ 403:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(386)
+	__vue_styles__.push(__webpack_require__(404)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(387)
+	__vue_exports__ = __webpack_require__(405)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(388)
+	var __vue_template__ = __webpack_require__(406)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -280,22 +287,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/button.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/button.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4c6be341"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 386:
+/***/ 404:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -395,7 +406,7 @@
 
 /***/ },
 
-/***/ 387:
+/***/ 405:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -418,35 +429,35 @@
 
 /***/ },
 
-/***/ 388:
+/***/ 406:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 391:
+/***/ 409:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(392)
+	__vue_styles__.push(__webpack_require__(410)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(393)
+	__vue_exports__ = __webpack_require__(411)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(394)
+	var __vue_template__ = __webpack_require__(412)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -458,22 +469,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/tip.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/tip.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-6ec9a69c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 392:
+/***/ 410:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -519,7 +534,7 @@
 
 /***/ },
 
-/***/ 393:
+/***/ 411:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -541,21 +556,21 @@
 
 /***/ },
 
-/***/ 394:
+/***/ 412:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['tip', 'tip-' + _vm.type]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['tip-txt', 'tip-txt-' + _vm.type]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 479:
+/***/ 500:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -582,8 +597,8 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
-	var clipboard = __weex_require_module__('clipboard');
+	var modal = weex.requireModule('modal');
+	var clipboard = weex.requireModule('clipboard');
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -593,9 +608,9 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    tip: __webpack_require__(391),
-	    button: __webpack_require__(385)
+	    panel: __webpack_require__(399),
+	    tip: __webpack_require__(409),
+	    button: __webpack_require__(403)
 	  },
 	  mounted: function mounted() {
 	    this.tips = "1. Just click COPY button. It will auto generate a string with random text, and copy to system clipboard. \n 2. do copy in another app, then come back and click PASTE button.";
@@ -622,25 +637,25 @@
 
 /***/ },
 
-/***/ 480:
+/***/ 501:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "Clipboard",
 	      "type": "primary"
 	    }
-	  }, [_h('panel', {
+	  }, [_c('panel', {
 	    attrs: {
 	      "title": "Copy to clipboard5"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticStyle: {
 	      lineHeight: "40px",
 	      fontSize: "28px"
 	    }
-	  }, [_vm._s(_vm.textToCopy)]), _h('button', {
+	  }, [_vm._v(_vm._s(_vm.textToCopy))]), _c('button', {
 	    attrs: {
 	      "type": "info",
 	      "size": "middle",
@@ -651,16 +666,16 @@
 	        _vm.doCopy($event)
 	      }
 	    }
-	  })]), _h('panel', {
+	  })], 1), _c('panel', {
 	    attrs: {
 	      "title": "Paste from clipboard"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticStyle: {
 	      lineHeight: "40px",
 	      fontSize: "28px"
 	    }
-	  }, [_vm._s(_vm.textFromPaste)]), _h('button', {
+	  }, [_vm._v(_vm._s(_vm.textFromPaste))]), _c('button', {
 	    attrs: {
 	      "type": "info",
 	      "size": "middle",
@@ -671,18 +686,18 @@
 	        _vm.doPaste($event)
 	      }
 	    }
-	  })]), _h('panel', {
+	  })], 1), _c('panel', {
 	    attrs: {
 	      "title": "Result"
 	    }
-	  }, [_h('tip', {
+	  }, [_c('tip', {
 	    staticStyle: {
 	      marginBottom: "20px"
 	    },
 	    attrs: {
 	      "value": _vm.tips
 	    }
-	  })])])])
+	  })], 1)], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/modules/instance-api.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/modules/instance-api.js b/ios/playground/bundlejs/vue/modules/instance-api.js
index 316d553..6c3f0b8 100644
--- a/ios/playground/bundlejs/vue/modules/instance-api.js
+++ b/ios/playground/bundlejs/vue/modules/instance-api.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(481)
+	__vue_exports__ = __webpack_require__(502)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(482)
+	var __vue_template__ = __webpack_require__(503)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/modules/instance-api.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/modules/instance-api.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,13 +255,13 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 481:
+/***/ 502:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -275,7 +282,7 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381)
+	    panel: __webpack_require__(399)
 	  },
 	  created: function created() {
 	    var config = this.$getConfig();
@@ -286,16 +293,16 @@
 
 /***/ },
 
-/***/ 482:
+/***/ 503:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "$getConfig()",
 	      "type": "primary"
 	    }
-	  }, [_h('text', [_vm._s(_vm.config)])])])
+	  }, [_c('text', [_vm._v(_vm._s(_vm.config))])])], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 


[26/50] [abbrv] incubator-weex git commit: * [html5] add flow-type supported.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/vue_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/vue_vx.x.x.js b/flow-typed/npm/vue_vx.x.x.js
new file mode 100644
index 0000000..f732ac3
--- /dev/null
+++ b/flow-typed/npm/vue_vx.x.x.js
@@ -0,0 +1,1089 @@
+// flow-typed signature: d5d72228883a6974bc67491fd2f0fac4
+// flow-typed version: <<STUB>>/vue_v^2.2.6/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'vue'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'vue' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'vue/dist/vue.common' {
+  declare module.exports: any;
+}
+
+declare module 'vue/dist/vue.common.min' {
+  declare module.exports: any;
+}
+
+declare module 'vue/dist/vue.esm' {
+  declare module.exports: any;
+}
+
+declare module 'vue/dist/vue' {
+  declare module.exports: any;
+}
+
+declare module 'vue/dist/vue.min' {
+  declare module.exports: any;
+}
+
+declare module 'vue/dist/vue.runtime.common' {
+  declare module.exports: any;
+}
+
+declare module 'vue/dist/vue.runtime.esm' {
+  declare module.exports: any;
+}
+
+declare module 'vue/dist/vue.runtime' {
+  declare module.exports: any;
+}
+
+declare module 'vue/dist/vue.runtime.min' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/codegen/events' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/codegen/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/directives/bind' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/directives/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/directives/model' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/error-detector' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/helpers' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/optimizer' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/parser/entity-decoder' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/parser/filter-parser' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/parser/html-parser' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/parser/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/compiler/parser/text-parser' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/components/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/components/keep-alive' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/config' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/global-api/assets' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/global-api/extend' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/global-api/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/global-api/mixin' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/global-api/use' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/events' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/init' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/inject' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/lifecycle' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/proxy' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/render-helpers/bind-object-props' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/render-helpers/check-keycodes' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/render-helpers/render-list' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/render-helpers/render-slot' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/render-helpers/render-static' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/render-helpers/resolve-filter' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/render-helpers/resolve-slots' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/render' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/instance/state' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/observer/array' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/observer/dep' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/observer/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/observer/scheduler' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/observer/watcher' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/util/debug' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/util/env' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/util/error' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/util/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/util/lang' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/util/options' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/util/perf' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/util/props' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/create-component' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/create-element' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/helpers/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/helpers/merge-hook' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/helpers/normalize-children' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/helpers/update-listeners' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/modules/directives' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/modules/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/modules/ref' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/patch' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/core/vdom/vnode' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/entries/web-compiler' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/entries/web-runtime-with-compiler' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/entries/web-runtime' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/entries/web-server-renderer' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/entries/weex-compiler' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/entries/weex-factory' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/entries/weex-framework' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/compiler/directives/html' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/compiler/directives/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/compiler/directives/model' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/compiler/directives/text' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/compiler/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/compiler/modules/class' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/compiler/modules/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/compiler/modules/style' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/compiler/util' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/class-util' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/components/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/components/transition-group' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/components/transition' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/directives/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/directives/model' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/directives/show' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/modules/attrs' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/modules/class' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/modules/dom-props' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/modules/events' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/modules/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/modules/style' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/modules/transition' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/node-ops' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/patch' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/runtime/transition-util' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/server/directives/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/server/directives/show' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/server/modules/attrs' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/server/modules/class' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/server/modules/dom-props' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/server/modules/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/server/modules/style' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/server/util' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/util/attrs' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/util/class' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/util/compat' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/util/element' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/util/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/web/util/style' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/compiler/directives/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/compiler/directives/model' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/compiler/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/compiler/modules/append' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/compiler/modules/class' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/compiler/modules/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/compiler/modules/props' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/compiler/modules/style' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/framework' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/components/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/components/transition-group' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/components/transition' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/directives/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/modules/attrs' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/modules/class' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/modules/events' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/modules/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/modules/style' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/modules/transition' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/node-ops' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/patch' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/runtime/text-node' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/platforms/weex/util/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/server/create-bundle-renderer' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/server/create-bundle-runner' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/server/create-renderer' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/server/render-context' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/server/render-stream' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/server/render' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/server/source-map-support' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/server/write' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/sfc/parser' {
+  declare module.exports: any;
+}
+
+declare module 'vue/src/shared/util' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'vue/dist/vue.common.js' {
+  declare module.exports: $Exports<'vue/dist/vue.common'>;
+}
+declare module 'vue/dist/vue.common.min.js' {
+  declare module.exports: $Exports<'vue/dist/vue.common.min'>;
+}
+declare module 'vue/dist/vue.esm.js' {
+  declare module.exports: $Exports<'vue/dist/vue.esm'>;
+}
+declare module 'vue/dist/vue.js' {
+  declare module.exports: $Exports<'vue/dist/vue'>;
+}
+declare module 'vue/dist/vue.min.js' {
+  declare module.exports: $Exports<'vue/dist/vue.min'>;
+}
+declare module 'vue/dist/vue.runtime.common.js' {
+  declare module.exports: $Exports<'vue/dist/vue.runtime.common'>;
+}
+declare module 'vue/dist/vue.runtime.esm.js' {
+  declare module.exports: $Exports<'vue/dist/vue.runtime.esm'>;
+}
+declare module 'vue/dist/vue.runtime.js' {
+  declare module.exports: $Exports<'vue/dist/vue.runtime'>;
+}
+declare module 'vue/dist/vue.runtime.min.js' {
+  declare module.exports: $Exports<'vue/dist/vue.runtime.min'>;
+}
+declare module 'vue/src/compiler/codegen/events.js' {
+  declare module.exports: $Exports<'vue/src/compiler/codegen/events'>;
+}
+declare module 'vue/src/compiler/codegen/index.js' {
+  declare module.exports: $Exports<'vue/src/compiler/codegen/index'>;
+}
+declare module 'vue/src/compiler/directives/bind.js' {
+  declare module.exports: $Exports<'vue/src/compiler/directives/bind'>;
+}
+declare module 'vue/src/compiler/directives/index.js' {
+  declare module.exports: $Exports<'vue/src/compiler/directives/index'>;
+}
+declare module 'vue/src/compiler/directives/model.js' {
+  declare module.exports: $Exports<'vue/src/compiler/directives/model'>;
+}
+declare module 'vue/src/compiler/error-detector.js' {
+  declare module.exports: $Exports<'vue/src/compiler/error-detector'>;
+}
+declare module 'vue/src/compiler/helpers.js' {
+  declare module.exports: $Exports<'vue/src/compiler/helpers'>;
+}
+declare module 'vue/src/compiler/index.js' {
+  declare module.exports: $Exports<'vue/src/compiler/index'>;
+}
+declare module 'vue/src/compiler/optimizer.js' {
+  declare module.exports: $Exports<'vue/src/compiler/optimizer'>;
+}
+declare module 'vue/src/compiler/parser/entity-decoder.js' {
+  declare module.exports: $Exports<'vue/src/compiler/parser/entity-decoder'>;
+}
+declare module 'vue/src/compiler/parser/filter-parser.js' {
+  declare module.exports: $Exports<'vue/src/compiler/parser/filter-parser'>;
+}
+declare module 'vue/src/compiler/parser/html-parser.js' {
+  declare module.exports: $Exports<'vue/src/compiler/parser/html-parser'>;
+}
+declare module 'vue/src/compiler/parser/index.js' {
+  declare module.exports: $Exports<'vue/src/compiler/parser/index'>;
+}
+declare module 'vue/src/compiler/parser/text-parser.js' {
+  declare module.exports: $Exports<'vue/src/compiler/parser/text-parser'>;
+}
+declare module 'vue/src/core/components/index.js' {
+  declare module.exports: $Exports<'vue/src/core/components/index'>;
+}
+declare module 'vue/src/core/components/keep-alive.js' {
+  declare module.exports: $Exports<'vue/src/core/components/keep-alive'>;
+}
+declare module 'vue/src/core/config.js' {
+  declare module.exports: $Exports<'vue/src/core/config'>;
+}
+declare module 'vue/src/core/global-api/assets.js' {
+  declare module.exports: $Exports<'vue/src/core/global-api/assets'>;
+}
+declare module 'vue/src/core/global-api/extend.js' {
+  declare module.exports: $Exports<'vue/src/core/global-api/extend'>;
+}
+declare module 'vue/src/core/global-api/index.js' {
+  declare module.exports: $Exports<'vue/src/core/global-api/index'>;
+}
+declare module 'vue/src/core/global-api/mixin.js' {
+  declare module.exports: $Exports<'vue/src/core/global-api/mixin'>;
+}
+declare module 'vue/src/core/global-api/use.js' {
+  declare module.exports: $Exports<'vue/src/core/global-api/use'>;
+}
+declare module 'vue/src/core/index.js' {
+  declare module.exports: $Exports<'vue/src/core/index'>;
+}
+declare module 'vue/src/core/instance/events.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/events'>;
+}
+declare module 'vue/src/core/instance/index.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/index'>;
+}
+declare module 'vue/src/core/instance/init.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/init'>;
+}
+declare module 'vue/src/core/instance/inject.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/inject'>;
+}
+declare module 'vue/src/core/instance/lifecycle.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/lifecycle'>;
+}
+declare module 'vue/src/core/instance/proxy.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/proxy'>;
+}
+declare module 'vue/src/core/instance/render-helpers/bind-object-props.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/render-helpers/bind-object-props'>;
+}
+declare module 'vue/src/core/instance/render-helpers/check-keycodes.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/render-helpers/check-keycodes'>;
+}
+declare module 'vue/src/core/instance/render-helpers/render-list.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/render-helpers/render-list'>;
+}
+declare module 'vue/src/core/instance/render-helpers/render-slot.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/render-helpers/render-slot'>;
+}
+declare module 'vue/src/core/instance/render-helpers/render-static.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/render-helpers/render-static'>;
+}
+declare module 'vue/src/core/instance/render-helpers/resolve-filter.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/render-helpers/resolve-filter'>;
+}
+declare module 'vue/src/core/instance/render-helpers/resolve-slots.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/render-helpers/resolve-slots'>;
+}
+declare module 'vue/src/core/instance/render.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/render'>;
+}
+declare module 'vue/src/core/instance/state.js' {
+  declare module.exports: $Exports<'vue/src/core/instance/state'>;
+}
+declare module 'vue/src/core/observer/array.js' {
+  declare module.exports: $Exports<'vue/src/core/observer/array'>;
+}
+declare module 'vue/src/core/observer/dep.js' {
+  declare module.exports: $Exports<'vue/src/core/observer/dep'>;
+}
+declare module 'vue/src/core/observer/index.js' {
+  declare module.exports: $Exports<'vue/src/core/observer/index'>;
+}
+declare module 'vue/src/core/observer/scheduler.js' {
+  declare module.exports: $Exports<'vue/src/core/observer/scheduler'>;
+}
+declare module 'vue/src/core/observer/watcher.js' {
+  declare module.exports: $Exports<'vue/src/core/observer/watcher'>;
+}
+declare module 'vue/src/core/util/debug.js' {
+  declare module.exports: $Exports<'vue/src/core/util/debug'>;
+}
+declare module 'vue/src/core/util/env.js' {
+  declare module.exports: $Exports<'vue/src/core/util/env'>;
+}
+declare module 'vue/src/core/util/error.js' {
+  declare module.exports: $Exports<'vue/src/core/util/error'>;
+}
+declare module 'vue/src/core/util/index.js' {
+  declare module.exports: $Exports<'vue/src/core/util/index'>;
+}
+declare module 'vue/src/core/util/lang.js' {
+  declare module.exports: $Exports<'vue/src/core/util/lang'>;
+}
+declare module 'vue/src/core/util/options.js' {
+  declare module.exports: $Exports<'vue/src/core/util/options'>;
+}
+declare module 'vue/src/core/util/perf.js' {
+  declare module.exports: $Exports<'vue/src/core/util/perf'>;
+}
+declare module 'vue/src/core/util/props.js' {
+  declare module.exports: $Exports<'vue/src/core/util/props'>;
+}
+declare module 'vue/src/core/vdom/create-component.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/create-component'>;
+}
+declare module 'vue/src/core/vdom/create-element.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/create-element'>;
+}
+declare module 'vue/src/core/vdom/helpers/index.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/helpers/index'>;
+}
+declare module 'vue/src/core/vdom/helpers/merge-hook.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/helpers/merge-hook'>;
+}
+declare module 'vue/src/core/vdom/helpers/normalize-children.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/helpers/normalize-children'>;
+}
+declare module 'vue/src/core/vdom/helpers/update-listeners.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/helpers/update-listeners'>;
+}
+declare module 'vue/src/core/vdom/modules/directives.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/modules/directives'>;
+}
+declare module 'vue/src/core/vdom/modules/index.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/modules/index'>;
+}
+declare module 'vue/src/core/vdom/modules/ref.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/modules/ref'>;
+}
+declare module 'vue/src/core/vdom/patch.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/patch'>;
+}
+declare module 'vue/src/core/vdom/vnode.js' {
+  declare module.exports: $Exports<'vue/src/core/vdom/vnode'>;
+}
+declare module 'vue/src/entries/web-compiler.js' {
+  declare module.exports: $Exports<'vue/src/entries/web-compiler'>;
+}
+declare module 'vue/src/entries/web-runtime-with-compiler.js' {
+  declare module.exports: $Exports<'vue/src/entries/web-runtime-with-compiler'>;
+}
+declare module 'vue/src/entries/web-runtime.js' {
+  declare module.exports: $Exports<'vue/src/entries/web-runtime'>;
+}
+declare module 'vue/src/entries/web-server-renderer.js' {
+  declare module.exports: $Exports<'vue/src/entries/web-server-renderer'>;
+}
+declare module 'vue/src/entries/weex-compiler.js' {
+  declare module.exports: $Exports<'vue/src/entries/weex-compiler'>;
+}
+declare module 'vue/src/entries/weex-factory.js' {
+  declare module.exports: $Exports<'vue/src/entries/weex-factory'>;
+}
+declare module 'vue/src/entries/weex-framework.js' {
+  declare module.exports: $Exports<'vue/src/entries/weex-framework'>;
+}
+declare module 'vue/src/platforms/web/compiler/directives/html.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/compiler/directives/html'>;
+}
+declare module 'vue/src/platforms/web/compiler/directives/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/compiler/directives/index'>;
+}
+declare module 'vue/src/platforms/web/compiler/directives/model.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/compiler/directives/model'>;
+}
+declare module 'vue/src/platforms/web/compiler/directives/text.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/compiler/directives/text'>;
+}
+declare module 'vue/src/platforms/web/compiler/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/compiler/index'>;
+}
+declare module 'vue/src/platforms/web/compiler/modules/class.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/compiler/modules/class'>;
+}
+declare module 'vue/src/platforms/web/compiler/modules/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/compiler/modules/index'>;
+}
+declare module 'vue/src/platforms/web/compiler/modules/style.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/compiler/modules/style'>;
+}
+declare module 'vue/src/platforms/web/compiler/util.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/compiler/util'>;
+}
+declare module 'vue/src/platforms/web/runtime/class-util.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/class-util'>;
+}
+declare module 'vue/src/platforms/web/runtime/components/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/components/index'>;
+}
+declare module 'vue/src/platforms/web/runtime/components/transition-group.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/components/transition-group'>;
+}
+declare module 'vue/src/platforms/web/runtime/components/transition.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/components/transition'>;
+}
+declare module 'vue/src/platforms/web/runtime/directives/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/directives/index'>;
+}
+declare module 'vue/src/platforms/web/runtime/directives/model.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/directives/model'>;
+}
+declare module 'vue/src/platforms/web/runtime/directives/show.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/directives/show'>;
+}
+declare module 'vue/src/platforms/web/runtime/modules/attrs.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/modules/attrs'>;
+}
+declare module 'vue/src/platforms/web/runtime/modules/class.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/modules/class'>;
+}
+declare module 'vue/src/platforms/web/runtime/modules/dom-props.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/modules/dom-props'>;
+}
+declare module 'vue/src/platforms/web/runtime/modules/events.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/modules/events'>;
+}
+declare module 'vue/src/platforms/web/runtime/modules/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/modules/index'>;
+}
+declare module 'vue/src/platforms/web/runtime/modules/style.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/modules/style'>;
+}
+declare module 'vue/src/platforms/web/runtime/modules/transition.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/modules/transition'>;
+}
+declare module 'vue/src/platforms/web/runtime/node-ops.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/node-ops'>;
+}
+declare module 'vue/src/platforms/web/runtime/patch.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/patch'>;
+}
+declare module 'vue/src/platforms/web/runtime/transition-util.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/runtime/transition-util'>;
+}
+declare module 'vue/src/platforms/web/server/directives/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/server/directives/index'>;
+}
+declare module 'vue/src/platforms/web/server/directives/show.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/server/directives/show'>;
+}
+declare module 'vue/src/platforms/web/server/modules/attrs.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/server/modules/attrs'>;
+}
+declare module 'vue/src/platforms/web/server/modules/class.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/server/modules/class'>;
+}
+declare module 'vue/src/platforms/web/server/modules/dom-props.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/server/modules/dom-props'>;
+}
+declare module 'vue/src/platforms/web/server/modules/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/server/modules/index'>;
+}
+declare module 'vue/src/platforms/web/server/modules/style.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/server/modules/style'>;
+}
+declare module 'vue/src/platforms/web/server/util.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/server/util'>;
+}
+declare module 'vue/src/platforms/web/util/attrs.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/util/attrs'>;
+}
+declare module 'vue/src/platforms/web/util/class.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/util/class'>;
+}
+declare module 'vue/src/platforms/web/util/compat.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/util/compat'>;
+}
+declare module 'vue/src/platforms/web/util/element.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/util/element'>;
+}
+declare module 'vue/src/platforms/web/util/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/util/index'>;
+}
+declare module 'vue/src/platforms/web/util/style.js' {
+  declare module.exports: $Exports<'vue/src/platforms/web/util/style'>;
+}
+declare module 'vue/src/platforms/weex/compiler/directives/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/compiler/directives/index'>;
+}
+declare module 'vue/src/platforms/weex/compiler/directives/model.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/compiler/directives/model'>;
+}
+declare module 'vue/src/platforms/weex/compiler/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/compiler/index'>;
+}
+declare module 'vue/src/platforms/weex/compiler/modules/append.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/compiler/modules/append'>;
+}
+declare module 'vue/src/platforms/weex/compiler/modules/class.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/compiler/modules/class'>;
+}
+declare module 'vue/src/platforms/weex/compiler/modules/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/compiler/modules/index'>;
+}
+declare module 'vue/src/platforms/weex/compiler/modules/props.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/compiler/modules/props'>;
+}
+declare module 'vue/src/platforms/weex/compiler/modules/style.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/compiler/modules/style'>;
+}
+declare module 'vue/src/platforms/weex/framework.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/framework'>;
+}
+declare module 'vue/src/platforms/weex/runtime/components/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/components/index'>;
+}
+declare module 'vue/src/platforms/weex/runtime/components/transition-group.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/components/transition-group'>;
+}
+declare module 'vue/src/platforms/weex/runtime/components/transition.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/components/transition'>;
+}
+declare module 'vue/src/platforms/weex/runtime/directives/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/directives/index'>;
+}
+declare module 'vue/src/platforms/weex/runtime/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/index'>;
+}
+declare module 'vue/src/platforms/weex/runtime/modules/attrs.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/modules/attrs'>;
+}
+declare module 'vue/src/platforms/weex/runtime/modules/class.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/modules/class'>;
+}
+declare module 'vue/src/platforms/weex/runtime/modules/events.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/modules/events'>;
+}
+declare module 'vue/src/platforms/weex/runtime/modules/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/modules/index'>;
+}
+declare module 'vue/src/platforms/weex/runtime/modules/style.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/modules/style'>;
+}
+declare module 'vue/src/platforms/weex/runtime/modules/transition.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/modules/transition'>;
+}
+declare module 'vue/src/platforms/weex/runtime/node-ops.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/node-ops'>;
+}
+declare module 'vue/src/platforms/weex/runtime/patch.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/patch'>;
+}
+declare module 'vue/src/platforms/weex/runtime/text-node.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/runtime/text-node'>;
+}
+declare module 'vue/src/platforms/weex/util/index.js' {
+  declare module.exports: $Exports<'vue/src/platforms/weex/util/index'>;
+}
+declare module 'vue/src/server/create-bundle-renderer.js' {
+  declare module.exports: $Exports<'vue/src/server/create-bundle-renderer'>;
+}
+declare module 'vue/src/server/create-bundle-runner.js' {
+  declare module.exports: $Exports<'vue/src/server/create-bundle-runner'>;
+}
+declare module 'vue/src/server/create-renderer.js' {
+  declare module.exports: $Exports<'vue/src/server/create-renderer'>;
+}
+declare module 'vue/src/server/render-context.js' {
+  declare module.exports: $Exports<'vue/src/server/render-context'>;
+}
+declare module 'vue/src/server/render-stream.js' {
+  declare module.exports: $Exports<'vue/src/server/render-stream'>;
+}
+declare module 'vue/src/server/render.js' {
+  declare module.exports: $Exports<'vue/src/server/render'>;
+}
+declare module 'vue/src/server/source-map-support.js' {
+  declare module.exports: $Exports<'vue/src/server/source-map-support'>;
+}
+declare module 'vue/src/server/write.js' {
+  declare module.exports: $Exports<'vue/src/server/write'>;
+}
+declare module 'vue/src/sfc/parser.js' {
+  declare module.exports: $Exports<'vue/src/sfc/parser'>;
+}
+declare module 'vue/src/shared/util.js' {
+  declare module.exports: $Exports<'vue/src/shared/util'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/webdriver-client_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/webdriver-client_vx.x.x.js b/flow-typed/npm/webdriver-client_vx.x.x.js
new file mode 100644
index 0000000..06f7c94
--- /dev/null
+++ b/flow-typed/npm/webdriver-client_vx.x.x.js
@@ -0,0 +1,129 @@
+// flow-typed signature: 7ac8cb2fe661c731f94f577832a05560
+// flow-typed version: <<STUB>>/webdriver-client_v~1.0.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'webdriver-client'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'webdriver-client' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'webdriver-client/lib/common/initDriver' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/desktop/chrome/index' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/desktop/electron/index' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/helper' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/mobile/android/index' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/mobile/android/login' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/mobile/android/native' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/mobile/android/webview' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/mobile/ios/index' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/mobile/ios/login' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/mobile/ios/native' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/mobile/ios/webview' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/lib/webdriver-client' {
+  declare module.exports: any;
+}
+
+declare module 'webdriver-client/test/webdriver-client.test' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'webdriver-client/index' {
+  declare module.exports: $Exports<'webdriver-client'>;
+}
+declare module 'webdriver-client/index.js' {
+  declare module.exports: $Exports<'webdriver-client'>;
+}
+declare module 'webdriver-client/lib/common/initDriver.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/common/initDriver'>;
+}
+declare module 'webdriver-client/lib/desktop/chrome/index.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/desktop/chrome/index'>;
+}
+declare module 'webdriver-client/lib/desktop/electron/index.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/desktop/electron/index'>;
+}
+declare module 'webdriver-client/lib/helper.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/helper'>;
+}
+declare module 'webdriver-client/lib/mobile/android/index.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/mobile/android/index'>;
+}
+declare module 'webdriver-client/lib/mobile/android/login.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/mobile/android/login'>;
+}
+declare module 'webdriver-client/lib/mobile/android/native.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/mobile/android/native'>;
+}
+declare module 'webdriver-client/lib/mobile/android/webview.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/mobile/android/webview'>;
+}
+declare module 'webdriver-client/lib/mobile/ios/index.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/mobile/ios/index'>;
+}
+declare module 'webdriver-client/lib/mobile/ios/login.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/mobile/ios/login'>;
+}
+declare module 'webdriver-client/lib/mobile/ios/native.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/mobile/ios/native'>;
+}
+declare module 'webdriver-client/lib/mobile/ios/webview.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/mobile/ios/webview'>;
+}
+declare module 'webdriver-client/lib/webdriver-client.js' {
+  declare module.exports: $Exports<'webdriver-client/lib/webdriver-client'>;
+}
+declare module 'webdriver-client/test/webdriver-client.test.js' {
+  declare module.exports: $Exports<'webdriver-client/test/webdriver-client.test'>;
+}



[41/50] [abbrv] incubator-weex git commit: + [html5] test for vue-render.

Posted by so...@apache.org.
+ [html5] test for vue-render.


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

Branch: refs/heads/dev
Commit: b5ae07c7e410cb95acb413fa916a0613e307de8e
Parents: 91b8cc5
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Mar 31 14:35:28 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Mar 31 14:35:28 2017 +0800

----------------------------------------------------------------------
 .eslintrc                                   |   3 +-
 build/karma.vue.conf.js                     |  67 +++++++---
 html5/render/vue/components/a.js            |   3 +-
 html5/render/vue/components/div.js          |  10 +-
 html5/render/vue/components/image.js        |   2 +-
 html5/render/vue/mixins/base.js             |   7 +
 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 -
 package.json                                |   4 +-
 22 files changed, 353 insertions(+), 147 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/.eslintrc
----------------------------------------------------------------------
diff --git a/.eslintrc b/.eslintrc
index c8e3813..80d82b7 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -29,7 +29,8 @@
     "callNative": false,
     "callNativeModule": false,
     "callAddElement":false,
-    "callJS": false
+    "callJS": false,
+    "expect": false
   },
 
   "rules": {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/build/karma.vue.conf.js
----------------------------------------------------------------------
diff --git a/build/karma.vue.conf.js b/build/karma.vue.conf.js
index d71f579..c447026 100644
--- a/build/karma.vue.conf.js
+++ b/build/karma.vue.conf.js
@@ -1,44 +1,81 @@
-var webpackConfig = require('./webpack.vue.config')
+var flow = require('rollup-plugin-flow')
+var buble = require('rollup-plugin-buble')
+var replace = require('rollup-plugin-replace')
+var rollupConfig = require('./config')('weex-vue-render', true)
+var path = require('path')
 
-delete webpackConfig.entry
-delete webpackConfig.output
+function absolute (pa) {
+  return path.resolve(__dirname, pa)
+}
+
+var removeConfigs = ['entry', 'dest', 'banner']
+var removePlugins = ['eslint', 'uglify']
+
+removeConfigs.forEach(cfg => {
+  delete rollupConfig[cfg]
+})
+
+var plugins = rollupConfig.plugins.slice()
+rollupConfig.plugins = []
 
-webpackConfig.babel = {
-  plugins: [
-    ['coverage', { ignore: ['test/'] }]
-  ]
+for (var i = 0, l = plugins.length; i < l; i++) {
+  var plg = plugins[i]
+  var isRemove = false
+  if (removePlugins.length <= 0) {
+    rollupConfig.plugins.push(plg)
+  }
+  removePlugins.forEach(rp => {
+    if (plg.name === rp) {
+      isRemove = true
+    }
+  })
+  if (!isRemove) { rollupConfig.plugins.push(plg) }
 }
 
+rollupConfig.format = 'iife'
+rollupConfig.sourceMap = 'inline'
+
 module.exports = function (config) {
   config.set({
-    frameworks: ['mocha'],
+    frameworks: ['mocha', 'sinon-chai'],
     browsers: ['PhantomJS'],
     files: [
-      '../html5/test/render/index.js'
+      '../html5/test/render/vue/**/*.js'
+      // '../html5/test/render/vue/components/*.js'
+    ],
+
+    exclude: [
+      '../html5/test/render/vue/helper.js',
+      '../html5/test/render/vue/vender/**/*.js'
+      // '../html5/test/render/vue/examples/**/*.js'
     ],
 
+    // singleRun: false,
     singleRun: true,
 
     reporters: ['mocha', 'coverage'],
     coverageReporter: {
       reporters: [
-        { type: 'html', dir: '../coverage', subdir: 'vue-renderer' },
-        { type: 'text-summary', dir: '../coverage', subdir: 'vue-renderer' }
+        { type: 'html', dir: absolute('../coverage'), subdir: 'vue-renderer' },
+        { type: 'text-summary', dir: absolute('../coverage'), subdir: 'vue-renderer' }
       ]
     },
 
     preprocessors: {
-      '../html5/test/**/*.js': ['webpack', 'sourcemap']
+      '../html5/test/**/*.js': ['rollup', 'coverage'],
+      // '../html5/test/**/!(components|examples)/*.js': ['rollup', 'coverage']
     },
-    webpack: webpackConfig,
+    rollupPreprocessor: rollupConfig,
 
     plugins: [
       'karma-coverage',
       'karma-mocha',
       'karma-mocha-reporter',
       'karma-phantomjs-launcher',
-      'karma-sourcemap-loader',
-      'karma-webpack'
+      'karma-rollup-preprocessor',
+      'karma-sinon-chai'
+      // 'karma-sourcemap-loader',
+      // 'karma-webpack'
     ]
   })
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/render/vue/components/a.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/a.js b/html5/render/vue/components/a.js
index 784e52e..aa973fd 100644
--- a/html5/render/vue/components/a.js
+++ b/html5/render/vue/components/a.js
@@ -1,6 +1,7 @@
 // import { validateStyles } from '../validator'
 
 export default {
+  name: 'weex-a',
   props: {
     href: String
   },
@@ -16,6 +17,6 @@ export default {
       },
       on: this._createEventMap(),
       staticClass: 'weex-a weex-ct'
-    }, this.$slots.default)
+    }, this._trimTextNodeChildren(this.$slots.default))
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/render/vue/components/div.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/div.js b/html5/render/vue/components/div.js
index d697020..033ba9d 100644
--- a/html5/render/vue/components/div.js
+++ b/html5/render/vue/components/div.js
@@ -1,13 +1,7 @@
 // import { validateStyles } from '../validator'
 
-function trimTextNode (children) {
-  if (Array.isArray(children)) {
-    return children.filter(vnode => !!vnode.tag)
-  }
-  return children
-}
-
 export default {
+  name: 'weex-div',
   render (createElement) {
     /* istanbul ignore next */
     // if (process.env.NODE_ENV === 'development') {
@@ -17,6 +11,6 @@ export default {
       attrs: { 'weex-type': 'div' },
       on: this._createEventMap(),
       staticClass: 'weex-div weex-ct'
-    }, trimTextNode(this.$slots.default))
+    }, this._trimTextNodeChildren(this.$slots.default))
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/render/vue/components/image.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/image.js b/html5/render/vue/components/image.js
index 7f6e8e7..5f4a786 100644
--- a/html5/render/vue/components/image.js
+++ b/html5/render/vue/components/image.js
@@ -2,7 +2,7 @@
  * get resize (stetch|cover|contain) related styles.
  */
 function getResizeStyle (context) {
-  const stretch = '100% 100%'
+  const stretch = '100%'
   const resize = context.resize || stretch
   const bgSize = ['cover', 'contain', stretch].indexOf(resize) > -1 ? resize : stretch
   // compatibility: http://caniuse.com/#search=background-size

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/render/vue/mixins/base.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/mixins/base.js b/html5/render/vue/mixins/base.js
index ea5fd86..dba7688 100644
--- a/html5/render/vue/mixins/base.js
+++ b/html5/render/vue/mixins/base.js
@@ -116,6 +116,13 @@ export default {
       if (process.env.NODE_ENV === 'development') {
         tagEnd('base._fireLazyload')
       }
+    },
+
+    _trimTextNodeChildren (children) {
+      if (Array.isArray(children)) {
+        return children.filter(vnode => !!vnode.tag)
+      }
+      return children
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/index.js
----------------------------------------------------------------------
diff --git a/html5/test/render/index.js b/html5/test/render/index.js
deleted file mode 100644
index bca3504..0000000
--- a/html5/test/render/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// require all test files
-const testsContext = require.context('./vue', true, /\.js$/)
-testsContext.keys().forEach(testsContext)

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/components/a.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/a.js b/html5/test/render/vue/components/a.js
new file mode 100644
index 0000000..89574b7
--- /dev/null
+++ b/html5/test/render/vue/components/a.js
@@ -0,0 +1,38 @@
+import { init } from '../helper'
+import a from '../../../../render/vue/components/a'
+import div from '../../../../render/vue/components/div'
+
+init('<a> component', (Vue, helper) => {
+  const { compile, utils } = helper
+
+  before(() => {
+    helper.register('a', a)
+    helper.register('div', div)
+  })
+
+  it('simple <a> component', () => {
+    const vm = compile(`<a>abc</a>`)
+    const el = vm.$el
+    expect(el.tagName.toLowerCase()).to.equal('a')
+    const classListArr = utils.toArray(el.classList)
+    expect('weex-a').to.be.oneOf(classListArr)
+    expect('weex-ct').to.be.oneOf(classListArr)
+    expect(el.getAttribute('weex-type')).to.be.equal('a')
+    expect(el.innerHTML).to.be.equal('')
+  })
+
+  it('<a> with href', () => {
+    const href = '//m.taobao.com'
+    const vm = compile(`<a href="${href}"></a>`)
+    expect(vm.$el.getAttribute('href')).to.be.equal(href)
+  })
+
+  it('<a> with children <div>', () => {
+    const href = '//m.taobao.com'
+    const vm = compile(`<a href="${href}"><div></div></a>`)
+    const el = vm.$el
+    expect(el.children.length).to.be.equal(1)
+    expect(el.children[0].tagName).to.match(/^(?:html:)?div$/i)
+    expect(el.children[0].getAttribute('weex-type')).to.be.equal('div')
+  })
+})

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/components/div.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/div.js b/html5/test/render/vue/components/div.js
new file mode 100644
index 0000000..12b0536
--- /dev/null
+++ b/html5/test/render/vue/components/div.js
@@ -0,0 +1,29 @@
+import { init } from '../helper'
+import div from '../../../../render/vue/components/div'
+
+init('<div> component', (Vue, helper) => {
+  const { compile, utils } = helper
+
+  before(() => {
+    helper.register('div', div)
+  })
+
+  it('simple <div> component', () => {
+    const vm = compile(`<div>abc</div>`)
+    const el = vm.$el
+    expect(el.tagName.toLowerCase()).to.equal('div')
+    const classListArr = utils.toArray(el.classList)
+    expect('weex-div').to.be.oneOf(classListArr)
+    expect('weex-ct').to.be.oneOf(classListArr)
+    expect(el.getAttribute('weex-type')).to.be.equal('div')
+    expect(el.innerHTML).to.be.equal('')
+  })
+
+  it('<div> with children <div>', () => {
+    const vm = compile(`<div><div></div></div>`)
+    const el = vm.$el
+    expect(el.children.length).to.be.equal(1)
+    expect(el.children[0].tagName).to.match(/^(?:html:)?div$/i)
+    expect(el.children[0].getAttribute('weex-type')).to.be.equal('div')
+  })
+})

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/components/image.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/image.js b/html5/test/render/vue/components/image.js
index 24ec318..241696a 100644
--- a/html5/test/render/vue/components/image.js
+++ b/html5/test/render/vue/components/image.js
@@ -1,49 +1,51 @@
-import { expect } from 'chai'
-import { multiDescribe } from '../helper'
+import { init } from '../helper'
 import image from '../../../../render/vue/components/image'
 
-multiDescribe('<image> component', (Vue, helper) => {
+init('<image> component', (Vue, helper) => {
+  const { compile, utils } = helper
+
   before(() => {
     helper.register('image', image)
   })
 
-  after(() => {
-    helper.reset()
-  })
-
   it('simple <image> component', () => {
-    const vm = helper.compile(`<image>abc</image>`)
-
-    // console.log(vm.$el)
-    expect(vm.$el.tagName).to.be.equal('FIGURE')
-    expect(vm.$el.className).to.be.equal('weex-image')
-    expect(vm.$el.innerHTML).to.be.equal('')
+    const vm = compile(`<image>abc</image>`)
+    const el = vm.$el
+    expect(el.tagName.toLowerCase()).to.be.equal('figure')
+    expect(utils.toArray(el.classList)).to.include.members(['weex-image', 'weex-el'])
+    expect(el.getAttribute('weex-type')).to.be.equal('image')
+    expect(el.innerHTML).to.be.equal('')
   })
 
   it('<image> with src', () => {
-    const src = 'https://vuejs.org/images/logo.png'
-    const vm = helper.compile(`<image src="${src}">`)
+    const src = '//vuejs.org/images/logo.png'
+    const vm = compile(`<image src="${src}"></image>`)
+    expect(vm.$el.getAttribute('img-src')).to.be.equal(`${src}`)
+  })
 
-    expect(vm.$el.style.backgroundImage).match(new RegExp(`url\s*\\("?${src}"?\\)`), 'i')
+  it('<image> with placeholder', () => {
+    const placeholder = '//vuejs.org/images/logo.png'
+    const vm = compile(`<image placeholder="${placeholder}"></image>`)
+    expect(vm.$el.getAttribute('img-placeholder')).to.be.equal(`${placeholder}`)
   })
 
   it('<image> resize="cover"', () => {
-    const vm = helper.compile(`<image resize="cover">`)
+    const vm = compile(`<image resize="cover"></image>`)
     expect(vm.$el.style.backgroundSize).to.be.equal('cover')
   })
 
   it('<image> resize="contain"', () => {
-    const vm = helper.compile(`<image resize="contain">`)
+    const vm = compile(`<image resize="contain"></image>`)
     expect(vm.$el.style.backgroundSize).to.be.equal('contain')
   })
 
   it('<image> resize="stretch"', () => {
-    const vm = helper.compile(`<image resize="stretch">`)
+    const vm = compile(`<image resize="stretch"></image>`)
     expect(vm.$el.style.backgroundSize).to.be.equal('100%')
   })
 
   it('<image> unknown resize', () => {
-    const vm = helper.compile(`<image resize="unknown">`)
-    expect(vm.$el.style.backgroundSize).to.be.equal('')
+    const vm = compile(`<image resize="unknown"></image>`)
+    expect(vm.$el.style.backgroundSize).to.be.equal('100%')
   })
 })

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/components/list.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/list.js b/html5/test/render/vue/components/list.js
index fe557ae..adc880b 100644
--- a/html5/test/render/vue/components/list.js
+++ b/html5/test/render/vue/components/list.js
@@ -1,21 +1,18 @@
-import { expect } from 'chai'
-import { multiDescribe } from '../helper'
+import { init } from '../helper'
 import list from '../../../../render/vue/components/scrollable/list'
+import cell from '../../../../render/vue/components/scrollable/list/cell'
+
+init('<list> component', (Vue, helper) => {
+  const { utils, compile } = helper
 
-multiDescribe('<list> component', (Vue, helper) => {
   before(() => {
     helper.register('list', list)
-  })
-
-  after(() => {
-    helper.reset()
+    helper.register('cell', cell)
   })
 
   it('create simple list component', () => {
-    const vm = helper.compile(`<list><cell></cell></list>`)
-
-    // console.log(vm.$el)
-    expect(vm.$el.tagName).to.be.equal('MAIN')
-    expect(vm.$el.className).to.be.equal('weex-list weex-list-wrapper')
+    const vm = compile(`<list><cell></cell></list>`)
+    expect(vm.$el.tagName.toLowerCase()).to.be.equal('main')
+    expect(utils.toArray(vm.$el.classList)).to.include.members(['weex-list', 'weex-list-wrapper', 'weex-ct'])
   })
 })

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/components/switch.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/switch.js b/html5/test/render/vue/components/switch.js
index 6fc2cf0..2c892f3 100644
--- a/html5/test/render/vue/components/switch.js
+++ b/html5/test/render/vue/components/switch.js
@@ -1,8 +1,9 @@
-import { expect } from 'chai'
-import { multiDescribe } from '../helper'
+import { init } from '../helper'
 import _switch from '../../../../render/vue/components/switch'
 
-multiDescribe('<switch> component', (Vue, helper) => {
+init('<switch> component', (Vue, helper) => {
+  const { utils, compile } = helper
+
   before(() => {
     helper.register('switch', _switch)
   })
@@ -12,18 +13,18 @@ multiDescribe('<switch> component', (Vue, helper) => {
   })
 
   it('simple <switch> component', () => {
-    const vm = helper.compile(`<switch></switch>`)
+    const vm = compile(`<switch></switch>`)
 
     // console.log(vm.$el)
     expect(vm.$el.tagName).to.be.equal('SPAN')
-    expect(vm.$el.className).to.be.equal('weex-switch')
+    expect(utils.toArray(vm.$el.classList)).to.include('weex-switch')
     expect(vm.$el.innerHTML).to.be.equal('<small class="weex-switch-inner"></small>')
   })
 
   it('disabled <switch>', () => {
-    const vmA = helper.compile(`<switch disabled="true"></switch>`)
-    const vmB = helper.compile(`<switch disabled></switch>`)
-    const vmC = helper.compile(`<switch disabled="disabled"></switch>`)
+    const vmA = compile(`<switch disabled="true"></switch>`)
+    const vmB = compile(`<switch disabled></switch>`)
+    const vmC = compile(`<switch disabled="disabled"></switch>`)
 
     expect(vmA.$el.className).to.match(/weex\-switch\-disabled/)
     expect(vmB.$el.className).to.match(/weex\-switch\-disabled/)
@@ -31,17 +32,17 @@ multiDescribe('<switch> component', (Vue, helper) => {
   })
 
   it('enabled <switch>', () => {
-    const vmA = helper.compile(`<switch></switch>`)
-    const vmB = helper.compile(`<switch disabled="false"></switch>`)
+    const vmA = compile(`<switch></switch>`)
+    const vmB = compile(`<switch disabled="false"></switch>`)
 
     expect(vmA.$el.className).to.be.equal('weex-switch')
     expect(vmB.$el.className).to.be.equal('weex-switch')
   })
 
   it('checked <switch>', () => {
-    const vmA = helper.compile(`<switch checked="true"></switch>`)
-    const vmB = helper.compile(`<switch checked></switch>`)
-    const vmC = helper.compile(`<switch checked="checked"></switch>`)
+    const vmA = compile(`<switch checked="true"></switch>`)
+    const vmB = compile(`<switch checked></switch>`)
+    const vmC = compile(`<switch checked="checked"></switch>`)
 
     expect(vmA.$el.className).to.match(/weex\-switch\-checked/)
     expect(vmB.$el.className).to.match(/weex\-switch\-checked/)
@@ -68,16 +69,16 @@ multiDescribe('<switch> component', (Vue, helper) => {
   })
 
   it('unchecked <switch>', () => {
-    const vmA = helper.compile(`<switch></switch>`)
-    const vmB = helper.compile(`<switch checked="false"></switch>`)
+    const vmA = compile(`<switch></switch>`)
+    const vmB = compile(`<switch checked="false"></switch>`)
 
     expect(vmA.$el.className).to.be.equal('weex-switch')
     expect(vmB.$el.className).to.be.equal('weex-switch')
   })
 
   it('disabled & checked <switch>', () => {
-    const vmA = helper.compile(`<switch disabled checked></switch>`)
-    const vmB = helper.compile(`<switch disabled="disabled" checked="checked"></switch>`)
+    const vmA = compile(`<switch disabled checked></switch>`)
+    const vmB = compile(`<switch disabled="disabled" checked="checked"></switch>`)
 
     expect(vmA.$el.className).to.match(/weex\-switch\-checked/)
     expect(vmA.$el.className).to.match(/weex\-switch\-disabled/)

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/components/text.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/text.js b/html5/test/render/vue/components/text.js
index 0a5ef6d..4f5ff94 100644
--- a/html5/test/render/vue/components/text.js
+++ b/html5/test/render/vue/components/text.js
@@ -1,9 +1,10 @@
-import { expect } from 'chai'
 import semver from 'semver'
-import { multiDescribe } from '../helper'
+import { init } from '../helper'
 import text from '../../../../render/vue/components/text'
 
-multiDescribe('<text> component', (Vue, helper) => {
+init('<text> component', (Vue, helper) => {
+  const { utils, compile } = helper
+
   before(() => {
     helper.register('text', text)
   })
@@ -13,22 +14,21 @@ multiDescribe('<text> component', (Vue, helper) => {
   })
 
   it('create simple text component', () => {
-    const vm = helper.compile(`<text>abc</text>`)
+    const vm = compile(`<text>abc</text>`)
 
     expect(vm.$el.tagName).to.be.equal('P')
     expect(vm.$el.innerHTML).to.be.equal('abc')
   })
 
   it('empty text component', () => {
-    const vm = helper.compile(`<text></text>`)
+    const vm = compile(`<text></text>`)
 
     expect(vm.$el.tagName).to.be.equal('P')
     expect(vm.$el.innerHTML).to.be.equal('')
   })
 
-  it('lines property', () => {
-    const vm = helper.compile(`<text lines="5">abc</text>`)
-
+  it('lines style', () => {
+    const vm = compile(`<text style="lines:5;">abc</text>`)
     if (semver.gt(Vue.version, '2.0.8')) {
       expect(vm.$el.style.overflow).to.be.equal('hidden')
       expect(vm.$el.style.textOverflow).to.be.equal('ellipsis')
@@ -37,7 +37,7 @@ multiDescribe('<text> component', (Vue, helper) => {
   })
 
   it('inline styles', () => {
-    const vm = helper.compile(`<text style="color:blue">abc</text>`)
+    const vm = compile(`<text style="color:blue">abc</text>`)
 
     if (semver.gt(Vue.version, '2.0.8')) {
       expect(vm.$el.style.color).to.be.equal('blue')
@@ -46,27 +46,27 @@ multiDescribe('<text> component', (Vue, helper) => {
 
   // Not sure about this feature.
   it('class property', () => {
-    const vm = helper.compile(`<text class="title"></text>`)
-    expect(vm.$el.className).to.be.equal('weex-text title')
+    const vm = compile(`<text class="title"></text>`)
+    expect(utils.toArray(vm.$el.classList)).to.include.members(['weex-text', 'weex-el', 'title'])
   })
 
   it('value property', () => {
-    const vm = helper.compile(`<text value="A"></text>`)
+    const vm = compile(`<text value="A"></text>`)
     expect(vm.$el.innerHTML).to.be.equal('A')
   })
 
   it('both have value and content', () => {
-    const vm = helper.compile(`<text value="A">B</text>`)
+    const vm = compile(`<text value="A">B</text>`)
     expect(vm.$el.innerHTML).to.be.equal('B')
   })
 
-  describe.skip('error usage (on native)', () => {
-    it('contain other tags', () => {
-      const vm = helper.compile(`<text><b>abc</b></text>`)
-      const span = vm.$el.children[0]
+  // describe.skip('error usage (on native)', () => {
+  //   it('contain other tags', () => {
+  //     const vm = compile(`<text><b>abc</b></text>`)
+  //     const span = vm.$el.children[0]
 
-      expect(span.tagName).to.be.equal('SPAN')
-      expect(span.innerHTML).to.be.equal('')
-    })
-  })
+  //     expect(span.tagName).to.be.equal('SPAN')
+  //     expect(span.innerHTML).to.be.equal('')
+  //   })
+  // })
 })

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/components/web.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/web.js b/html5/test/render/vue/components/web.js
index 6d4e37c..642bd4a 100644
--- a/html5/test/render/vue/components/web.js
+++ b/html5/test/render/vue/components/web.js
@@ -1,8 +1,8 @@
-import { expect } from 'chai'
-import { multiDescribe } from '../helper'
+import { init } from '../helper'
 import web from '../../../../render/vue/components/web'
 
-multiDescribe('<web> component', (Vue, helper) => {
+init('<web> component', (Vue, helper) => {
+  const { utils, compile } = helper
   before(() => {
     helper.register('web', web)
   })
@@ -12,18 +12,18 @@ multiDescribe('<web> component', (Vue, helper) => {
   })
 
   it('simple <web> component', () => {
-    const vm = helper.compile(`<web></web>`)
+    const vm = compile(`<web></web>`)
 
     // console.log(vm.$el)
     expect(vm.$el.tagName).to.be.equal('IFRAME')
-    expect(vm.$el.className).to.be.equal('weex-web')
+    expect(utils.toArray(vm.$el.classList)).to.include.members(['weex-web', 'weex-el'])
   })
 
   it('use src attribute', () => {
-    const vm = helper.compile(`<web src="https://x.cn"></web>`)
+    const vm = compile(`<web src="https://x.cn"></web>`)
 
     expect(vm.$el.tagName).to.be.equal('IFRAME')
     expect(vm.$el.getAttribute('src')).to.be.equal('https://x.cn')
-    expect(vm.$el.className).to.be.equal('weex-web')
+    expect(utils.toArray(vm.$el.classList)).to.include.members(['weex-web', 'weex-el'])
   })
 })

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/examples/list-cell.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/examples/list-cell.js b/html5/test/render/vue/examples/list-cell.js
index bab74e5..ad12ec4 100644
--- a/html5/test/render/vue/examples/list-cell.js
+++ b/html5/test/render/vue/examples/list-cell.js
@@ -1,22 +1,19 @@
-import { expect } from 'chai'
-import { multiDescribe } from '../helper'
+import { init } from '../helper'
 import list from '../../../../render/vue/components/scrollable/list'
 import cell from '../../../../render/vue/components/scrollable/list/cell'
 import text from '../../../../render/vue/components/text'
 
-multiDescribe('list & cell example', (Vue, helper) => {
+init('list & cell example', (Vue, helper) => {
+  const { utils, createVm } = helper
+
   before(() => {
     helper.register('list', list)
     helper.register('cell', cell)
     helper.register('text', text)
   })
 
-  after(() => {
-    helper.reset()
-  })
-
   it('create simple list component', () => {
-    const vm = helper.createVm({
+    const vm = createVm({
       template:
       `<list>
         <cell v-for="char in lists">
@@ -30,8 +27,7 @@ multiDescribe('list & cell example', (Vue, helper) => {
       }
     })
 
-    // console.log(vm.$el)
     expect(vm.$el.tagName).to.be.equal('MAIN')
-    expect(vm.$el.className).to.be.equal('weex-list weex-list-wrapper')
+    expect(utils.toArray(vm.$el.classList)).to.include.members(['weex-list', 'weex-list-wrapper'])
   })
 })

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/helper.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/helper.js b/html5/test/render/vue/helper.js
index 6d7144d..26daac0 100644
--- a/html5/test/render/vue/helper.js
+++ b/html5/test/render/vue/helper.js
@@ -1,31 +1,140 @@
-const Vues = [
-  require('./vender/vue-2.0.0.js'),
-  require('./vender/vue-2.1.0.js')
-]
+import '../../../render/vue/styles/reset.css'
+import '../../../render/vue/styles/components.css'
+
+import '../../../render/browser/render/gesture'
+
+/* istanbul ignore next */
+import '../../../shared/arrayFrom'
+/* istanbul ignore next */
+import '../../../shared/objectAssign'
+/* istanbul ignore next */
+import '../../../shared/objectSetPrototypeOf'
+
+/* istanbul ignore next */
+import 'core-js/modules/es6.object.to-string'
+/* istanbul ignore next */
+import 'core-js/modules/es6.string.iterator'
+/* istanbul ignore next */
+import 'core-js/modules/web.dom.iterable'
+/* istanbul ignore next */
+import 'core-js/modules/es6.promise'
+
+/* istanbul ignore next */
+import Vue from 'vue/dist/vue.esm.js'
+// import { base, scrollable, style, inputCommon } from '../../../render/vue/mixins'
+import { base, style } from '../../../render/vue/mixins'
+import weex from '../../../render/vue/env/weex'
 
 /**
- * Describe tests for multiple versions of Vue.
+ * functional tools exported by helper.utils.
+ */
+const utils = {
+  toArray (list) {
+    if (!list) return []
+    return Array.prototype.slice.call(list)
+  }
+}
+
+/**
+ * Describe tests for current versions of Vue.
  */
-export function multiDescribe (title, fn) {
+export function init (title, fn) {
   return describe(title, () => {
-    Vues.forEach(Vue => {
-      let components = {}
-      Vue.config.isReservedTag = function () { return false }
-      describe(`Vue ${Vue.version}`, () => fn(Vue, {
-        register (name, component) {
-          components[name] = component
-        },
-        reset () {
-          components = {}
-        },
-        createVm (options = {}) {
-          options.components = components
-          return new Vue(options).$mount()
-        },
-        compile (template) {
-          return this.createVm({ template })
-        }
-      }))
+    let components = {}
+
+    before(function () {
+      const htmlRegex = /^html:/i
+      Vue.config.isReservedTag = tag => htmlRegex.test(tag)
+      Vue.config.parsePlatformTagName = tag => tag.replace(htmlRegex, '')
+
+      Vue.mixin(base)
+      Vue.mixin(style)
+
+      window.global = window
+      global.weex = weex
+    })
+
+    const helper = {
+
+      utils,
+      /**
+       * register a component.
+       * @param  {string} name,
+       * @param  {object} component.
+       */
+      register (name, component) {
+        components[name] = component
+      },
+
+      /**
+       * reset registered components with empty object.
+       */
+      reset () {
+        components = {}
+      },
+
+      /**
+       * create a vm instance of Vue.
+       * @param  {Object} options.
+       * @return {Vue} vue instance.
+       */
+      createVm (options = {}) {
+        options.components = components
+        return new Vue(options).$mount()
+      },
+
+      /**
+       * [compile description]
+       * @param  {[type]} template [description]
+       * @return {[type]}          [description]
+       */
+      compile (template) {
+        return helper.createVm({ template })
+      }
+    }
+
+    /**
+     * describe a vue-render test for certain vue verson.
+     */
+    describe(`Vue ${Vue.version}`, () => {
+      after(function () {
+        helper.reset()
+      })
+
+      fn(Vue, helper)
     })
   })
 }
+
+// import vue200 from './vender/vue-2.0.0.js'
+// import vue210 from './vender/vue-2.1.0.js'
+// const Vues = [
+//   vue200,
+//   vue210
+// ]
+/**
+ * Describe tests for multiple versions of Vue.
+ */
+// export function multiDescribe (title, fn) {
+//   return describe(title, () => {
+//     Vues.forEach(Vue => {
+//       let components = {}
+//       Vue.config.isReservedTag = function () { return false }
+//       describe(`Vue ${Vue.version}`, () => fn(Vue, {
+//         register (name, component) {
+//           components[name] = component
+//         },
+//         reset () {
+//           components = {}
+//         },
+//         createVm (options = {}) {
+//           options.components = components
+//           return new Vue(options).$mount()
+//         },
+//         compile (template) {
+//           return this.createVm({ template })
+//         }
+//       }))
+//     })
+//   })
+// }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/utils.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/utils.js b/html5/test/render/vue/utils.js
index ddf1bb6..0a38e32 100644
--- a/html5/test/render/vue/utils.js
+++ b/html5/test/render/vue/utils.js
@@ -1,4 +1,3 @@
-import { expect } from 'chai'
 import * as utils from '../../../render/vue/utils'
 
 describe('utils', function () {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/validator/check.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/validator/check.js b/html5/test/render/vue/validator/check.js
index e38439c..75b7955 100644
--- a/html5/test/render/vue/validator/check.js
+++ b/html5/test/render/vue/validator/check.js
@@ -1,4 +1,3 @@
-import { expect } from 'chai'
 import * as check from '../../../../render/vue/validator/check'
 
 describe('check', () => {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/validator/index.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/validator/index.js b/html5/test/render/vue/validator/index.js
index 5df9456..581dc0b 100644
--- a/html5/test/render/vue/validator/index.js
+++ b/html5/test/render/vue/validator/index.js
@@ -1,4 +1,3 @@
-import { expect } from 'chai'
 import * as validator from '../../../../render/vue/validator'
 
 describe('validator', function () {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/validator/prop.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/validator/prop.js b/html5/test/render/vue/validator/prop.js
index 5384c54..0b8fe54 100644
--- a/html5/test/render/vue/validator/prop.js
+++ b/html5/test/render/vue/validator/prop.js
@@ -1,4 +1,3 @@
-import { expect } from 'chai'
 import * as prop from '../../../../render/vue/validator/prop'
 
 describe('check property value', () => {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/html5/test/render/vue/validator/style.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/validator/style.js b/html5/test/render/vue/validator/style.js
index ae91d4b..55996d1 100644
--- a/html5/test/render/vue/validator/style.js
+++ b/html5/test/render/vue/validator/style.js
@@ -1,4 +1,3 @@
-import { expect } from 'chai'
 import * as style from '../../../../render/vue/validator/style'
 
 describe('check style value', () => {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b5ae07c7/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index c3b7784..25d3884 100644
--- a/package.json
+++ b/package.json
@@ -64,7 +64,7 @@
     "test:case": "mocha --require reify html5/test/case/tester.js",
     "test:vue": "karma start build/karma.vue.conf.js",
     "test:unit": "mocha --require reify html5/test/unit/*/*.js html5/test/unit/*/*/*.js",
-    "test": "npm run lint && npm run test:unit && npm run test:case",
+    "test": "npm run lint && npm run test:unit && npm run test:case && npm run test:vue",
     "test:cover-html": "babel-istanbul cover --report html node_modules/mocha/bin/_mocha -- --require reify --reporter dot html5/test/unit/*/*.js html5/test/unit/*/*/*.js && open coverage/index.html",
     "test:cover": "babel-istanbul cover --report text node_modules/mocha/bin/_mocha -- --require reify --reporter dot html5/test/unit/*/*.js html5/test/unit/*/*/*.js",
     "test:e2e": "npm run build:browser && node html5/test/e2e/runner.js",
@@ -119,6 +119,8 @@
     "karma-mocha": "^1.3.0",
     "karma-mocha-reporter": "^2.2.1",
     "karma-phantomjs-launcher": "^1.0.2",
+    "karma-rollup-preprocessor": "^3.0.3",
+    "karma-sinon-chai": "^1.2.4",
     "karma-sourcemap-loader": "^0.3.7",
     "karma-webpack": "^1.8.0",
     "macaca-cli": "^1.1.0",


[48/50] [abbrv] incubator-weex git commit: Merge branch '0.11-dev' into dev-web

Posted by so...@apache.org.
Merge branch '0.11-dev' into dev-web


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

Branch: refs/heads/dev
Commit: fef125b347625feb808343e035e8b99811d84186
Parents: 9905aa8 58fd3fe
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Mar 31 23:27:11 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Mar 31 23:27:11 2017 +0800

----------------------------------------------------------------------
 .../Component/Recycler/WXRecyclerComponent.m     | 16 ++++++++--------
 .../WeexSDK/Sources/Component/WXListComponent.m  |  7 +------
 .../Sources/Component/WXScrollerComponent.m      | 10 ++--------
 test/pages/components/recycler.vue               | 19 +++++++++++++------
 4 files changed, 24 insertions(+), 28 deletions(-)
----------------------------------------------------------------------



[32/50] [abbrv] incubator-weex git commit: * [html5] add flow-type supported.

Posted by so...@apache.org.
* [html5] add flow-type supported.


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

Branch: refs/heads/dev
Commit: e024115e82de77d4beb64011287c5b27b1457d8f
Parents: 3501be1
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Mar 30 14:46:50 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Mar 30 14:46:50 2017 +0800

----------------------------------------------------------------------
 .eslintrc                                       |   10 +
 .flowconfig                                     |   15 +
 build/config.js                                 |    2 +
 flow-typed/npm/animationjs_vx.x.x.js            |   60 +
 flow-typed/npm/babel-core_vx.x.x.js             |  227 +
 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_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-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/render/vue/mixins/input-common.js         |    8 +-
 html5/render/vue/utils/event.js                 |   17 +-
 html5/render/vue/utils/func.js                  |   27 +-
 html5/render/vue/utils/lazyload.js              |   44 +-
 html5/render/vue/utils/perf.js                  |   50 +-
 html5/render/vue/utils/style.js                 |    8 +-
 html5/render/vue/utils/type.js                  |    6 +-
 package.json                                    |    7 +-
 82 files changed, 22506 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/.eslintrc
----------------------------------------------------------------------
diff --git a/.eslintrc b/.eslintrc
index bcd53f8..c8e3813 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -1,4 +1,14 @@
 {
+  "parser": "babel-eslint",
+
+  "extends": [
+    "plugin:flowtype/recommended"
+  ],
+
+  "plugins": [
+    "flowtype"
+  ],
+
   "parserOptions": {
     "ecmaVersion": 6,
     "sourceType": "module"

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/.flowconfig
----------------------------------------------------------------------
diff --git a/.flowconfig b/.flowconfig
new file mode 100644
index 0000000..ca809f2
--- /dev/null
+++ b/.flowconfig
@@ -0,0 +1,15 @@
+[ignore]
+.*/node_modules/.*
+.*/test/.*
+.*/build/.*
+.*/examples/.*
+.*/doc/.*
+.*/android/.*
+.*/ios/.*
+.*/bin/.*
+.*/dist/.*
+
+[include]
+
+[options]
+experimental.strict_type_args=false

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/build/config.js
----------------------------------------------------------------------
diff --git a/build/config.js b/build/config.js
index 7d455a6..9518d53 100644
--- a/build/config.js
+++ b/build/config.js
@@ -6,6 +6,7 @@ const postcss = require('rollup-plugin-postcss')
 const nodeResolve = require('rollup-plugin-node-resolve')
 const uglify = require('rollup-plugin-uglify')
 const commonjs = require('rollup-plugin-commonjs')
+const flow = require('rollup-plugin-flow')
 const buble = require('rollup-plugin-buble')
 const subversion = require('../package.json').subversion
 
@@ -97,6 +98,7 @@ function getConfig (name, minify) {
         'process.env.NODE_DEBUG': false
       }),
       commonjs(),
+      flow(),
       buble()
     ])
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/animationjs_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/animationjs_vx.x.x.js b/flow-typed/npm/animationjs_vx.x.x.js
new file mode 100644
index 0000000..ab6b267
--- /dev/null
+++ b/flow-typed/npm/animationjs_vx.x.x.js
@@ -0,0 +1,60 @@
+// flow-typed signature: f234bb9aa083eadba8d747200fa5a8ca
+// flow-typed version: <<STUB>>/animationjs_v^0.1.5/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'animationjs'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'animationjs' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'animationjs/build/animation.common' {
+  declare module.exports: any;
+}
+
+declare module 'animationjs/build/animation.debug' {
+  declare module.exports: any;
+}
+
+declare module 'animationjs/build/animation' {
+  declare module.exports: any;
+}
+
+declare module 'animationjs/Gruntfile' {
+  declare module.exports: any;
+}
+
+declare module 'animationjs/src/animation' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'animationjs/build/animation.common.js' {
+  declare module.exports: $Exports<'animationjs/build/animation.common'>;
+}
+declare module 'animationjs/build/animation.debug.js' {
+  declare module.exports: $Exports<'animationjs/build/animation.debug'>;
+}
+declare module 'animationjs/build/animation.js' {
+  declare module.exports: $Exports<'animationjs/build/animation'>;
+}
+declare module 'animationjs/Gruntfile.js' {
+  declare module.exports: $Exports<'animationjs/Gruntfile'>;
+}
+declare module 'animationjs/src/animation.js' {
+  declare module.exports: $Exports<'animationjs/src/animation'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/babel-core_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/babel-core_vx.x.x.js b/flow-typed/npm/babel-core_vx.x.x.js
new file mode 100644
index 0000000..92933a7
--- /dev/null
+++ b/flow-typed/npm/babel-core_vx.x.x.js
@@ -0,0 +1,227 @@
+// flow-typed signature: 1e1a03a4a04bb3b5bad25d8dfc01182d
+// flow-typed version: <<STUB>>/babel-core_v^6.17.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'babel-core'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'babel-core' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'babel-core/lib/api/browser' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/api/node' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/helpers/get-possible-plugin-names' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/helpers/get-possible-preset-names' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/helpers/merge' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/helpers/normalize-ast' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/helpers/resolve-from-possible-names' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/helpers/resolve-plugin' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/helpers/resolve-preset' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/helpers/resolve' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/store' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/tools/build-external-helpers' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/file/index' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/file/logger' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/file/metadata' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/file/options/build-config-chain' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/file/options/config' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/file/options/index' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/file/options/option-manager' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/file/options/parsers' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/file/options/removed' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/internal-plugins/block-hoist' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/internal-plugins/shadow-functions' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/pipeline' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/plugin-pass' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/transformation/plugin' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/lib/util' {
+  declare module.exports: any;
+}
+
+declare module 'babel-core/register' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'babel-core/index' {
+  declare module.exports: $Exports<'babel-core'>;
+}
+declare module 'babel-core/index.js' {
+  declare module.exports: $Exports<'babel-core'>;
+}
+declare module 'babel-core/lib/api/browser.js' {
+  declare module.exports: $Exports<'babel-core/lib/api/browser'>;
+}
+declare module 'babel-core/lib/api/node.js' {
+  declare module.exports: $Exports<'babel-core/lib/api/node'>;
+}
+declare module 'babel-core/lib/helpers/get-possible-plugin-names.js' {
+  declare module.exports: $Exports<'babel-core/lib/helpers/get-possible-plugin-names'>;
+}
+declare module 'babel-core/lib/helpers/get-possible-preset-names.js' {
+  declare module.exports: $Exports<'babel-core/lib/helpers/get-possible-preset-names'>;
+}
+declare module 'babel-core/lib/helpers/merge.js' {
+  declare module.exports: $Exports<'babel-core/lib/helpers/merge'>;
+}
+declare module 'babel-core/lib/helpers/normalize-ast.js' {
+  declare module.exports: $Exports<'babel-core/lib/helpers/normalize-ast'>;
+}
+declare module 'babel-core/lib/helpers/resolve-from-possible-names.js' {
+  declare module.exports: $Exports<'babel-core/lib/helpers/resolve-from-possible-names'>;
+}
+declare module 'babel-core/lib/helpers/resolve-plugin.js' {
+  declare module.exports: $Exports<'babel-core/lib/helpers/resolve-plugin'>;
+}
+declare module 'babel-core/lib/helpers/resolve-preset.js' {
+  declare module.exports: $Exports<'babel-core/lib/helpers/resolve-preset'>;
+}
+declare module 'babel-core/lib/helpers/resolve.js' {
+  declare module.exports: $Exports<'babel-core/lib/helpers/resolve'>;
+}
+declare module 'babel-core/lib/store.js' {
+  declare module.exports: $Exports<'babel-core/lib/store'>;
+}
+declare module 'babel-core/lib/tools/build-external-helpers.js' {
+  declare module.exports: $Exports<'babel-core/lib/tools/build-external-helpers'>;
+}
+declare module 'babel-core/lib/transformation/file/index.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/file/index'>;
+}
+declare module 'babel-core/lib/transformation/file/logger.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/file/logger'>;
+}
+declare module 'babel-core/lib/transformation/file/metadata.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/file/metadata'>;
+}
+declare module 'babel-core/lib/transformation/file/options/build-config-chain.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/file/options/build-config-chain'>;
+}
+declare module 'babel-core/lib/transformation/file/options/config.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/file/options/config'>;
+}
+declare module 'babel-core/lib/transformation/file/options/index.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/file/options/index'>;
+}
+declare module 'babel-core/lib/transformation/file/options/option-manager.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/file/options/option-manager'>;
+}
+declare module 'babel-core/lib/transformation/file/options/parsers.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/file/options/parsers'>;
+}
+declare module 'babel-core/lib/transformation/file/options/removed.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/file/options/removed'>;
+}
+declare module 'babel-core/lib/transformation/internal-plugins/block-hoist.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/internal-plugins/block-hoist'>;
+}
+declare module 'babel-core/lib/transformation/internal-plugins/shadow-functions.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/internal-plugins/shadow-functions'>;
+}
+declare module 'babel-core/lib/transformation/pipeline.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/pipeline'>;
+}
+declare module 'babel-core/lib/transformation/plugin-pass.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/plugin-pass'>;
+}
+declare module 'babel-core/lib/transformation/plugin.js' {
+  declare module.exports: $Exports<'babel-core/lib/transformation/plugin'>;
+}
+declare module 'babel-core/lib/util.js' {
+  declare module.exports: $Exports<'babel-core/lib/util'>;
+}
+declare module 'babel-core/register.js' {
+  declare module.exports: $Exports<'babel-core/register'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/babel-istanbul_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/babel-istanbul_vx.x.x.js b/flow-typed/npm/babel-istanbul_vx.x.x.js
new file mode 100644
index 0000000..7ac0aea
--- /dev/null
+++ b/flow-typed/npm/babel-istanbul_vx.x.x.js
@@ -0,0 +1,353 @@
+// flow-typed signature: 04fd876bc09bc933b92fda3b0d1904a9
+// flow-typed version: <<STUB>>/babel-istanbul_v^0.11.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'babel-istanbul'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'babel-istanbul' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'babel-istanbul/lib/assets/sorter' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/assets/vendor/prettify' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/cli' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/collector' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/command/check-coverage' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/command/common/run-with-cover' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/command/cover' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/command/help' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/command/index' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/command/instrument' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/command/report' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/command/test' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/config' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/hook' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/instrumenter' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/object-utils' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/register-plugins' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/clover' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/cobertura' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/common/defaults' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/html' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/index' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/json-summary' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/json' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/lcov' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/lcovonly' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/none' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/teamcity' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/text-lcov' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/text-summary' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/report/text' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/reporter' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/store/fslookup' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/store/index' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/store/memory' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/store/tmp' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/factory' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/file-matcher' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/file-writer' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/help-formatter' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/input-error' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/insertion-text' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/meta' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/tree-summarizer' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/writer' {
+  declare module.exports: any;
+}
+
+declare module 'babel-istanbul/lib/util/yui-load-hook' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'babel-istanbul/index' {
+  declare module.exports: $Exports<'babel-istanbul'>;
+}
+declare module 'babel-istanbul/index.js' {
+  declare module.exports: $Exports<'babel-istanbul'>;
+}
+declare module 'babel-istanbul/lib/assets/sorter.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/assets/sorter'>;
+}
+declare module 'babel-istanbul/lib/assets/vendor/prettify.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/assets/vendor/prettify'>;
+}
+declare module 'babel-istanbul/lib/cli.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/cli'>;
+}
+declare module 'babel-istanbul/lib/collector.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/collector'>;
+}
+declare module 'babel-istanbul/lib/command/check-coverage.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/command/check-coverage'>;
+}
+declare module 'babel-istanbul/lib/command/common/run-with-cover.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/command/common/run-with-cover'>;
+}
+declare module 'babel-istanbul/lib/command/cover.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/command/cover'>;
+}
+declare module 'babel-istanbul/lib/command/help.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/command/help'>;
+}
+declare module 'babel-istanbul/lib/command/index.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/command/index'>;
+}
+declare module 'babel-istanbul/lib/command/instrument.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/command/instrument'>;
+}
+declare module 'babel-istanbul/lib/command/report.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/command/report'>;
+}
+declare module 'babel-istanbul/lib/command/test.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/command/test'>;
+}
+declare module 'babel-istanbul/lib/config.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/config'>;
+}
+declare module 'babel-istanbul/lib/hook.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/hook'>;
+}
+declare module 'babel-istanbul/lib/instrumenter.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/instrumenter'>;
+}
+declare module 'babel-istanbul/lib/object-utils.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/object-utils'>;
+}
+declare module 'babel-istanbul/lib/register-plugins.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/register-plugins'>;
+}
+declare module 'babel-istanbul/lib/report/clover.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/clover'>;
+}
+declare module 'babel-istanbul/lib/report/cobertura.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/cobertura'>;
+}
+declare module 'babel-istanbul/lib/report/common/defaults.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/common/defaults'>;
+}
+declare module 'babel-istanbul/lib/report/html.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/html'>;
+}
+declare module 'babel-istanbul/lib/report/index.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/index'>;
+}
+declare module 'babel-istanbul/lib/report/json-summary.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/json-summary'>;
+}
+declare module 'babel-istanbul/lib/report/json.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/json'>;
+}
+declare module 'babel-istanbul/lib/report/lcov.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/lcov'>;
+}
+declare module 'babel-istanbul/lib/report/lcovonly.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/lcovonly'>;
+}
+declare module 'babel-istanbul/lib/report/none.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/none'>;
+}
+declare module 'babel-istanbul/lib/report/teamcity.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/teamcity'>;
+}
+declare module 'babel-istanbul/lib/report/text-lcov.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/text-lcov'>;
+}
+declare module 'babel-istanbul/lib/report/text-summary.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/text-summary'>;
+}
+declare module 'babel-istanbul/lib/report/text.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/report/text'>;
+}
+declare module 'babel-istanbul/lib/reporter.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/reporter'>;
+}
+declare module 'babel-istanbul/lib/store/fslookup.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/store/fslookup'>;
+}
+declare module 'babel-istanbul/lib/store/index.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/store/index'>;
+}
+declare module 'babel-istanbul/lib/store/memory.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/store/memory'>;
+}
+declare module 'babel-istanbul/lib/store/tmp.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/store/tmp'>;
+}
+declare module 'babel-istanbul/lib/util/factory.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/factory'>;
+}
+declare module 'babel-istanbul/lib/util/file-matcher.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/file-matcher'>;
+}
+declare module 'babel-istanbul/lib/util/file-writer.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/file-writer'>;
+}
+declare module 'babel-istanbul/lib/util/help-formatter.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/help-formatter'>;
+}
+declare module 'babel-istanbul/lib/util/input-error.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/input-error'>;
+}
+declare module 'babel-istanbul/lib/util/insertion-text.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/insertion-text'>;
+}
+declare module 'babel-istanbul/lib/util/meta.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/meta'>;
+}
+declare module 'babel-istanbul/lib/util/tree-summarizer.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/tree-summarizer'>;
+}
+declare module 'babel-istanbul/lib/util/writer.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/writer'>;
+}
+declare module 'babel-istanbul/lib/util/yui-load-hook.js' {
+  declare module.exports: $Exports<'babel-istanbul/lib/util/yui-load-hook'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/babel-loader_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/babel-loader_vx.x.x.js b/flow-typed/npm/babel-loader_vx.x.x.js
new file mode 100644
index 0000000..70adb6f
--- /dev/null
+++ b/flow-typed/npm/babel-loader_vx.x.x.js
@@ -0,0 +1,67 @@
+// flow-typed signature: 1b57d376bdc4ba6bb7a366303287a1d9
+// flow-typed version: <<STUB>>/babel-loader_v^6.2.5/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'babel-loader'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'babel-loader' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'babel-loader/lib/fs-cache' {
+  declare module.exports: any;
+}
+
+declare module 'babel-loader/lib/index' {
+  declare module.exports: any;
+}
+
+declare module 'babel-loader/lib/resolve-rc' {
+  declare module.exports: any;
+}
+
+declare module 'babel-loader/lib/utils/exists' {
+  declare module.exports: any;
+}
+
+declare module 'babel-loader/lib/utils/read' {
+  declare module.exports: any;
+}
+
+declare module 'babel-loader/lib/utils/relative' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'babel-loader/lib/fs-cache.js' {
+  declare module.exports: $Exports<'babel-loader/lib/fs-cache'>;
+}
+declare module 'babel-loader/lib/index.js' {
+  declare module.exports: $Exports<'babel-loader/lib/index'>;
+}
+declare module 'babel-loader/lib/resolve-rc.js' {
+  declare module.exports: $Exports<'babel-loader/lib/resolve-rc'>;
+}
+declare module 'babel-loader/lib/utils/exists.js' {
+  declare module.exports: $Exports<'babel-loader/lib/utils/exists'>;
+}
+declare module 'babel-loader/lib/utils/read.js' {
+  declare module.exports: $Exports<'babel-loader/lib/utils/read'>;
+}
+declare module 'babel-loader/lib/utils/relative.js' {
+  declare module.exports: $Exports<'babel-loader/lib/utils/relative'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/babel-plugin-coverage_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/babel-plugin-coverage_vx.x.x.js b/flow-typed/npm/babel-plugin-coverage_vx.x.x.js
new file mode 100644
index 0000000..33af0db
--- /dev/null
+++ b/flow-typed/npm/babel-plugin-coverage_vx.x.x.js
@@ -0,0 +1,32 @@
+// flow-typed signature: bdc0f5f39e66fa17a1159fa66bdf2ee1
+// flow-typed version: <<STUB>>/babel-plugin-coverage_v^1.0.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'babel-plugin-coverage'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'babel-plugin-coverage' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'babel-plugin-coverage/lib/index' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'babel-plugin-coverage/lib/index.js' {
+  declare module.exports: $Exports<'babel-plugin-coverage/lib/index'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/babel-preset-es2015_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/babel-preset-es2015_vx.x.x.js b/flow-typed/npm/babel-preset-es2015_vx.x.x.js
new file mode 100644
index 0000000..e823d2c
--- /dev/null
+++ b/flow-typed/npm/babel-preset-es2015_vx.x.x.js
@@ -0,0 +1,32 @@
+// flow-typed signature: 6d2c89198e3c335974110e2c9c364aef
+// flow-typed version: <<STUB>>/babel-preset-es2015_v^6.16.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'babel-preset-es2015'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'babel-preset-es2015' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'babel-preset-es2015/lib/index' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'babel-preset-es2015/lib/index.js' {
+  declare module.exports: $Exports<'babel-preset-es2015/lib/index'>;
+}


[33/50] [abbrv] incubator-weex git commit: * [html5] fix lint & add flow check for building vue-render.

Posted by so...@apache.org.
* [html5] fix lint & add flow check for building vue-render.


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

Branch: refs/heads/dev
Commit: aab0cf177b77e3b5b197e0c2e912de2539a3a043
Parents: e024115
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Mar 30 14:58:04 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Mar 30 14:58:04 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/mixins/input-common.js |  2 +-
 html5/render/vue/utils/lazyload.js      | 13 ++++++-------
 package.json                            |  2 +-
 3 files changed, 8 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aab0cf17/html5/render/vue/mixins/input-common.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/mixins/input-common.js b/html5/render/vue/mixins/input-common.js
index 067c8ad..7f45d6c 100644
--- a/html5/render/vue/mixins/input-common.js
+++ b/html5/render/vue/mixins/input-common.js
@@ -3,7 +3,7 @@
 // input and textare has some common api and event
 import { extend } from '../utils'
 
-const findEnterKeyType = function (key: string) : string {
+const findEnterKeyType = function (key: string): string {
   const keys = ['default', 'go', 'next', 'search', 'send']
   if (keys.indexOf(key) > -1) {
     return key

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aab0cf17/html5/render/vue/utils/lazyload.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/lazyload.js b/html5/render/vue/utils/lazyload.js
index db3d48e..ca91d97 100644
--- a/html5/render/vue/utils/lazyload.js
+++ b/html5/render/vue/utils/lazyload.js
@@ -3,19 +3,18 @@
 import { isElementVisible } from './component'
 import { createEvent, dispatchEvent } from './event'
 import { throttle } from './func'
-import { isArray } from './type'
 import { tagImg } from './perf'
 
 const SCREEN_REC_LIMIT = 3  // just record the first 3 times for screen-render finishing.
 let doRecord = true
 
 function preLoadImg (src: string,
-  loadCallback: ?(Event) => void,
-  errorCallback: ?(Event) => void): void {
-    const img = new Image()
-    img.onload = loadCallback ? loadCallback.bind(img) : null
-    img.onerror = errorCallback ? errorCallback.bind(img) : null
-    img.src = src
+    loadCallback: ?(Event) => void,
+    errorCallback: ?(Event) => void): void {
+  const img = new Image()
+  img.onload = loadCallback ? loadCallback.bind(img) : null
+  img.onerror = errorCallback ? errorCallback.bind(img) : null
+  img.src = src
 }
 
 export function applySrc (item: HTMLElement, src: ?string, placeholderSrc: ?string): void {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aab0cf17/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index ac7e066..c3b7784 100644
--- a/package.json
+++ b/package.json
@@ -42,7 +42,7 @@
     "build:runtime": "node build/build.js runtime",
     "build:browser": "wwp && node build/build.js browser",
     "build:browser:common": "rollup -c build/rollup.browser.common.config.js",
-    "build:vue": "node build/build.js vue",
+    "build:vue": "flow check && node build/build.js vue",
     "build:examples": "npm run build:examples:native && npm run build:examples:web",
     "build:examples:native": "webpack --config build/webpack.examples.config.js",
     "build:examples:web": "webpack --config build/webpack.examples.web.config.js",


[44/50] [abbrv] incubator-weex git commit: * [html5] fix soucemap with flow.

Posted by so...@apache.org.
* [html5] fix soucemap with flow.


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

Branch: refs/heads/dev
Commit: 9c97d35e780e62c7ea678a983fa426ec914bf8d1
Parents: 82ff96d
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Mar 31 16:29:47 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Mar 31 16:29:47 2017 +0800

----------------------------------------------------------------------
 build/config.js | 5 +++--
 package.json    | 1 +
 2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9c97d35e/build/config.js
----------------------------------------------------------------------
diff --git a/build/config.js b/build/config.js
index 9518d53..ef15574 100644
--- a/build/config.js
+++ b/build/config.js
@@ -6,7 +6,8 @@ const postcss = require('rollup-plugin-postcss')
 const nodeResolve = require('rollup-plugin-node-resolve')
 const uglify = require('rollup-plugin-uglify')
 const commonjs = require('rollup-plugin-commonjs')
-const flow = require('rollup-plugin-flow')
+// const flow = require('rollup-plugin-flow')
+const flow = require('rollup-plugin-flow-no-whitespace')
 const buble = require('rollup-plugin-buble')
 const subversion = require('../package.json').subversion
 
@@ -98,7 +99,7 @@ function getConfig (name, minify) {
         'process.env.NODE_DEBUG': false
       }),
       commonjs(),
-      flow(),
+      flow(/*{ pretty: true }*/),
       buble()
     ])
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9c97d35e/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 25d3884..8636464 100644
--- a/package.json
+++ b/package.json
@@ -134,6 +134,7 @@
     "rollup-plugin-commonjs": "^5.0.4",
     "rollup-plugin-eslint": "^3.0.0",
     "rollup-plugin-flow": "^1.1.1",
+    "rollup-plugin-flow-no-whitespace": "^1.0.0",
     "rollup-plugin-json": "^2.0.2",
     "rollup-plugin-node-resolve": "^2.0.0",
     "rollup-plugin-postcss": "^0.2.0",


[42/50] [abbrv] incubator-weex git commit: * [html5] remove unused dependencies.

Posted by so...@apache.org.
* [html5] remove unused dependencies.


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

Branch: refs/heads/dev
Commit: 1375a6a13356f340aacb7eca0cef5e4f718cf107
Parents: b5ae07c
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Mar 31 14:38:50 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Mar 31 14:38:50 2017 +0800

----------------------------------------------------------------------
 build/karma.vue.conf.js | 3 ---
 1 file changed, 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1375a6a1/build/karma.vue.conf.js
----------------------------------------------------------------------
diff --git a/build/karma.vue.conf.js b/build/karma.vue.conf.js
index c447026..8844594 100644
--- a/build/karma.vue.conf.js
+++ b/build/karma.vue.conf.js
@@ -1,6 +1,3 @@
-var flow = require('rollup-plugin-flow')
-var buble = require('rollup-plugin-buble')
-var replace = require('rollup-plugin-replace')
 var rollupConfig = require('./config')('weex-vue-render', true)
 var path = require('path')
 


[46/50] [abbrv] incubator-weex git commit: Merge branch '0.11-dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex; branch 'dev-web-test' of http://github.com/MrRaindrop/incubator-weex into 0.11-dev This closes #202

Posted by so...@apache.org.
Merge branch '0.11-dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex; branch 'dev-web-test' of http://github.com/MrRaindrop/incubator-weex into 0.11-dev
This closes #202


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

Branch: refs/heads/dev
Commit: 58fd3fe79a327ca84f694d54eaa69374ca0817af
Parents: f8abba9 82ff96d
Author: sospartan <so...@apache.org>
Authored: Fri Mar 31 17:41:58 2017 +0800
Committer: sospartan <so...@apache.org>
Committed: Fri Mar 31 17:41:58 2017 +0800

----------------------------------------------------------------------
 .eslintrc                                   |   3 +-
 build/karma.vue.conf.js                     |  64 ++++++---
 dangerfile.js                               |   6 +-
 html5/render/vue/components/a.js            |   3 +-
 html5/render/vue/components/div.js          |  10 +-
 html5/render/vue/components/image.js        |   2 +-
 html5/render/vue/mixins/base.js             |   7 +
 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 -
 package.json                                |   4 +-
 23 files changed, 354 insertions(+), 149 deletions(-)
----------------------------------------------------------------------



[14/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/showcase/calculator.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/showcase/calculator.js b/ios/playground/bundlejs/showcase/calculator.js
index 70c14a0..da75dc9 100644
--- a/ios/playground/bundlejs/showcase/calculator.js
+++ b/ios/playground/bundlejs/showcase/calculator.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(229)
-	var __weex_style__ = __webpack_require__(230)
-	var __weex_script__ = __webpack_require__(231)
+	var __weex_template__ = __webpack_require__(247)
+	var __weex_style__ = __webpack_require__(248)
+	var __weex_script__ = __webpack_require__(249)
 
 	__weex_define__('@weex-component/603eadccfc85e9db6c45c597933fe8fe', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2170,7 +2170,25 @@
 /* 226 */,
 /* 227 */,
 /* 228 */,
-/* 229 */
+/* 229 */,
+/* 230 */,
+/* 231 */,
+/* 232 */,
+/* 233 */,
+/* 234 */,
+/* 235 */,
+/* 236 */,
+/* 237 */,
+/* 238 */,
+/* 239 */,
+/* 240 */,
+/* 241 */,
+/* 242 */,
+/* 243 */,
+/* 244 */,
+/* 245 */,
+/* 246 */,
+/* 247 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2420,7 +2438,7 @@
 	}
 
 /***/ },
-/* 230 */
+/* 248 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2453,7 +2471,7 @@
 	}
 
 /***/ },
-/* 231 */
+/* 249 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/showcase/dropdown/dropdown-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/showcase/dropdown/dropdown-demo.js b/ios/playground/bundlejs/showcase/dropdown/dropdown-demo.js
index 3ba57f1..b018ea5 100644
--- a/ios/playground/bundlejs/showcase/dropdown/dropdown-demo.js
+++ b/ios/playground/bundlejs/showcase/dropdown/dropdown-demo.js
@@ -45,10 +45,10 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(232)
-	var __weex_template__ = __webpack_require__(236)
-	var __weex_style__ = __webpack_require__(237)
-	var __weex_script__ = __webpack_require__(238)
+	__webpack_require__(250)
+	var __weex_template__ = __webpack_require__(254)
+	var __weex_style__ = __webpack_require__(255)
+	var __weex_script__ = __webpack_require__(256)
 
 	__weex_define__('@weex-component/f7fd132bdb4ce0ff6745c3887b3163e2', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -75,14 +75,14 @@
 
 /***/ },
 
-/***/ 189:
+/***/ 100:
 /***/ function(module, exports, __webpack_require__) {
 
-	module.exports = { "default": __webpack_require__(190), __esModule: true };
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
 
 /***/ },
 
-/***/ 190:
+/***/ 101:
 /***/ function(module, exports, __webpack_require__) {
 
 	var core  = __webpack_require__(34)
@@ -93,12 +93,12 @@
 
 /***/ },
 
-/***/ 232:
+/***/ 250:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(233)
-	var __weex_style__ = __webpack_require__(234)
-	var __weex_script__ = __webpack_require__(235)
+	var __weex_template__ = __webpack_require__(251)
+	var __weex_style__ = __webpack_require__(252)
+	var __weex_script__ = __webpack_require__(253)
 
 	__weex_define__('@weex-component/we-dropdown', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -116,7 +116,7 @@
 
 /***/ },
 
-/***/ 233:
+/***/ 251:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -222,7 +222,7 @@
 
 /***/ },
 
-/***/ 234:
+/***/ 252:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -306,7 +306,7 @@
 
 /***/ },
 
-/***/ 235:
+/***/ 253:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -404,7 +404,7 @@
 
 /***/ },
 
-/***/ 236:
+/***/ 254:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -502,7 +502,7 @@
 
 /***/ },
 
-/***/ 237:
+/***/ 255:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -575,18 +575,18 @@
 
 /***/ },
 
-/***/ 238:
+/***/ 256:
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	var _stringify = __webpack_require__(189);
+	var _stringify = __webpack_require__(100);
 
 	var _stringify2 = _interopRequireDefault(_stringify);
 
 	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
-	__webpack_require__(232);
+	__webpack_require__(250);
 
 	var initData = '[{\"addTime\":\"2016-07-14\",\"questionStatus\":\"2\",\"questionStatusValue\":\"Closed\",\"title\":\"This is a demo\",\"vid\":\"AW5PMSC\"},{\"addTime\":\"2016-07-14\",\"questionStatus\":\"1\",\"questionStatusValue\":\"Waiting\",\"title\":\"This is a demo\",\"vid\":\"AW5PMSM\"},{\"addTime\":\"2016-07-14\",\"questionStatus\":\"2\",\"questionStatusValue\":\"Confirmed\",\"title\":\"This is a demo\",\"vid\":\"AW5PMSA\"}]';
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/showcase/dropdown/we-dropdown.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/showcase/dropdown/we-dropdown.js b/ios/playground/bundlejs/showcase/dropdown/we-dropdown.js
index 417fbfa..9278e80 100644
--- a/ios/playground/bundlejs/showcase/dropdown/we-dropdown.js
+++ b/ios/playground/bundlejs/showcase/dropdown/we-dropdown.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(233)
-	var __weex_style__ = __webpack_require__(234)
-	var __weex_script__ = __webpack_require__(235)
+	var __weex_template__ = __webpack_require__(251)
+	var __weex_style__ = __webpack_require__(252)
+	var __weex_script__ = __webpack_require__(253)
 
 	__weex_define__('@weex-component/ffbcbcf1bd6120b070f00ceafeb0160e', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 233:
+/***/ 251:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -172,7 +172,7 @@
 
 /***/ },
 
-/***/ 234:
+/***/ 252:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -256,7 +256,7 @@
 
 /***/ },
 
-/***/ 235:
+/***/ 253:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/showcase/minesweeper.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/showcase/minesweeper.js b/ios/playground/bundlejs/showcase/minesweeper.js
index 524b80e..88afeda 100644
--- a/ios/playground/bundlejs/showcase/minesweeper.js
+++ b/ios/playground/bundlejs/showcase/minesweeper.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(239)
-	var __weex_style__ = __webpack_require__(240)
-	var __weex_script__ = __webpack_require__(241)
+	var __weex_template__ = __webpack_require__(257)
+	var __weex_style__ = __webpack_require__(258)
+	var __weex_script__ = __webpack_require__(259)
 
 	__weex_define__('@weex-component/c0df89e239d226d3a0c6f418314cda04', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 239:
+/***/ 257:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -130,7 +130,7 @@
 
 /***/ },
 
-/***/ 240:
+/***/ 258:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -164,7 +164,7 @@
 
 /***/ },
 
-/***/ 241:
+/***/ 259:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/showcase/pseudo-class.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/showcase/pseudo-class.js b/ios/playground/bundlejs/showcase/pseudo-class.js
index cbd263e..ef804a2 100644
--- a/ios/playground/bundlejs/showcase/pseudo-class.js
+++ b/ios/playground/bundlejs/showcase/pseudo-class.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(292)
-	var __weex_style__ = __webpack_require__(293)
-	var __weex_script__ = __webpack_require__(294)
+	var __weex_template__ = __webpack_require__(310)
+	var __weex_style__ = __webpack_require__(311)
+	var __weex_script__ = __webpack_require__(312)
 
 	__weex_define__('@weex-component/07aaf1221ad656e37ebe37291f40d193', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2233,7 +2233,25 @@
 /* 289 */,
 /* 290 */,
 /* 291 */,
-/* 292 */
+/* 292 */,
+/* 293 */,
+/* 294 */,
+/* 295 */,
+/* 296 */,
+/* 297 */,
+/* 298 */,
+/* 299 */,
+/* 300 */,
+/* 301 */,
+/* 302 */,
+/* 303 */,
+/* 304 */,
+/* 305 */,
+/* 306 */,
+/* 307 */,
+/* 308 */,
+/* 309 */,
+/* 310 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2359,7 +2377,7 @@
 	}
 
 /***/ },
-/* 293 */
+/* 311 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2402,7 +2420,7 @@
 	}
 
 /***/ },
-/* 294 */
+/* 312 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/showcase/ui.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/showcase/ui.js b/ios/playground/bundlejs/showcase/ui.js
index 6c85295..ba4154f 100644
--- a/ios/playground/bundlejs/showcase/ui.js
+++ b/ios/playground/bundlejs/showcase/ui.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(295)
-	var __weex_style__ = __webpack_require__(296)
-	var __weex_script__ = __webpack_require__(297)
+	var __weex_template__ = __webpack_require__(313)
+	var __weex_style__ = __webpack_require__(314)
+	var __weex_script__ = __webpack_require__(315)
 
 	__weex_define__('@weex-component/045f40e22d4b6e9c9f36354367812ecd', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2236,7 +2236,25 @@
 /* 292 */,
 /* 293 */,
 /* 294 */,
-/* 295 */
+/* 295 */,
+/* 296 */,
+/* 297 */,
+/* 298 */,
+/* 299 */,
+/* 300 */,
+/* 301 */,
+/* 302 */,
+/* 303 */,
+/* 304 */,
+/* 305 */,
+/* 306 */,
+/* 307 */,
+/* 308 */,
+/* 309 */,
+/* 310 */,
+/* 311 */,
+/* 312 */,
+/* 313 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2399,7 +2417,7 @@
 	}
 
 /***/ },
-/* 296 */
+/* 314 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2410,7 +2428,7 @@
 	}
 
 /***/ },
-/* 297 */
+/* 315 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/style/index.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/style/index.js b/ios/playground/bundlejs/style/index.js
index 0b1deb1..5ff0358 100644
--- a/ios/playground/bundlejs/style/index.js
+++ b/ios/playground/bundlejs/style/index.js
@@ -44,12 +44,12 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(298)
-	__webpack_require__(306)
-	__webpack_require__(299)
-	var __weex_template__ = __webpack_require__(310)
-	var __weex_style__ = __webpack_require__(311)
-	var __weex_script__ = __webpack_require__(312)
+	__webpack_require__(316)
+	__webpack_require__(324)
+	__webpack_require__(317)
+	var __weex_template__ = __webpack_require__(328)
+	var __weex_style__ = __webpack_require__(329)
+	var __weex_script__ = __webpack_require__(330)
 
 	__weex_define__('@weex-component/2bb97ed0198ea3308e26ee13c0047c9c', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2242,13 +2242,31 @@
 /* 295 */,
 /* 296 */,
 /* 297 */,
-/* 298 */
+/* 298 */,
+/* 299 */,
+/* 300 */,
+/* 301 */,
+/* 302 */,
+/* 303 */,
+/* 304 */,
+/* 305 */,
+/* 306 */,
+/* 307 */,
+/* 308 */,
+/* 309 */,
+/* 310 */,
+/* 311 */,
+/* 312 */,
+/* 313 */,
+/* 314 */,
+/* 315 */,
+/* 316 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(299)
-	var __weex_template__ = __webpack_require__(303)
-	var __weex_style__ = __webpack_require__(304)
-	var __weex_script__ = __webpack_require__(305)
+	__webpack_require__(317)
+	var __weex_template__ = __webpack_require__(321)
+	var __weex_style__ = __webpack_require__(322)
+	var __weex_script__ = __webpack_require__(323)
 
 	__weex_define__('@weex-component/style-box', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2265,12 +2283,12 @@
 
 
 /***/ },
-/* 299 */
+/* 317 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(300)
-	var __weex_style__ = __webpack_require__(301)
-	var __weex_script__ = __webpack_require__(302)
+	var __weex_template__ = __webpack_require__(318)
+	var __weex_style__ = __webpack_require__(319)
+	var __weex_script__ = __webpack_require__(320)
 
 	__weex_define__('@weex-component/style-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2287,7 +2305,7 @@
 
 
 /***/ },
-/* 300 */
+/* 318 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2305,7 +2323,7 @@
 	}
 
 /***/ },
-/* 301 */
+/* 319 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2324,7 +2342,7 @@
 	}
 
 /***/ },
-/* 302 */
+/* 320 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -2343,7 +2361,7 @@
 
 
 /***/ },
-/* 303 */
+/* 321 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2609,7 +2627,7 @@
 	}
 
 /***/ },
-/* 304 */
+/* 322 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2632,7 +2650,7 @@
 	}
 
 /***/ },
-/* 305 */
+/* 323 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -2647,13 +2665,13 @@
 
 
 /***/ },
-/* 306 */
+/* 324 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(299)
-	var __weex_template__ = __webpack_require__(307)
-	var __weex_style__ = __webpack_require__(308)
-	var __weex_script__ = __webpack_require__(309)
+	__webpack_require__(317)
+	var __weex_template__ = __webpack_require__(325)
+	var __weex_style__ = __webpack_require__(326)
+	var __weex_script__ = __webpack_require__(327)
 
 	__weex_define__('@weex-component/style-flex', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2670,7 +2688,7 @@
 
 
 /***/ },
-/* 307 */
+/* 325 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3296,7 +3314,7 @@
 	}
 
 /***/ },
-/* 308 */
+/* 326 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3313,7 +3331,7 @@
 	}
 
 /***/ },
-/* 309 */
+/* 327 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -3323,7 +3341,7 @@
 
 
 /***/ },
-/* 310 */
+/* 328 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3466,7 +3484,7 @@
 	}
 
 /***/ },
-/* 311 */
+/* 329 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3477,7 +3495,7 @@
 	}
 
 /***/ },
-/* 312 */
+/* 330 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/style/style-box.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/style/style-box.js b/ios/playground/bundlejs/style/style-box.js
index 2e39db7..e9186b7 100644
--- a/ios/playground/bundlejs/style/style-box.js
+++ b/ios/playground/bundlejs/style/style-box.js
@@ -44,10 +44,10 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(299)
-	var __weex_template__ = __webpack_require__(303)
-	var __weex_style__ = __webpack_require__(304)
-	var __weex_script__ = __webpack_require__(305)
+	__webpack_require__(317)
+	var __weex_template__ = __webpack_require__(321)
+	var __weex_style__ = __webpack_require__(322)
+	var __weex_script__ = __webpack_require__(323)
 
 	__weex_define__('@weex-component/1cc382dbc23ca75e8dd34af712ba54f1', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2241,12 +2241,30 @@
 /* 296 */,
 /* 297 */,
 /* 298 */,
-/* 299 */
+/* 299 */,
+/* 300 */,
+/* 301 */,
+/* 302 */,
+/* 303 */,
+/* 304 */,
+/* 305 */,
+/* 306 */,
+/* 307 */,
+/* 308 */,
+/* 309 */,
+/* 310 */,
+/* 311 */,
+/* 312 */,
+/* 313 */,
+/* 314 */,
+/* 315 */,
+/* 316 */,
+/* 317 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(300)
-	var __weex_style__ = __webpack_require__(301)
-	var __weex_script__ = __webpack_require__(302)
+	var __weex_template__ = __webpack_require__(318)
+	var __weex_style__ = __webpack_require__(319)
+	var __weex_script__ = __webpack_require__(320)
 
 	__weex_define__('@weex-component/style-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2263,7 +2281,7 @@
 
 
 /***/ },
-/* 300 */
+/* 318 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2281,7 +2299,7 @@
 	}
 
 /***/ },
-/* 301 */
+/* 319 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2300,7 +2318,7 @@
 	}
 
 /***/ },
-/* 302 */
+/* 320 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -2319,7 +2337,7 @@
 
 
 /***/ },
-/* 303 */
+/* 321 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2585,7 +2603,7 @@
 	}
 
 /***/ },
-/* 304 */
+/* 322 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2608,7 +2626,7 @@
 	}
 
 /***/ },
-/* 305 */
+/* 323 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/style/style-flex.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/style/style-flex.js b/ios/playground/bundlejs/style/style-flex.js
index 4b9dcf0..29ad99f 100644
--- a/ios/playground/bundlejs/style/style-flex.js
+++ b/ios/playground/bundlejs/style/style-flex.js
@@ -44,10 +44,10 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(299)
-	var __weex_template__ = __webpack_require__(307)
-	var __weex_style__ = __webpack_require__(308)
-	var __weex_script__ = __webpack_require__(309)
+	__webpack_require__(317)
+	var __weex_template__ = __webpack_require__(325)
+	var __weex_style__ = __webpack_require__(326)
+	var __weex_script__ = __webpack_require__(327)
 
 	__weex_define__('@weex-component/601bcbb157cb7b89fd0d4cc63178b528', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2241,12 +2241,30 @@
 /* 296 */,
 /* 297 */,
 /* 298 */,
-/* 299 */
+/* 299 */,
+/* 300 */,
+/* 301 */,
+/* 302 */,
+/* 303 */,
+/* 304 */,
+/* 305 */,
+/* 306 */,
+/* 307 */,
+/* 308 */,
+/* 309 */,
+/* 310 */,
+/* 311 */,
+/* 312 */,
+/* 313 */,
+/* 314 */,
+/* 315 */,
+/* 316 */,
+/* 317 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(300)
-	var __weex_style__ = __webpack_require__(301)
-	var __weex_script__ = __webpack_require__(302)
+	var __weex_template__ = __webpack_require__(318)
+	var __weex_style__ = __webpack_require__(319)
+	var __weex_script__ = __webpack_require__(320)
 
 	__weex_define__('@weex-component/style-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2263,7 +2281,7 @@
 
 
 /***/ },
-/* 300 */
+/* 318 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2281,7 +2299,7 @@
 	}
 
 /***/ },
-/* 301 */
+/* 319 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2300,7 +2318,7 @@
 	}
 
 /***/ },
-/* 302 */
+/* 320 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -2319,11 +2337,11 @@
 
 
 /***/ },
-/* 303 */,
-/* 304 */,
-/* 305 */,
-/* 306 */,
-/* 307 */
+/* 321 */,
+/* 322 */,
+/* 323 */,
+/* 324 */,
+/* 325 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2949,7 +2967,7 @@
 	}
 
 /***/ },
-/* 308 */
+/* 326 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2966,7 +2984,7 @@
 	}
 
 /***/ },
-/* 309 */
+/* 327 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/style/style-item.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/style/style-item.js b/ios/playground/bundlejs/style/style-item.js
index 165bb94..20d5b37 100644
--- a/ios/playground/bundlejs/style/style-item.js
+++ b/ios/playground/bundlejs/style/style-item.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(300)
-	var __weex_style__ = __webpack_require__(301)
-	var __weex_script__ = __webpack_require__(302)
+	var __weex_template__ = __webpack_require__(318)
+	var __weex_style__ = __webpack_require__(319)
+	var __weex_script__ = __webpack_require__(320)
 
 	__weex_define__('@weex-component/db2a20e3c65e67c0f449e29c05c9d644', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 300:
+/***/ 318:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -85,7 +85,7 @@
 
 /***/ },
 
-/***/ 301:
+/***/ 319:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -105,7 +105,7 @@
 
 /***/ },
 
-/***/ 302:
+/***/ 320:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/hello-world-1.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/hello-world-1.js b/ios/playground/bundlejs/syntax/hello-world-1.js
index 17cd24e..d9924ea 100644
--- a/ios/playground/bundlejs/syntax/hello-world-1.js
+++ b/ios/playground/bundlejs/syntax/hello-world-1.js
@@ -45,7 +45,7 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(316)
+	var __weex_template__ = __webpack_require__(334)
 
 	__weex_define__('@weex-component/5e6bbced7515fc4165499153f5d8276a', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -57,7 +57,7 @@
 
 /***/ },
 
-/***/ 316:
+/***/ 334:
 /***/ function(module, exports) {
 
 	module.exports = {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/hello-world-2.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/hello-world-2.js b/ios/playground/bundlejs/syntax/hello-world-2.js
index 6c32cec..a01c24a 100644
--- a/ios/playground/bundlejs/syntax/hello-world-2.js
+++ b/ios/playground/bundlejs/syntax/hello-world-2.js
@@ -45,7 +45,7 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(317)
+	var __weex_template__ = __webpack_require__(335)
 
 	__weex_define__('@weex-component/25608f094c039b891a20c8161b9c650b', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -57,7 +57,7 @@
 
 /***/ },
 
-/***/ 317:
+/***/ 335:
 /***/ function(module, exports) {
 
 	module.exports = {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/hello-world-3.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/hello-world-3.js b/ios/playground/bundlejs/syntax/hello-world-3.js
index e1e6964..a76d526 100644
--- a/ios/playground/bundlejs/syntax/hello-world-3.js
+++ b/ios/playground/bundlejs/syntax/hello-world-3.js
@@ -45,8 +45,8 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(318)
-	var __weex_style__ = __webpack_require__(319)
+	var __weex_template__ = __webpack_require__(336)
+	var __weex_style__ = __webpack_require__(337)
 
 	__weex_define__('@weex-component/695862caffb746fa67bb70cbd1bb819e', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -60,7 +60,7 @@
 
 /***/ },
 
-/***/ 318:
+/***/ 336:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -92,7 +92,7 @@
 
 /***/ },
 
-/***/ 319:
+/***/ 337:
 /***/ function(module, exports) {
 
 	module.exports = {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/hello-world-4.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/hello-world-4.js b/ios/playground/bundlejs/syntax/hello-world-4.js
index d357d04..0ca44ae 100644
--- a/ios/playground/bundlejs/syntax/hello-world-4.js
+++ b/ios/playground/bundlejs/syntax/hello-world-4.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(320)
-	var __weex_style__ = __webpack_require__(321)
-	var __weex_script__ = __webpack_require__(322)
+	var __weex_template__ = __webpack_require__(338)
+	var __weex_style__ = __webpack_require__(339)
+	var __weex_script__ = __webpack_require__(340)
 
 	__weex_define__('@weex-component/efbfb8ecf417c1cf14746fdf4099343d', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 320:
+/***/ 338:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -98,7 +98,7 @@
 
 /***/ },
 
-/***/ 321:
+/***/ 339:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -117,7 +117,7 @@
 
 /***/ },
 
-/***/ 322:
+/***/ 340:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/hello-world-5.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/hello-world-5.js b/ios/playground/bundlejs/syntax/hello-world-5.js
index 8014711..09cf978 100644
--- a/ios/playground/bundlejs/syntax/hello-world-5.js
+++ b/ios/playground/bundlejs/syntax/hello-world-5.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(323)
-	var __weex_style__ = __webpack_require__(324)
-	var __weex_script__ = __webpack_require__(325)
+	var __weex_template__ = __webpack_require__(341)
+	var __weex_style__ = __webpack_require__(342)
+	var __weex_script__ = __webpack_require__(343)
 
 	__weex_define__('@weex-component/06cb3b1cf32d7e68eb4f41a491128601', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 323:
+/***/ 341:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -101,7 +101,7 @@
 
 /***/ },
 
-/***/ 324:
+/***/ 342:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -120,7 +120,7 @@
 
 /***/ },
 
-/***/ 325:
+/***/ 343:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/hello-world.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/hello-world.js b/ios/playground/bundlejs/syntax/hello-world.js
index f99a87b..e9dcda6 100644
--- a/ios/playground/bundlejs/syntax/hello-world.js
+++ b/ios/playground/bundlejs/syntax/hello-world.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(313)
-	var __weex_style__ = __webpack_require__(314)
-	var __weex_script__ = __webpack_require__(315)
+	var __weex_template__ = __webpack_require__(331)
+	var __weex_style__ = __webpack_require__(332)
+	var __weex_script__ = __webpack_require__(333)
 
 	__weex_define__('@weex-component/ca86dd7272942388d48952706d37e8a7', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 313:
+/***/ 331:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -101,7 +101,7 @@
 
 /***/ },
 
-/***/ 314:
+/***/ 332:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -120,7 +120,7 @@
 
 /***/ },
 
-/***/ 315:
+/***/ 333:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/index.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/index.js b/ios/playground/bundlejs/syntax/index.js
index 83e324c..c2b94c1 100644
--- a/ios/playground/bundlejs/syntax/index.js
+++ b/ios/playground/bundlejs/syntax/index.js
@@ -44,8 +44,8 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(326)
-	var __weex_script__ = __webpack_require__(327)
+	var __weex_template__ = __webpack_require__(344)
+	var __weex_script__ = __webpack_require__(345)
 
 	__weex_define__('@weex-component/7c0aa0b76c7fe063e27065c721bee1a0', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2048,18 +2048,23 @@
 /* 107 */,
 /* 108 */,
 /* 109 */,
-/* 110 */
+/* 110 */,
+/* 111 */,
+/* 112 */,
+/* 113 */,
+/* 114 */,
+/* 115 */
 /***/ function(module, exports, __webpack_require__) {
 
 	"use strict";
 
 	exports.__esModule = true;
 
-	var _iterator = __webpack_require__(111);
+	var _iterator = __webpack_require__(116);
 
 	var _iterator2 = _interopRequireDefault(_iterator);
 
-	var _symbol = __webpack_require__(131);
+	var _symbol = __webpack_require__(136);
 
 	var _symbol2 = _interopRequireDefault(_symbol);
 
@@ -2074,28 +2079,28 @@
 	};
 
 /***/ },
-/* 111 */
+/* 116 */
 /***/ function(module, exports, __webpack_require__) {
 
-	module.exports = { "default": __webpack_require__(112), __esModule: true };
+	module.exports = { "default": __webpack_require__(117), __esModule: true };
 
 /***/ },
-/* 112 */
+/* 117 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(113);
-	__webpack_require__(126);
-	module.exports = __webpack_require__(130).f('iterator');
+	__webpack_require__(118);
+	__webpack_require__(131);
+	module.exports = __webpack_require__(135).f('iterator');
 
 /***/ },
-/* 113 */
+/* 118 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
-	var $at  = __webpack_require__(114)(true);
+	var $at  = __webpack_require__(119)(true);
 
 	// 21.1.3.27 String.prototype[@@iterator]()
-	__webpack_require__(115)(String, 'String', function(iterated){
+	__webpack_require__(120)(String, 'String', function(iterated){
 	  this._t = String(iterated); // target
 	  this._i = 0;                // next index
 	// 21.1.5.2.1 %StringIteratorPrototype%.next()
@@ -2110,7 +2115,7 @@
 	});
 
 /***/ },
-/* 114 */
+/* 119 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var toInteger = __webpack_require__(57)
@@ -2132,20 +2137,20 @@
 	};
 
 /***/ },
-/* 115 */
+/* 120 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
-	var LIBRARY        = __webpack_require__(116)
+	var LIBRARY        = __webpack_require__(121)
 	  , $export        = __webpack_require__(32)
-	  , redefine       = __webpack_require__(117)
+	  , redefine       = __webpack_require__(122)
 	  , hide           = __webpack_require__(37)
 	  , has            = __webpack_require__(50)
-	  , Iterators      = __webpack_require__(118)
-	  , $iterCreate    = __webpack_require__(119)
-	  , setToStringTag = __webpack_require__(123)
-	  , getPrototypeOf = __webpack_require__(125)
-	  , ITERATOR       = __webpack_require__(124)('iterator')
+	  , Iterators      = __webpack_require__(123)
+	  , $iterCreate    = __webpack_require__(124)
+	  , setToStringTag = __webpack_require__(128)
+	  , getPrototypeOf = __webpack_require__(130)
+	  , ITERATOR       = __webpack_require__(129)('iterator')
 	  , BUGGY          = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
 	  , FF_ITERATOR    = '@@iterator'
 	  , KEYS           = 'keys'
@@ -2207,35 +2212,35 @@
 	};
 
 /***/ },
-/* 116 */
+/* 121 */
 /***/ function(module, exports) {
 
 	module.exports = true;
 
 /***/ },
-/* 117 */
+/* 122 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = __webpack_require__(37);
 
 /***/ },
-/* 118 */
+/* 123 */
 /***/ function(module, exports) {
 
 	module.exports = {};
 
 /***/ },
-/* 119 */
+/* 124 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
-	var create         = __webpack_require__(120)
+	var create         = __webpack_require__(125)
 	  , descriptor     = __webpack_require__(46)
-	  , setToStringTag = __webpack_require__(123)
+	  , setToStringTag = __webpack_require__(128)
 	  , IteratorPrototype = {};
 
 	// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-	__webpack_require__(37)(IteratorPrototype, __webpack_require__(124)('iterator'), function(){ return this; });
+	__webpack_require__(37)(IteratorPrototype, __webpack_require__(129)('iterator'), function(){ return this; });
 
 	module.exports = function(Constructor, NAME, next){
 	  Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
@@ -2243,12 +2248,12 @@
 	};
 
 /***/ },
-/* 120 */
+/* 125 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
 	var anObject    = __webpack_require__(39)
-	  , dPs         = __webpack_require__(121)
+	  , dPs         = __webpack_require__(126)
 	  , enumBugKeys = __webpack_require__(62)
 	  , IE_PROTO    = __webpack_require__(59)('IE_PROTO')
 	  , Empty       = function(){ /* empty */ }
@@ -2263,7 +2268,7 @@
 	    , gt     = '>'
 	    , iframeDocument;
 	  iframe.style.display = 'none';
-	  __webpack_require__(122).appendChild(iframe);
+	  __webpack_require__(127).appendChild(iframe);
 	  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
 	  // createDict = iframe.contentWindow.Object;
 	  // html.removeChild(iframe);
@@ -2290,7 +2295,7 @@
 
 
 /***/ },
-/* 121 */
+/* 126 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var dP       = __webpack_require__(38)
@@ -2308,25 +2313,25 @@
 	};
 
 /***/ },
-/* 122 */
+/* 127 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = __webpack_require__(33).document && document.documentElement;
 
 /***/ },
-/* 123 */
+/* 128 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var def = __webpack_require__(38).f
 	  , has = __webpack_require__(50)
-	  , TAG = __webpack_require__(124)('toStringTag');
+	  , TAG = __webpack_require__(129)('toStringTag');
 
 	module.exports = function(it, tag, stat){
 	  if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
 	};
 
 /***/ },
-/* 124 */
+/* 129 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var store      = __webpack_require__(60)('wks')
@@ -2342,7 +2347,7 @@
 	$exports.store = store;
 
 /***/ },
-/* 125 */
+/* 130 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
@@ -2360,14 +2365,14 @@
 	};
 
 /***/ },
-/* 126 */
+/* 131 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(127);
+	__webpack_require__(132);
 	var global        = __webpack_require__(33)
 	  , hide          = __webpack_require__(37)
-	  , Iterators     = __webpack_require__(118)
-	  , TO_STRING_TAG = __webpack_require__(124)('toStringTag');
+	  , Iterators     = __webpack_require__(123)
+	  , TO_STRING_TAG = __webpack_require__(129)('toStringTag');
 
 	for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
 	  var NAME       = collections[i]
@@ -2378,20 +2383,20 @@
 	}
 
 /***/ },
-/* 127 */
+/* 132 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
-	var addToUnscopables = __webpack_require__(128)
-	  , step             = __webpack_require__(129)
-	  , Iterators        = __webpack_require__(118)
+	var addToUnscopables = __webpack_require__(133)
+	  , step             = __webpack_require__(134)
+	  , Iterators        = __webpack_require__(123)
 	  , toIObject        = __webpack_require__(51);
 
 	// 22.1.3.4 Array.prototype.entries()
 	// 22.1.3.13 Array.prototype.keys()
 	// 22.1.3.29 Array.prototype.values()
 	// 22.1.3.30 Array.prototype[@@iterator]()
-	module.exports = __webpack_require__(115)(Array, 'Array', function(iterated, kind){
+	module.exports = __webpack_require__(120)(Array, 'Array', function(iterated, kind){
 	  this._t = toIObject(iterated); // target
 	  this._i = 0;                   // next index
 	  this._k = kind;                // kind
@@ -2417,13 +2422,13 @@
 	addToUnscopables('entries');
 
 /***/ },
-/* 128 */
+/* 133 */
 /***/ function(module, exports) {
 
 	module.exports = function(){ /* empty */ };
 
 /***/ },
-/* 129 */
+/* 134 */
 /***/ function(module, exports) {
 
 	module.exports = function(done, value){
@@ -2431,29 +2436,29 @@
 	};
 
 /***/ },
-/* 130 */
+/* 135 */
 /***/ function(module, exports, __webpack_require__) {
 
-	exports.f = __webpack_require__(124);
+	exports.f = __webpack_require__(129);
 
 /***/ },
-/* 131 */
+/* 136 */
 /***/ function(module, exports, __webpack_require__) {
 
-	module.exports = { "default": __webpack_require__(132), __esModule: true };
+	module.exports = { "default": __webpack_require__(137), __esModule: true };
 
 /***/ },
-/* 132 */
+/* 137 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(133);
-	__webpack_require__(142);
-	__webpack_require__(143);
-	__webpack_require__(144);
+	__webpack_require__(138);
+	__webpack_require__(147);
+	__webpack_require__(148);
+	__webpack_require__(149);
 	module.exports = __webpack_require__(34).Symbol;
 
 /***/ },
-/* 133 */
+/* 138 */
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -2462,25 +2467,25 @@
 	  , has            = __webpack_require__(50)
 	  , DESCRIPTORS    = __webpack_require__(42)
 	  , $export        = __webpack_require__(32)
-	  , redefine       = __webpack_require__(117)
-	  , META           = __webpack_require__(134).KEY
+	  , redefine       = __webpack_require__(122)
+	  , META           = __webpack_require__(139).KEY
 	  , $fails         = __webpack_require__(43)
 	  , shared         = __webpack_require__(60)
-	  , setToStringTag = __webpack_require__(123)
+	  , setToStringTag = __webpack_require__(128)
 	  , uid            = __webpack_require__(61)
-	  , wks            = __webpack_require__(124)
-	  , wksExt         = __webpack_require__(130)
-	  , wksDefine      = __webpack_require__(135)
-	  , keyOf          = __webpack_require__(136)
-	  , enumKeys       = __webpack_require__(137)
-	  , isArray        = __webpack_require__(138)
+	  , wks            = __webpack_require__(129)
+	  , wksExt         = __webpack_require__(135)
+	  , wksDefine      = __webpack_require__(140)
+	  , keyOf          = __webpack_require__(141)
+	  , enumKeys       = __webpack_require__(142)
+	  , isArray        = __webpack_require__(143)
 	  , anObject       = __webpack_require__(39)
 	  , toIObject      = __webpack_require__(51)
 	  , toPrimitive    = __webpack_require__(45)
 	  , createDesc     = __webpack_require__(46)
-	  , _create        = __webpack_require__(120)
-	  , gOPNExt        = __webpack_require__(139)
-	  , $GOPD          = __webpack_require__(141)
+	  , _create        = __webpack_require__(125)
+	  , gOPNExt        = __webpack_require__(144)
+	  , $GOPD          = __webpack_require__(146)
 	  , $DP            = __webpack_require__(38)
 	  , $keys          = __webpack_require__(48)
 	  , gOPD           = $GOPD.f
@@ -2605,11 +2610,11 @@
 
 	  $GOPD.f = $getOwnPropertyDescriptor;
 	  $DP.f   = $defineProperty;
-	  __webpack_require__(140).f = gOPNExt.f = $getOwnPropertyNames;
+	  __webpack_require__(145).f = gOPNExt.f = $getOwnPropertyNames;
 	  __webpack_require__(64).f  = $propertyIsEnumerable;
 	  __webpack_require__(63).f = $getOwnPropertySymbols;
 
-	  if(DESCRIPTORS && !__webpack_require__(116)){
+	  if(DESCRIPTORS && !__webpack_require__(121)){
 	    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
 	  }
 
@@ -2693,7 +2698,7 @@
 	setToStringTag(global.JSON, 'JSON', true);
 
 /***/ },
-/* 134 */
+/* 139 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var META     = __webpack_require__(61)('meta')
@@ -2751,13 +2756,13 @@
 	};
 
 /***/ },
-/* 135 */
+/* 140 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var global         = __webpack_require__(33)
 	  , core           = __webpack_require__(34)
-	  , LIBRARY        = __webpack_require__(116)
-	  , wksExt         = __webpack_require__(130)
+	  , LIBRARY        = __webpack_require__(121)
+	  , wksExt         = __webpack_require__(135)
 	  , defineProperty = __webpack_require__(38).f;
 	module.exports = function(name){
 	  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
@@ -2765,7 +2770,7 @@
 	};
 
 /***/ },
-/* 136 */
+/* 141 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var getKeys   = __webpack_require__(48)
@@ -2780,7 +2785,7 @@
 	};
 
 /***/ },
-/* 137 */
+/* 142 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// all enumerable object keys, includes symbols
@@ -2800,7 +2805,7 @@
 	};
 
 /***/ },
-/* 138 */
+/* 143 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// 7.2.2 IsArray(argument)
@@ -2810,12 +2815,12 @@
 	};
 
 /***/ },
-/* 139 */
+/* 144 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
 	var toIObject = __webpack_require__(51)
-	  , gOPN      = __webpack_require__(140).f
+	  , gOPN      = __webpack_require__(145).f
 	  , toString  = {}.toString;
 
 	var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
@@ -2835,7 +2840,7 @@
 
 
 /***/ },
-/* 140 */
+/* 145 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
@@ -2847,7 +2852,7 @@
 	};
 
 /***/ },
-/* 141 */
+/* 146 */
 /***/ function(module, exports, __webpack_require__) {
 
 	var pIE            = __webpack_require__(64)
@@ -2868,29 +2873,24 @@
 	};
 
 /***/ },
-/* 142 */
+/* 147 */
 /***/ function(module, exports) {
 
 	
 
 /***/ },
-/* 143 */
+/* 148 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(135)('asyncIterator');
+	__webpack_require__(140)('asyncIterator');
 
 /***/ },
-/* 144 */
+/* 149 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(135)('observable');
+	__webpack_require__(140)('observable');
 
 /***/ },
-/* 145 */,
-/* 146 */,
-/* 147 */,
-/* 148 */,
-/* 149 */,
 /* 150 */,
 /* 151 */,
 /* 152 */,
@@ -2938,13 +2938,23 @@
 /* 194 */,
 /* 195 */,
 /* 196 */,
-/* 197 */
+/* 197 */,
+/* 198 */,
+/* 199 */,
+/* 200 */,
+/* 201 */,
+/* 202 */,
+/* 203 */,
+/* 204 */,
+/* 205 */,
+/* 206 */,
+/* 207 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(198)
-	var __weex_template__ = __webpack_require__(202)
-	var __weex_style__ = __webpack_require__(203)
-	var __weex_script__ = __webpack_require__(204)
+	__webpack_require__(208)
+	var __weex_template__ = __webpack_require__(212)
+	var __weex_style__ = __webpack_require__(213)
+	var __weex_script__ = __webpack_require__(214)
 
 	__weex_define__('@weex-component/example-list', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2961,12 +2971,12 @@
 
 
 /***/ },
-/* 198 */
+/* 208 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(199)
-	var __weex_style__ = __webpack_require__(200)
-	var __weex_script__ = __webpack_require__(201)
+	var __weex_template__ = __webpack_require__(209)
+	var __weex_style__ = __webpack_require__(210)
+	var __weex_script__ = __webpack_require__(211)
 
 	__weex_define__('@weex-component/example-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2983,11 +2993,17 @@
 
 
 /***/ },
-/* 199 */
+/* 209 */
 /***/ function(module, exports) {
 
 	module.exports = {
-	  "type": "wxc-list-item",
+	  "type": "div",
+	  "classList": [
+	    "item"
+	  ],
+	  "style": {
+	    "backgroundColor": function () {return this.bgColor}
+	  },
 	  "events": {
 	    "click": "redirect"
 	  },
@@ -3005,18 +3021,37 @@
 	}
 
 /***/ },
-/* 200 */
+/* 210 */
 /***/ function(module, exports) {
 
 	module.exports = {
 	  "item-txt": {
 	    "fontSize": 48,
 	    "color": "#555555"
+	  },
+	  "item": {
+	    "paddingTop": 25,
+	    "paddingBottom": 25,
+	    "paddingLeft": 35,
+	    "paddingRight": 35,
+	    "height": 160,
+	    "justifyContent": "center",
+	    "borderBottomWidth": 1,
+	    "borderColor": "#dddddd",
+	    "paddingTop:active": 25,
+	    "paddingBottom:active": 25,
+	    "paddingLeft:active": 35,
+	    "paddingRight:active": 35,
+	    "height:active": 160,
+	    "justifyContent:active": "center",
+	    "backgroundColor:active": "#00BDFF",
+	    "borderBottomWidth:active": 1,
+	    "borderColor:active": "#dddddd"
 	  }
 	}
 
 /***/ },
-/* 201 */
+/* 211 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -3025,7 +3060,8 @@
 	module.exports = {
 	  data: function () {return {
 	    title: '',
-	    url: ''
+	    url: '',
+	    bgColor: '#ffffff'
 	  }},
 	  methods: {
 	    redirect: function redirect() {
@@ -3037,7 +3073,7 @@
 
 
 /***/ },
-/* 202 */
+/* 212 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3061,18 +3097,18 @@
 	}
 
 /***/ },
-/* 203 */
+/* 213 */
 /***/ function(module, exports) {
 
 	module.exports = {}
 
 /***/ },
-/* 204 */
+/* 214 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	var _typeof2 = __webpack_require__(110);
+	var _typeof2 = __webpack_require__(115);
 
 	var _typeof3 = _interopRequireDefault(_typeof2);
 
@@ -3130,16 +3166,6 @@
 
 
 /***/ },
-/* 205 */,
-/* 206 */,
-/* 207 */,
-/* 208 */,
-/* 209 */,
-/* 210 */,
-/* 211 */,
-/* 212 */,
-/* 213 */,
-/* 214 */,
 /* 215 */,
 /* 216 */,
 /* 217 */,
@@ -3251,7 +3277,25 @@
 /* 323 */,
 /* 324 */,
 /* 325 */,
-/* 326 */
+/* 326 */,
+/* 327 */,
+/* 328 */,
+/* 329 */,
+/* 330 */,
+/* 331 */,
+/* 332 */,
+/* 333 */,
+/* 334 */,
+/* 335 */,
+/* 336 */,
+/* 337 */,
+/* 338 */,
+/* 339 */,
+/* 340 */,
+/* 341 */,
+/* 342 */,
+/* 343 */,
+/* 344 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3263,12 +3307,12 @@
 	}
 
 /***/ },
-/* 327 */
+/* 345 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	__webpack_require__(197);
+	__webpack_require__(207);
 	module.exports = {
 	  data: function () {return {
 	    root: 'examples',

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/script-component.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/script-component.js b/ios/playground/bundlejs/syntax/script-component.js
index 2206b90..e33bc05 100644
--- a/ios/playground/bundlejs/syntax/script-component.js
+++ b/ios/playground/bundlejs/syntax/script-component.js
@@ -45,8 +45,8 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(328)
-	var __weex_script__ = __webpack_require__(329)
+	var __weex_template__ = __webpack_require__(346)
+	var __weex_script__ = __webpack_require__(347)
 
 	__weex_define__('@weex-component/2a5ba7e55afcba45accf15b3179f0016', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -63,7 +63,7 @@
 
 /***/ },
 
-/***/ 328:
+/***/ 346:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -96,12 +96,12 @@
 
 /***/ },
 
-/***/ 329:
+/***/ 347:
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	__webpack_require__(330);
+	__webpack_require__(348);
 	module.exports = {
 	  data: function () {return {
 	    items: [{ title: 'A', url: 'a' }, { title: 'B', url: 'b' }, { title: 'C', url: 'c' }]
@@ -112,12 +112,12 @@
 
 /***/ },
 
-/***/ 330:
+/***/ 348:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(331)
-	var __weex_style__ = __webpack_require__(332)
-	var __weex_script__ = __webpack_require__(333)
+	var __weex_template__ = __webpack_require__(349)
+	var __weex_style__ = __webpack_require__(350)
+	var __weex_script__ = __webpack_require__(351)
 
 	__weex_define__('@weex-component/sub', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -135,7 +135,7 @@
 
 /***/ },
 
-/***/ 331:
+/***/ 349:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -150,7 +150,7 @@
 
 /***/ },
 
-/***/ 332:
+/***/ 350:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -162,7 +162,7 @@
 
 /***/ },
 
-/***/ 333:
+/***/ 351:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/script-data.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/script-data.js b/ios/playground/bundlejs/syntax/script-data.js
index 0b590e9..3f78b02 100644
--- a/ios/playground/bundlejs/syntax/script-data.js
+++ b/ios/playground/bundlejs/syntax/script-data.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(334)
-	var __weex_style__ = __webpack_require__(335)
-	var __weex_script__ = __webpack_require__(336)
+	var __weex_template__ = __webpack_require__(352)
+	var __weex_style__ = __webpack_require__(353)
+	var __weex_script__ = __webpack_require__(354)
 
 	__weex_define__('@weex-component/2267e3020f57f77e5d733a60b4ea145b', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 334:
+/***/ 352:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -116,7 +116,7 @@
 
 /***/ },
 
-/***/ 335:
+/***/ 353:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -127,7 +127,7 @@
 
 /***/ },
 
-/***/ 336:
+/***/ 354:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/script-events.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/script-events.js b/ios/playground/bundlejs/syntax/script-events.js
index 0123a8a..a00934b 100644
--- a/ios/playground/bundlejs/syntax/script-events.js
+++ b/ios/playground/bundlejs/syntax/script-events.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(337)
-	var __weex_style__ = __webpack_require__(338)
-	var __weex_script__ = __webpack_require__(339)
+	var __weex_template__ = __webpack_require__(355)
+	var __weex_style__ = __webpack_require__(356)
+	var __weex_script__ = __webpack_require__(357)
 
 	__weex_define__('@weex-component/491ca7f339a97e2fe3e130536e8fb536', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -74,14 +74,14 @@
 
 /***/ },
 
-/***/ 189:
+/***/ 100:
 /***/ function(module, exports, __webpack_require__) {
 
-	module.exports = { "default": __webpack_require__(190), __esModule: true };
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
 
 /***/ },
 
-/***/ 190:
+/***/ 101:
 /***/ function(module, exports, __webpack_require__) {
 
 	var core  = __webpack_require__(34)
@@ -92,7 +92,7 @@
 
 /***/ },
 
-/***/ 337:
+/***/ 355:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -116,7 +116,7 @@
 
 /***/ },
 
-/***/ 338:
+/***/ 356:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -127,12 +127,12 @@
 
 /***/ },
 
-/***/ 339:
+/***/ 357:
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	var _stringify = __webpack_require__(189);
+	var _stringify = __webpack_require__(100);
 
 	var _stringify2 = _interopRequireDefault(_stringify);
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/script-instance.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/script-instance.js b/ios/playground/bundlejs/syntax/script-instance.js
index 0a3ad3d..e53e33d 100644
--- a/ios/playground/bundlejs/syntax/script-instance.js
+++ b/ios/playground/bundlejs/syntax/script-instance.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(340)
-	var __weex_style__ = __webpack_require__(341)
-	var __weex_script__ = __webpack_require__(342)
+	var __weex_template__ = __webpack_require__(358)
+	var __weex_style__ = __webpack_require__(359)
+	var __weex_script__ = __webpack_require__(360)
 
 	__weex_define__('@weex-component/e463d05fb45b7117577286bed2b723ab', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 340:
+/***/ 358:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -87,7 +87,7 @@
 
 /***/ },
 
-/***/ 341:
+/***/ 359:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -98,7 +98,7 @@
 
 /***/ },
 
-/***/ 342:
+/***/ 360:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/script-lifecycle.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/script-lifecycle.js b/ios/playground/bundlejs/syntax/script-lifecycle.js
index 61f18f9..1cfe650 100644
--- a/ios/playground/bundlejs/syntax/script-lifecycle.js
+++ b/ios/playground/bundlejs/syntax/script-lifecycle.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(343)
-	var __weex_style__ = __webpack_require__(344)
-	var __weex_script__ = __webpack_require__(345)
+	var __weex_template__ = __webpack_require__(361)
+	var __weex_style__ = __webpack_require__(362)
+	var __weex_script__ = __webpack_require__(363)
 
 	__weex_define__('@weex-component/bc7273b0d417cff1bb0a2e09e3cd1c92', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 343:
+/***/ 361:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -90,7 +90,7 @@
 
 /***/ },
 
-/***/ 344:
+/***/ 362:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -101,7 +101,7 @@
 
 /***/ },
 
-/***/ 345:
+/***/ 363:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/script-module.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/script-module.js b/ios/playground/bundlejs/syntax/script-module.js
index c6d288f..f1482f5 100644
--- a/ios/playground/bundlejs/syntax/script-module.js
+++ b/ios/playground/bundlejs/syntax/script-module.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(346)
-	var __weex_style__ = __webpack_require__(347)
-	var __weex_script__ = __webpack_require__(348)
+	var __weex_template__ = __webpack_require__(364)
+	var __weex_style__ = __webpack_require__(365)
+	var __weex_script__ = __webpack_require__(366)
 
 	__weex_define__('@weex-component/0c363fe819262ec8f8baf1e516e1d694', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 346:
+/***/ 364:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -89,7 +89,7 @@
 
 /***/ },
 
-/***/ 347:
+/***/ 365:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -105,7 +105,7 @@
 
 /***/ },
 
-/***/ 348:
+/***/ 366:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/script-options.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/script-options.js b/ios/playground/bundlejs/syntax/script-options.js
index aa045ed..355c1ad 100644
--- a/ios/playground/bundlejs/syntax/script-options.js
+++ b/ios/playground/bundlejs/syntax/script-options.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(349)
-	var __weex_style__ = __webpack_require__(350)
-	var __weex_script__ = __webpack_require__(351)
+	var __weex_template__ = __webpack_require__(367)
+	var __weex_style__ = __webpack_require__(368)
+	var __weex_script__ = __webpack_require__(369)
 
 	__weex_define__('@weex-component/d8cdc8a8832b252e92de2e6e8a50dd36', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 349:
+/***/ 367:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -86,7 +86,7 @@
 
 /***/ },
 
-/***/ 350:
+/***/ 368:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -97,7 +97,7 @@
 
 /***/ },
 
-/***/ 351:
+/***/ 369:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/template-class.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/template-class.js b/ios/playground/bundlejs/syntax/template-class.js
index 5deffc5..7ab3226 100644
--- a/ios/playground/bundlejs/syntax/template-class.js
+++ b/ios/playground/bundlejs/syntax/template-class.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(352)
-	var __weex_style__ = __webpack_require__(353)
-	var __weex_script__ = __webpack_require__(354)
+	var __weex_template__ = __webpack_require__(370)
+	var __weex_style__ = __webpack_require__(371)
+	var __weex_script__ = __webpack_require__(372)
 
 	__weex_define__('@weex-component/14c303543be596aa2a969ac47565db7c', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 352:
+/***/ 370:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -105,7 +105,7 @@
 
 /***/ },
 
-/***/ 353:
+/***/ 371:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -119,7 +119,7 @@
 
 /***/ },
 
-/***/ 354:
+/***/ 372:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/template-content.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/template-content.js b/ios/playground/bundlejs/syntax/template-content.js
index f6872b4..c7a8575 100644
--- a/ios/playground/bundlejs/syntax/template-content.js
+++ b/ios/playground/bundlejs/syntax/template-content.js
@@ -45,8 +45,8 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(355)
-	var __weex_script__ = __webpack_require__(356)
+	var __weex_template__ = __webpack_require__(373)
+	var __weex_script__ = __webpack_require__(374)
 
 	__weex_define__('@weex-component/2b26a2ba0096277f201ca0b657282838', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -63,7 +63,7 @@
 
 /***/ },
 
-/***/ 355:
+/***/ 373:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -85,22 +85,22 @@
 
 /***/ },
 
-/***/ 356:
+/***/ 374:
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	__webpack_require__(357);}
+	__webpack_require__(375);}
 	/* generated by weex-loader */
 
 
 /***/ },
 
-/***/ 357:
+/***/ 375:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(358)
-	var __weex_style__ = __webpack_require__(359)
+	var __weex_template__ = __webpack_require__(376)
+	var __weex_style__ = __webpack_require__(377)
 
 	__weex_define__('@weex-component/btn', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -113,7 +113,7 @@
 
 /***/ },
 
-/***/ 358:
+/***/ 376:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -130,7 +130,7 @@
 
 /***/ },
 
-/***/ 359:
+/***/ 377:
 /***/ function(module, exports) {
 
 	module.exports = {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/template-event.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/template-event.js b/ios/playground/bundlejs/syntax/template-event.js
index c0615ff..9c1cbd4 100644
--- a/ios/playground/bundlejs/syntax/template-event.js
+++ b/ios/playground/bundlejs/syntax/template-event.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(360)
-	var __weex_style__ = __webpack_require__(361)
-	var __weex_script__ = __webpack_require__(362)
+	var __weex_template__ = __webpack_require__(378)
+	var __weex_style__ = __webpack_require__(379)
+	var __weex_script__ = __webpack_require__(380)
 
 	__weex_define__('@weex-component/40a248d5d833060161447365b18603fa', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 360:
+/***/ 378:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -146,7 +146,7 @@
 
 /***/ },
 
-/***/ 361:
+/***/ 379:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -168,7 +168,7 @@
 
 /***/ },
 
-/***/ 362:
+/***/ 380:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/template-if.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/template-if.js b/ios/playground/bundlejs/syntax/template-if.js
index f71dd8d..5464348 100644
--- a/ios/playground/bundlejs/syntax/template-if.js
+++ b/ios/playground/bundlejs/syntax/template-if.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(363)
-	var __weex_style__ = __webpack_require__(364)
-	var __weex_script__ = __webpack_require__(365)
+	var __weex_template__ = __webpack_require__(381)
+	var __weex_style__ = __webpack_require__(382)
+	var __weex_script__ = __webpack_require__(383)
 
 	__weex_define__('@weex-component/6019f2874c768d147034c91e003e5ba4', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 363:
+/***/ 381:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -109,7 +109,7 @@
 
 /***/ },
 
-/***/ 364:
+/***/ 382:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -128,7 +128,7 @@
 
 /***/ },
 
-/***/ 365:
+/***/ 383:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/template-repeat-update.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/template-repeat-update.js b/ios/playground/bundlejs/syntax/template-repeat-update.js
index 4e2e4b3..fb57a64 100644
--- a/ios/playground/bundlejs/syntax/template-repeat-update.js
+++ b/ios/playground/bundlejs/syntax/template-repeat-update.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(369)
-	var __weex_style__ = __webpack_require__(370)
-	var __weex_script__ = __webpack_require__(371)
+	var __weex_template__ = __webpack_require__(387)
+	var __weex_style__ = __webpack_require__(388)
+	var __weex_script__ = __webpack_require__(389)
 
 	__weex_define__('@weex-component/01700b62cc1ab66f2cbfd893c5c95eaf', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 369:
+/***/ 387:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -124,7 +124,7 @@
 
 /***/ },
 
-/***/ 370:
+/***/ 388:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -146,7 +146,7 @@
 
 /***/ },
 
-/***/ 371:
+/***/ 389:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/template-repeat.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/template-repeat.js b/ios/playground/bundlejs/syntax/template-repeat.js
index cb83555..6b34d59 100644
--- a/ios/playground/bundlejs/syntax/template-repeat.js
+++ b/ios/playground/bundlejs/syntax/template-repeat.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(366)
-	var __weex_style__ = __webpack_require__(367)
-	var __weex_script__ = __webpack_require__(368)
+	var __weex_template__ = __webpack_require__(384)
+	var __weex_style__ = __webpack_require__(385)
+	var __weex_script__ = __webpack_require__(386)
 
 	__weex_define__('@weex-component/19638a010faa9c01b41851f36c4157df', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 366:
+/***/ 384:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -227,7 +227,7 @@
 
 /***/ },
 
-/***/ 367:
+/***/ 385:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -241,7 +241,7 @@
 
 /***/ },
 
-/***/ 368:
+/***/ 386:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/syntax/template-style.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/syntax/template-style.js b/ios/playground/bundlejs/syntax/template-style.js
index 5debf3f..8bda226 100644
--- a/ios/playground/bundlejs/syntax/template-style.js
+++ b/ios/playground/bundlejs/syntax/template-style.js
@@ -45,8 +45,8 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(372)
-	var __weex_script__ = __webpack_require__(373)
+	var __weex_template__ = __webpack_require__(390)
+	var __weex_script__ = __webpack_require__(391)
 
 	__weex_define__('@weex-component/301fb11cc58bbe739f3ee7ecea123456', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -63,7 +63,7 @@
 
 /***/ },
 
-/***/ 372:
+/***/ 390:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -97,7 +97,7 @@
 
 /***/ },
 
-/***/ 373:
+/***/ 391:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/template.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/template.js b/ios/playground/bundlejs/template.js
index eb0310e..550a765 100644
--- a/ios/playground/bundlejs/template.js
+++ b/ios/playground/bundlejs/template.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(374)
-	var __weex_style__ = __webpack_require__(375)
-	var __weex_script__ = __webpack_require__(376)
+	var __weex_template__ = __webpack_require__(392)
+	var __weex_style__ = __webpack_require__(393)
+	var __weex_script__ = __webpack_require__(394)
 
 	__weex_define__('@weex-component/b40420dfe575cbe06a71dd757f5b9128', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2108,7 +2108,7 @@
 
 /***/ },
 
-/***/ 374:
+/***/ 392:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2219,14 +2219,14 @@
 
 /***/ },
 
-/***/ 375:
+/***/ 393:
 /***/ function(module, exports) {
 
 	module.exports = {}
 
 /***/ },
 
-/***/ 376:
+/***/ 394:
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/test.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/test.js b/ios/playground/bundlejs/test.js
index 6ca5a0e..92da321 100644
--- a/ios/playground/bundlejs/test.js
+++ b/ios/playground/bundlejs/test.js
@@ -45,8 +45,8 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(377)
-	var __weex_script__ = __webpack_require__(378)
+	var __weex_template__ = __webpack_require__(395)
+	var __weex_script__ = __webpack_require__(396)
 
 	__weex_define__('@weex-component/9305542c7d16b107fad92f56b2a08dab', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -63,7 +63,7 @@
 
 /***/ },
 
-/***/ 377:
+/***/ 395:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -102,7 +102,7 @@
 
 /***/ },
 
-/***/ 378:
+/***/ 396:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/animation.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/animation.js b/ios/playground/bundlejs/vue/animation.js
index 8b21c3d..fff2ef3 100644
--- a/ios/playground/bundlejs/vue/animation.js
+++ b/ios/playground/bundlejs/vue/animation.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(379)
+	__vue_styles__.push(__webpack_require__(397)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(380)
+	__vue_exports__ = __webpack_require__(398)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(389)
+	var __vue_template__ = __webpack_require__(407)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/animation.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/animation.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-0260e128"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 379:
+/***/ 397:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -109,7 +113,7 @@
 
 /***/ },
 
-/***/ 380:
+/***/ 398:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -139,7 +143,7 @@
 	//
 	//
 
-	var animation = __weex_require_module__('animation');
+	var animation = weex.requireModule('animation');
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -154,8 +158,8 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    button: __webpack_require__(385)
+	    panel: __webpack_require__(399),
+	    button: __webpack_require__(403)
 	  },
 	  methods: {
 	    anim: function anim(styles, timingFunction, duration, callback) {
@@ -237,21 +241,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -263,22 +267,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -332,7 +340,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -377,16 +385,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -394,7 +402,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -402,27 +410,27 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 385:
+/***/ 403:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(386)
+	__vue_styles__.push(__webpack_require__(404)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(387)
+	__vue_exports__ = __webpack_require__(405)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(388)
+	var __vue_template__ = __webpack_require__(406)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -434,22 +442,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/button.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/button.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4c6be341"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 386:
+/***/ 404:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -549,7 +561,7 @@
 
 /***/ },
 
-/***/ 387:
+/***/ 405:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -572,30 +584,30 @@
 
 /***/ },
 
-/***/ 388:
+/***/ 406:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 389:
+/***/ 407:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('panel', {
+	  return _c('div', [_c('panel', {
 	    attrs: {
 	      "title": "Transform",
 	      "type": "primary"
 	    }
-	  }, [_h('button', {
+	  }, [_c('button', {
 	    attrs: {
 	      "value": "Rotate",
 	      "type": "primary",
@@ -606,7 +618,7 @@
 	        _vm.rotate($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    staticStyle: {
 	      marginTop: "12px"
 	    },
@@ -620,7 +632,7 @@
 	        _vm.scale($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    staticStyle: {
 	      marginTop: "12px"
 	    },
@@ -634,7 +646,7 @@
 	        _vm.translate($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    staticStyle: {
 	      marginTop: "12px"
 	    },
@@ -648,12 +660,12 @@
 	        _vm.transform($event)
 	      }
 	    }
-	  })]), _h('panel', {
+	  })], 1), _c('panel', {
 	    attrs: {
 	      "title": "Others",
 	      "type": "primary"
 	    }
-	  }, [_h('button', {
+	  }, [_c('button', {
 	    attrs: {
 	      "value": "BgColor",
 	      "type": "primary",
@@ -664,7 +676,7 @@
 	        _vm.color($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    staticStyle: {
 	      marginTop: "12px"
 	    },
@@ -678,7 +690,7 @@
 	        _vm.opacity($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    staticStyle: {
 	      marginTop: "12px"
 	    },
@@ -692,15 +704,15 @@
 	        _vm.composite($event)
 	      }
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    ref: "block",
 	    staticClass: ["block"],
 	    style: {
 	      transformOrigin: _vm.transformOrigin
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["block-txt"]
-	  }, ["Anim"])])])
+	  }, [_vm._v("Anim")])])], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/a.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/a.js b/ios/playground/bundlejs/vue/components/a.js
index 9afd99d..4c11566 100644
--- a/ios/playground/bundlejs/vue/components/a.js
+++ b/ios/playground/bundlejs/vue/components/a.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(390)
+	__vue_exports__ = __webpack_require__(408)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(395)
+	var __vue_template__ = __webpack_require__(413)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/a.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/a.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,13 +255,13 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 390:
+/***/ 408:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -278,28 +285,28 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    tip: __webpack_require__(391)
+	    panel: __webpack_require__(399),
+	    tip: __webpack_require__(409)
 	  }
 	};
 
 /***/ },
 
-/***/ 391:
+/***/ 409:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(392)
+	__vue_styles__.push(__webpack_require__(410)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(393)
+	__vue_exports__ = __webpack_require__(411)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(394)
+	var __vue_template__ = __webpack_require__(412)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -311,22 +318,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/tip.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/tip.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-6ec9a69c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 392:
+/***/ 410:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -372,7 +383,7 @@
 
 /***/ },
 
-/***/ 393:
+/***/ 411:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -394,34 +405,34 @@
 
 /***/ },
 
-/***/ 394:
+/***/ 412:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['tip', 'tip-' + _vm.type]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['tip-txt', 'tip-txt-' + _vm.type]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 395:
+/***/ 413:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "Hyperlink",
 	      "type": "primary"
 	    }
-	  }, [_h('a', {
+	  }, [_c('a', {
 	    attrs: {
 	      "href": "http://alibaba.github.io/weex/index.html"
 	    }
-	  }, [_h('tip', {
+	  }, [_c('tip', {
 	    staticStyle: {
 	      marginBottom: "20px"
 	    },
@@ -429,7 +440,7 @@
 	      "type": "info",
 	      "value": "Click me to see how 'A' element opens a new world."
 	    }
-	  })])])])
+	  })], 1)], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 



[06/50] [abbrv] incubator-weex git commit: * [html5] fix modules.

Posted by so...@apache.org.
* [html5] fix modules.


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

Branch: refs/heads/dev
Commit: aee7db8a9edf5780cdc2a06b9a574d5f9343997b
Parents: 44ea95e
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Mar 28 11:23:48 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Mar 28 11:23:48 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/env/weex.js          |  5 ----
 html5/render/vue/modules/index.js     | 40 ++++++++++++++++--------------
 package.json                          |  8 +++---
 packages/weex-vue-render/package.json |  2 +-
 4 files changed, 26 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aee7db8a/html5/render/vue/env/weex.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/weex.js b/html5/render/vue/env/weex.js
index d492e0c..685e5b3 100644
--- a/html5/render/vue/env/weex.js
+++ b/html5/render/vue/env/weex.js
@@ -2,7 +2,6 @@
 
 import './wx-env'
 import * as utils from '../utils'
-import { requireWeexModule } from '../modules'
 
 const weexModules = {}
 
@@ -16,10 +15,6 @@ const weex = {
   },
 
   requireModule (moduleName) {
-    const module = requireWeexModule(moduleName)
-    if (module) {
-      return module
-    }
     return weexModules[moduleName]
   },
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aee7db8a/html5/render/vue/modules/index.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/modules/index.js b/html5/render/vue/modules/index.js
index 78af3ca..917eea7 100644
--- a/html5/render/vue/modules/index.js
+++ b/html5/render/vue/modules/index.js
@@ -1,10 +1,10 @@
 // modules from render/browesr
-import Event from '../../browser/extend/api/event'
-import Geolocation from '../../browser/extend/api/geolocation'
-import PageInfo from '../../browser/extend/api/pageInfo'
-import Storage from '../../browser/extend/api/storage'
-import Stream from '../../browser/extend/api/stream'
-import Clipboard from '../../browser/extend/api/clipboard'
+import event from '../../browser/extend/api/event'
+import geolocation from '../../browser/extend/api/geolocation'
+import pageInfo from '../../browser/extend/api/pageInfo'
+import storage from '../../browser/extend/api/storage'
+import stream from '../../browser/extend/api/stream'
+import clipboard from '../../browser/extend/api/clipboard'
 
 // custom modules
 import animation from './animation'
@@ -13,6 +13,15 @@ import modal from './modal'
 import navigator from './navigator'
 import webview from './webview'
 
+const legacyModules = {
+  event,
+  geolocation,
+  pageInfo,
+  storage,
+  stream,
+  clipboard
+}
+
 const modules = {
   animation,
   dom,
@@ -21,20 +30,13 @@ const modules = {
   webview
 }
 
-export function requireWeexModule (name) {
-  if (modules[name]) {
-    return modules[name]
-  }
-  return null
-}
-
 export default {
   init (weex) {
-    weex.install(Event)
-    weex.install(Geolocation)
-    weex.install(PageInfo)
-    weex.install(Storage)
-    weex.install(Stream)
-    weex.install(Clipboard)
+    for (const k in legacyModules) {
+      weex.install(legacyModules[k])
+    }
+    for (const k in modules) {
+      weex.registerModule(k, modules[k])
+    }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aee7db8a/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 6272900..4764702 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
   "version": "0.4.0",
   "subversion": {
     "browser": "0.5.0",
-    "vue-render": "0.11.0",
+    "vue-render": "0.11.1",
     "framework": "0.19.6",
     "transformer": ">=0.1.5 <0.5"
   },
@@ -136,9 +136,9 @@
     "sinon": "^1.17.4",
     "sinon-chai": "^2.8.0",
     "uglify-js": "^2.6.4",
-    "vue": "^2.1.10",
-    "vue-loader": "^11.2.0",
-    "vue-template-compiler": "^2.1.10",
+    "vue": "^2.2.6",
+    "vue-loader": "^11.3.3",
+    "vue-template-compiler": "^2.2.6",
     "webdriver-client": "~1.0.0",
     "webpack": "^1.13.1",
     "weex-components": "^0.2.0",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aee7db8a/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index 5652835..8868112 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.11.0",
+  "version": "0.11.1",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "src/render/vue/index.js",


[49/50] [abbrv] incubator-weex git commit: * [android] avoid remove-readd view when fixed component view already moved

Posted by so...@apache.org.
* [android] avoid remove-readd view when fixed component view already moved

This bug is found by put a input with fixed-position, rendercontainer will trigger setSize when soft keyborad popup, make input lose focus and keyborad hide, over and over 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/9495bf2e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/9495bf2e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/9495bf2e

Branch: refs/heads/dev
Commit: 9495bf2e97830fca06b34a40236cfa2db1cb758b
Parents: fef125b
Author: sospartan <so...@apache.org>
Authored: Sat Apr 1 13:43:39 2017 +0800
Committer: sospartan <so...@apache.org>
Committed: Sat Apr 1 13:44:56 2017 +0800

----------------------------------------------------------------------
 .../src/main/java/com/taobao/weex/WXSDKInstance.java    | 12 ++++++++++--
 .../java/com/taobao/weex/ui/component/WXComponent.java  |  6 +-----
 2 files changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9495bf2e/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
index c70b405..0131363 100755
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -1292,9 +1292,17 @@ public class WXSDKInstance implements IWXActivityStateListener,DomContext, View.
     }
   }
 
-  public void addFixedView(View fixedChild){
+  /**
+   * Move fixed view to container ,except it's already moved.
+   * @param fixedChild
+   */
+  public void moveFixedView(View fixedChild){
     if(mRenderContainer != null) {
-      mRenderContainer.addView(fixedChild);
+      if (fixedChild.getParent() != mRenderContainer) {
+        ViewGroup viewGroup = (ViewGroup) fixedChild.getParent();
+        viewGroup.removeView(fixedChild);
+        mRenderContainer.addView(fixedChild);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9495bf2e/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 8785064..63f5204 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -563,17 +563,13 @@ public abstract class  WXComponent<T extends View> implements IWXObject, IWXActi
   }
 
   private void setFixedHostLayoutParams(T host, int width, int height, int left, int right, int top, int bottom){
-    if (host.getParent() instanceof ViewGroup) {
-      ViewGroup viewGroup = (ViewGroup) host.getParent();
-      viewGroup.removeView(host);
-    }
     FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
 
     params.width = width;
     params.height = height;
     params.setMargins(left, top, right, bottom);
     host.setLayoutParams(params);
-    mInstance.addFixedView(host);
+    mInstance.moveFixedView(host);
 
     if (WXEnvironment.isApkDebugable()) {
       WXLogUtils.d("Weex_Fixed_Style", "WXComponent:setLayout :" + left + " " + top + " " + width + " " + height);


[05/50] [abbrv] incubator-weex git commit: * [html5] fix path.

Posted by so...@apache.org.
* [html5] fix path.


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

Branch: refs/heads/dev
Commit: 44ea95ebb94c13ef17c097b493714ec23b333e9c
Parents: dca2838
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Mar 28 11:21:56 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Mar 28 11:21:56 2017 +0800

----------------------------------------------------------------------
 examples/vue/components/navigator.vue | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/44ea95eb/examples/vue/components/navigator.vue
----------------------------------------------------------------------
diff --git a/examples/vue/components/navigator.vue b/examples/vue/components/navigator.vue
index 0413d29..ab1423f 100644
--- a/examples/vue/components/navigator.vue
+++ b/examples/vue/components/navigator.vue
@@ -28,7 +28,8 @@
         navBarHeight: 88,
         title: 'Navigator',
         dir: 'examples',
-        baseURL: ''
+        baseURL: '',
+        subPath: weex.config.env.platform === 'Web' ? 'vue-web/' : ''
       }
     },
     components: {
@@ -56,14 +57,14 @@
       },
       push: function () {
         var params = {
-          'url':  this.baseURL + 'vue/components/navigator.js?test=1',
+          'url':  this.baseURL + this.subPath + 'vue/components/navigator.js?test=1',
           'animated' : 'true',
         }
         navigator.push(params, function () {});
       },
       pop: function () {
         var params = {
-          'url':  this.baseURL + 'vue/components/navigator.js?test=1',
+          'url':  this.baseURL + this.subPath + 'vue/components/navigator.js?test=1',
           'animated' : 'true',
         }
         navigator.pop(params, function () {});


[50/50] [abbrv] incubator-weex git commit: Merge branch '0.11-dev' into dev

Posted by so...@apache.org.
Merge branch '0.11-dev' into dev


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

Branch: refs/heads/dev
Commit: cbc373ba948eabfd834b7b60d6f9b71c5b907d47
Parents: 92cf074 9495bf2
Author: sospartan <so...@apache.org>
Authored: Sat Apr 1 14:02:22 2017 +0800
Committer: sospartan <so...@apache.org>
Committed: Sat Apr 1 14:02:22 2017 +0800

----------------------------------------------------------------------
 .eslintrc                                       |   13 +-
 .flowconfig                                     |   16 +
 .travis.yml                                     |   48 +-
 Dangerfile                                      |   55 -
 Dangerfile-ios                                  |    4 +
 android/playground/app/build.gradle             |    1 +
 .../app/src/main/assets/component/image-demo.js |    2 +-
 .../assets/component/slider-neighbor/index.js   |  264 +
 .../slider-neighbor/silder-neighbor.js          |  287 -
 .../src/main/assets/component/slider/index.js   |   33 +
 .../app/src/main/assets/component/text-demo.js  |  108 +
 .../app/src/main/assets/component/web-demo.js   |    1 -
 android/playground/app/src/main/assets/error.js | 2217 +++++
 .../app/src/main/assets/geolocation.js          |  183 +
 .../app/src/main/assets/hello_weex.js           |   28 -
 android/playground/app/src/main/assets/index.js |    2 +-
 .../app/src/main/assets/linear-gradient.js      |  367 +
 .../app/src/main/assets/module/clipboard.js     |   27 +-
 .../app/src/main/assets/module/componentRect.js |  107 +-
 .../app/src/main/assets/module/instance-api.js  |   14 +-
 .../app/src/main/assets/module/modal.js         |   18 +-
 .../app/src/main/assets/module/picker-demo.js   |   18 +-
 .../app/src/main/assets/module/storage-demo.js  |   14 +-
 .../app/src/main/assets/module/stream-demo.js   |   18 +-
 .../src/main/assets/module/websocket-demo.js    | 2412 +++++
 .../app/src/main/assets/showcase/calculator.js  |   21 +-
 .../assets/showcase/dropdown/dropdown-demo.js   |   30 +-
 .../assets/showcase/dropdown/we-dropdown.js     |   12 +-
 .../app/src/main/assets/showcase/minesweeper.js |   12 +-
 .../main/assets/showcase/new-fashion/banner.js  |    8 +-
 .../main/assets/showcase/new-fashion/banners.js |   20 +-
 .../main/assets/showcase/new-fashion/brand.js   |   36 +-
 .../assets/showcase/new-fashion/category.js     |   24 +-
 .../main/assets/showcase/new-fashion/coupon.js  |   12 +-
 .../main/assets/showcase/new-fashion/fashion.js |   38 +-
 .../main/assets/showcase/new-fashion/goods.js   |   24 +-
 .../assets/showcase/new-fashion/headlines.js    |   48 +-
 .../main/assets/showcase/new-fashion/index.js   |   21 +-
 .../main/assets/showcase/new-fashion/link.js    |    8 +-
 .../main/assets/showcase/new-fashion/main.js    |  209 +-
 .../main/assets/showcase/new-fashion/match.js   |   24 +-
 .../assets/showcase/new-fashion/resource.js     |   38 +-
 .../main/assets/showcase/new-fashion/scene.js   |   24 +-
 .../src/main/assets/showcase/pseudo-class.js    | 2425 +++++
 .../app/src/main/assets/showcase/ui.js          |   24 +-
 .../app/src/main/assets/style/index.js          |   76 +-
 .../app/src/main/assets/style/style-box.js      |   40 +-
 .../app/src/main/assets/style/style-flex.js     |   48 +-
 .../app/src/main/assets/style/style-item.js     |   12 +-
 .../app/src/main/assets/syntax/hello-world-1.js |    4 +-
 .../app/src/main/assets/syntax/hello-world-2.js |    6 +-
 .../app/src/main/assets/syntax/hello-world-3.js |   10 +-
 .../app/src/main/assets/syntax/hello-world-4.js |   14 +-
 .../app/src/main/assets/syntax/hello-world-5.js |   14 +-
 .../app/src/main/assets/syntax/hello-world.js   |   14 +-
 .../app/src/main/assets/syntax/index.js         |   20 +-
 .../src/main/assets/syntax/script-component.js  |   24 +-
 .../app/src/main/assets/syntax/script-data.js   |   12 +-
 .../app/src/main/assets/syntax/script-events.js |   12 +-
 .../src/main/assets/syntax/script-instance.js   |   12 +-
 .../src/main/assets/syntax/script-lifecycle.js  |   12 +-
 .../app/src/main/assets/syntax/script-module.js |   12 +-
 .../src/main/assets/syntax/script-options.js    |   12 +-
 .../src/main/assets/syntax/template-class.js    |   12 +-
 .../src/main/assets/syntax/template-content.js  |   20 +-
 .../src/main/assets/syntax/template-event.js    |   12 +-
 .../app/src/main/assets/syntax/template-if.js   |   12 +-
 .../assets/syntax/template-repeat-update.js     |   12 +-
 .../src/main/assets/syntax/template-repeat.js   |   12 +-
 .../src/main/assets/syntax/template-style.js    |    8 +-
 .../playground/app/src/main/assets/template.js  |   12 +-
 android/playground/app/src/main/assets/test.js  |  128 +
 .../app/src/main/assets/vue/animation.js        |  709 ++
 .../app/src/main/assets/vue/components/a.js     |  438 +
 .../src/main/assets/vue/components/countdown.js |  640 ++
 .../app/src/main/assets/vue/components/image.js |  641 ++
 .../app/src/main/assets/vue/components/input.js |  364 +
 .../app/src/main/assets/vue/components/list.js  |  246 +
 .../src/main/assets/vue/components/marquee.js   |  534 +
 .../src/main/assets/vue/components/navigator.js | 1059 ++
 .../src/main/assets/vue/components/scroller.js  |  304 +
 .../src/main/assets/vue/components/slider.js    |  898 ++
 .../src/main/assets/vue/components/tabbar.js    |  599 ++
 .../app/src/main/assets/vue/components/text.js  |  513 +
 .../app/src/main/assets/vue/components/video.js |  396 +
 .../app/src/main/assets/vue/components/web.js   |  459 +
 .../playground/app/src/main/assets/vue/hello.js |   99 +
 .../app/src/main/assets/vue/iconfont.js         |  204 +
 .../playground/app/src/main/assets/vue/index.js |  496 +
 .../src/main/assets/vue/modules/clipboard.js    |  691 ++
 .../src/main/assets/vue/modules/instance-api.js |  304 +
 .../app/src/main/assets/vue/modules/modal.js    |  581 ++
 .../app/src/main/assets/vue/modules/storage.js  |  381 +
 .../app/src/main/assets/vue/modules/stream.js   |  477 +
 .../src/main/assets/vue/showcase/calculator.js  |  340 +
 .../src/main/assets/vue/showcase/itemlist.js    | 1062 ++
 .../src/main/assets/vue/showcase/new-fashion.js | 3302 ++++++
 .../src/main/assets/vue/showcase/progress.js    |  336 +
 .../app/src/main/assets/vue/style/index.js      | 1566 +++
 .../app/src/main/assets/vue/style/style-box.js  |  780 ++
 .../app/src/main/assets/vue/style/style-flex.js |  919 ++
 .../app/src/main/assets/vue/style/style-item.js |  155 +
 .../src/main/assets/vue/syntax/hello-world-1.js |   95 +
 .../src/main/assets/vue/syntax/hello-world-2.js |  112 +
 .../src/main/assets/vue/syntax/hello-world-3.js |  127 +
 .../src/main/assets/vue/syntax/hello-world-4.js |  167 +
 .../src/main/assets/vue/syntax/hello-world-5.js |  173 +
 .../src/main/assets/vue/syntax/hello-world.js   |  183 +
 .../main/assets/vue/syntax/script-component.js  |  224 +
 .../src/main/assets/vue/syntax/script-data.js   |  214 +
 .../src/main/assets/vue/syntax/script-events.js |  161 +
 .../main/assets/vue/syntax/script-instance.js   |  196 +
 .../main/assets/vue/syntax/script-lifecycle.js  |  155 +
 .../src/main/assets/vue/syntax/script-module.js |  156 +
 .../main/assets/vue/syntax/script-options.js    |  182 +
 .../main/assets/vue/syntax/template-class.js    |  161 +
 .../main/assets/vue/syntax/template-content.js  |  189 +
 .../main/assets/vue/syntax/template-event.js    |  197 +
 .../src/main/assets/vue/syntax/template-if.js   |  165 +
 .../assets/vue/syntax/template-repeat-update.js |  195 +
 .../main/assets/vue/syntax/template-repeat.js   |  170 +
 .../main/assets/vue/syntax/template-style.js    |  144 +
 .../app/src/main/assets/vue/template.js         |  796 ++
 .../playground/app/src/main/ic_launcher-web.png |  Bin 0 -> 19935 bytes
 .../java/com/alibaba/weex/WXApplication.java    |    5 +
 .../java/com/alibaba/weex/WXPageActivity.java   |    2 +-
 .../alibaba/weex/extend/component/WXMask.java   |  167 +
 .../extend/component/dom/WXMaskDomObject.java   |  231 +
 .../extend/module/location/DefaultLocation.java |  110 +-
 .../alibaba/weex/extend/view/WXMaskView.java    |  220 +
 .../src/main/res/mipmap-hdpi/ic_launcher.png    |  Bin 5248 -> 1755 bytes
 .../src/main/res/mipmap-mdpi/ic_launcher.png    |  Bin 4303 -> 1221 bytes
 .../src/main/res/mipmap-xhdpi/ic_launcher.png   |  Bin 6354 -> 2451 bytes
 .../src/main/res/mipmap-xxhdpi/ic_launcher.png  |  Bin 7930 -> 3939 bytes
 .../src/main/res/mipmap-xxxhdpi/ic_launcher.png |  Bin 10633 -> 5608 bytes
 android/sdk/assets/main.js                      |   14 +-
 android/sdk/build.gradle                        |   21 +-
 android/sdk/libs/armeabi/libweexv8.so           |  Bin 3583820 -> 3583820 bytes
 android/sdk/libs/x86/libweexv8.so               |  Bin 4340864 -> 4336768 bytes
 .../main/java/com/taobao/weex/WXSDKEngine.java  |    9 +-
 .../java/com/taobao/weex/WXSDKInstance.java     |   77 +-
 .../main/java/com/taobao/weex/WXSDKManager.java |   13 +-
 .../com/taobao/weex/bridge/WXBridgeManager.java |   90 +-
 .../taobao/weex/bridge/WXServiceManager.java    |   31 +-
 .../taobao/weex/bridge/WXValidateProcessor.java |  241 +
 .../java/com/taobao/weex/common/Constants.java  |   22 +-
 .../com/taobao/weex/common/WXImageStrategy.java |    2 +-
 .../com/taobao/weex/common/WXJSService.java     |  229 +
 .../java/com/taobao/weex/common/WXThread.java   |    9 +
 .../com/taobao/weex/dom/ImmutableDomObject.java |   18 +-
 .../main/java/com/taobao/weex/dom/WXAttr.java   |   96 +-
 .../java/com/taobao/weex/dom/WXDomHandler.java  |    2 +-
 .../java/com/taobao/weex/dom/WXDomModule.java   |   18 +-
 .../java/com/taobao/weex/dom/WXDomObject.java   |   27 +-
 .../com/taobao/weex/dom/WXDomStatement.java     |    4 +-
 .../taobao/weex/dom/WXRecyclerDomObject.java    |  317 +
 .../main/java/com/taobao/weex/dom/WXStyle.java  |   65 +-
 .../java/com/taobao/weex/dom/flex/CSSNode.java  |    8 +-
 .../com/taobao/weex/http/WXStreamModule.java    |   28 +-
 .../com/taobao/weex/ui/WXRenderStatement.java   |   14 +-
 .../ui/animation/BackgroundColorProperty.java   |  252 +
 .../weex/ui/animation/WXAnimationModule.java    |   20 +-
 .../ui/component/AbstractEditComponent.java     |   28 +-
 .../taobao/weex/ui/component/WXBaseRefresh.java |   10 -
 .../weex/ui/component/WXBasicComponentType.java |    2 +
 .../taobao/weex/ui/component/WXComponent.java   |  101 +-
 .../com/taobao/weex/ui/component/WXEmbed.java   |    7 +-
 .../com/taobao/weex/ui/component/WXHeader.java  |    9 +-
 .../com/taobao/weex/ui/component/WXImage.java   |   90 +-
 .../taobao/weex/ui/component/WXIndicator.java   |    2 +-
 .../com/taobao/weex/ui/component/WXLoading.java |   12 +-
 .../com/taobao/weex/ui/component/WXRefresh.java |    5 +
 .../taobao/weex/ui/component/WXScroller.java    |   20 +-
 .../com/taobao/weex/ui/component/WXSlider.java  |   20 +-
 .../weex/ui/component/WXSliderNeighbor.java     |   42 +-
 .../taobao/weex/ui/component/WXVContainer.java  |   14 +
 .../ui/component/helper/WXStickyHelper.java     |   11 +-
 .../ui/component/list/BasicListComponent.java   |  181 +-
 .../ui/component/list/ListComponentView.java    |    4 +-
 .../ui/component/list/SimpleListComponent.java  |    6 +-
 .../ui/component/list/SimpleRecyclerView.java   |   77 +-
 .../ui/component/list/StickyHeaderHelper.java   |  337 +
 .../taobao/weex/ui/component/list/WXCell.java   |   11 +
 .../weex/ui/component/list/WXListComponent.java |   91 +-
 .../weex/ui/component/pesudo/PesudoStatus.java  |    2 +-
 .../com/taobao/weex/ui/module/WXMetaModule.java |    7 +-
 .../com/taobao/weex/ui/view/WXImageView.java    |   20 +-
 .../com/taobao/weex/ui/view/WXScrollView.java   |    4 +-
 .../weex/ui/view/border/BorderDrawable.java     |    9 +-
 .../taobao/weex/ui/view/border/BorderEdge.java  |   71 +-
 .../taobao/weex/ui/view/gesture/WXGesture.java  |    8 +-
 .../listview/ExtendedLinearLayoutManager.java   |   25 +
 .../weex/ui/view/listview/WXRecyclerView.java   |   43 +-
 .../listview/adapter/ListBaseViewHolder.java    |   42 +-
 .../adapter/RecyclerViewBaseAdapter.java        |   21 +-
 .../adapter/WXRecyclerViewOnScrollListener.java |  109 +-
 .../ui/view/refresh/wrapper/BaseBounceView.java |   74 +-
 .../refresh/wrapper/BounceRecyclerView.java     |  122 +-
 .../refresh/wrapper/BounceScrollerView.java     |    1 +
 .../java/com/taobao/weex/utils/WXFileUtils.java |   37 +-
 .../taobao/weex/utils/WXSoInstallMgrSdk.java    |    9 +-
 .../java/com/taobao/weex/utils/WXViewUtils.java |   85 +-
 .../test/java/com/taobao/weex/TestActivity.java |    6 +-
 .../java/com/taobao/weex/dom/WXStyleTest.java   |   23 +-
 .../taobao/weex/ui/module/WXMetaModuleTest.java |   10 +-
 .../taobao/weex/utils/FunctionParserTest.java   |   11 +-
 bin/dist-vue.sh                                 |   42 +
 build/config.js                                 |   13 +-
 build/karma.vue.conf.js                         |   69 +-
 build/webpack.examples.web.config.js            |   24 +-
 build/webpack.macacatest.config.js              |    6 +-
 dangerfile.js                                   |  147 +
 examples/component/image-demo.we                |    2 +-
 examples/component/input-demo.we                |  253 +-
 examples/component/list/list-basic.we           |   79 +-
 examples/component/scroller-demo.we             |   64 +-
 examples/component/slider-tab.we                |  100 +
 examples/include/example-list-item.we           |   30 +-
 examples/index.we                               |    4 +-
 examples/module/chatroom-demo.we                |  227 +
 examples/module/websocket-demo.we               |  282 +-
 examples/showcase/boxshadow.we                  |   46 +
 examples/vue/animation.vue                      |    4 +-
 examples/vue/components/countdown.vue           |    2 +-
 examples/vue/components/image.vue               |    2 +-
 examples/vue/components/input.vue               |  203 +-
 examples/vue/components/list.vue                |   22 +-
 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/waterfall.vue           |  468 +
 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/index.vue                          |    2 +
 examples/vue/modules/stream.vue                 |    2 +-
 examples/vue/showcase/boxshadow.vue             |   39 +
 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        |    2 +
 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/shared/freeze.js                          |   58 +-
 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 -
 html5/test/unit/shared/index.js                 |    2 +-
 index.html                                      |    3 +-
 ios/playground/Podfile                          |    2 +-
 ios/playground/WeexDemo.app.zip                 |  Bin 2561323 -> 0 bytes
 ios/playground/WeexDemo/DemoDefine.h            |    2 +-
 ios/playground/WeexDemo/Info.plist              |    2 +-
 ios/playground/WeexDemo/UIView+UIThreadCheck.m  |    2 +-
 ios/playground/WeexDemo/WXDemoViewController.m  |    5 +-
 ios/playground/bundlejs/component/image-demo.js |    2 +-
 ios/playground/bundlejs/component/input-demo.js | 2683 ++---
 .../bundlejs/component/lengthunitwx-demo.js     |  329 +
 .../bundlejs/component/list/list-basic.js       |  132 +-
 .../component/list/list-demo-horizon.js         |   12 +-
 .../bundlejs/component/list/list-demo.js        |   12 +-
 .../bundlejs/component/list/waterfall.js        |  877 ++
 .../bundlejs/component/marquee-demo.js          |   13 +-
 .../bundlejs/component/process-bar-demo.js      |   17 +-
 .../bundlejs/component/scroller-demo.js         |  219 +-
 .../bundlejs/component/slider-neighbor/index.js |    8 +-
 .../slider-neighbor/slider-neighbor-item.js     |   12 +-
 .../slider-neighbor/slider-neighbor-page.js     |   28 +-
 ios/playground/bundlejs/component/slider-tab.js |  633 ++
 .../bundlejs/component/slider/index.js          |   56 +-
 .../bundlejs/component/slider/slider-item.js    |   12 +-
 .../bundlejs/component/slider/slider-page.js    |   28 +-
 ios/playground/bundlejs/component/text-demo.js  |   24 +-
 ios/playground/bundlejs/component/video-demo.js |   24 +-
 ios/playground/bundlejs/component/web-demo.js   |   25 +-
 ios/playground/bundlejs/error.js                |   20 +-
 ios/playground/bundlejs/geolocation.js          |   46 +-
 ios/playground/bundlejs/hello.js                |    4 +-
 ios/playground/bundlejs/iconfont.js             |   12 +-
 ios/playground/bundlejs/index.js                |  270 +-
 ios/playground/bundlejs/linear-gradient.js      |    8 +-
 ios/playground/bundlejs/module/chatroom-demo.js |  370 +
 ios/playground/bundlejs/module/clipboard.js     |   61 +-
 ios/playground/bundlejs/module/componentRect.js |   28 +-
 ios/playground/bundlejs/module/instance-api.js  |   61 +-
 ios/playground/bundlejs/module/modal.js         |   27 +-
 ios/playground/bundlejs/module/picker-demo.js   |   27 +-
 ios/playground/bundlejs/module/storage-demo.js  |   61 +-
 ios/playground/bundlejs/module/stream-demo.js   |   61 +-
 .../bundlejs/module/websocket-demo.js           | 2661 ++---
 ios/playground/bundlejs/showcase/boxshadow.js   |  269 +
 ios/playground/bundlejs/showcase/calculator.js  |   30 +-
 .../bundlejs/showcase/dropdown/dropdown-demo.js |   38 +-
 .../bundlejs/showcase/dropdown/we-dropdown.js   |   12 +-
 ios/playground/bundlejs/showcase/minesweeper.js |   12 +-
 .../bundlejs/showcase/pseudo-class.js           |   30 +-
 ios/playground/bundlejs/showcase/ui.js          |   30 +-
 ios/playground/bundlejs/style/index.js          |   82 +-
 ios/playground/bundlejs/style/style-box.js      |   46 +-
 ios/playground/bundlejs/style/style-flex.js     |   54 +-
 ios/playground/bundlejs/style/style-item.js     |   12 +-
 ios/playground/bundlejs/syntax/hello-world-1.js |    4 +-
 ios/playground/bundlejs/syntax/hello-world-2.js |    4 +-
 ios/playground/bundlejs/syntax/hello-world-3.js |    8 +-
 ios/playground/bundlejs/syntax/hello-world-4.js |   12 +-
 ios/playground/bundlejs/syntax/hello-world-5.js |   12 +-
 ios/playground/bundlejs/syntax/hello-world.js   |   12 +-
 ios/playground/bundlejs/syntax/index.js         |  296 +-
 .../bundlejs/syntax/script-component.js         |   24 +-
 ios/playground/bundlejs/syntax/script-data.js   |   12 +-
 ios/playground/bundlejs/syntax/script-events.js |   20 +-
 .../bundlejs/syntax/script-instance.js          |   12 +-
 .../bundlejs/syntax/script-lifecycle.js         |   12 +-
 ios/playground/bundlejs/syntax/script-module.js |   12 +-
 .../bundlejs/syntax/script-options.js           |   12 +-
 .../bundlejs/syntax/template-class.js           |   12 +-
 .../bundlejs/syntax/template-content.js         |   20 +-
 .../bundlejs/syntax/template-event.js           |   12 +-
 ios/playground/bundlejs/syntax/template-if.js   |   12 +-
 .../bundlejs/syntax/template-repeat-update.js   |   12 +-
 .../bundlejs/syntax/template-repeat.js          |   12 +-
 .../bundlejs/syntax/template-style.js           |    8 +-
 ios/playground/bundlejs/template.js             |   12 +-
 ios/playground/bundlejs/test.js                 |    8 +-
 ios/playground/bundlejs/vue/animation.js        |  120 +-
 ios/playground/bundlejs/vue/components/a.js     |   97 +-
 .../bundlejs/vue/components/countdown.js        |  122 +-
 ios/playground/bundlejs/vue/components/image.js |  142 +-
 ios/playground/bundlejs/vue/components/input.js |  735 +-
 ios/playground/bundlejs/vue/components/list.js  |   44 +-
 .../bundlejs/vue/components/marquee.js          |  105 +-
 .../bundlejs/vue/components/navigator.js        |  187 +-
 .../bundlejs/vue/components/scroller.js         |   48 +-
 .../bundlejs/vue/components/slider.js           |  341 +-
 .../bundlejs/vue/components/tabbar.js           |  133 +-
 ios/playground/bundlejs/vue/components/text.js  |  132 +-
 ios/playground/bundlejs/vue/components/video.js |   72 +-
 .../bundlejs/vue/components/waterfall.js        |  877 ++
 ios/playground/bundlejs/vue/components/web.js   |   74 +-
 ios/playground/bundlejs/vue/hello.js            |   19 +-
 ios/playground/bundlejs/vue/iconfont.js         |   36 +-
 ios/playground/bundlejs/vue/index.js            |  139 +-
 .../bundlejs/vue/modules/clipboard.js           |  147 +-
 .../bundlejs/vue/modules/instance-api.js        |   59 +-
 ios/playground/bundlejs/vue/modules/modal.js    |  105 +-
 ios/playground/bundlejs/vue/modules/storage.js  |   71 +-
 ios/playground/bundlejs/vue/modules/stream.js   |   95 +-
 .../bundlejs/vue/showcase/boxshadow.js          |  244 +
 .../bundlejs/vue/showcase/calculator.js         |   72 +-
 .../bundlejs/vue/showcase/itemlist.js           |  166 +-
 .../bundlejs/vue/showcase/new-fashion.js        |  557 +-
 .../bundlejs/vue/showcase/progress.js           |   63 +-
 ios/playground/bundlejs/vue/style/index.js      |  418 +-
 ios/playground/bundlejs/vue/style/style-box.js  |  180 +-
 ios/playground/bundlejs/vue/style/style-flex.js |  238 +-
 ios/playground/bundlejs/vue/style/style-item.js |   26 +-
 .../bundlejs/vue/syntax/hello-world-1.js        |   17 +-
 .../bundlejs/vue/syntax/hello-world-2.js        |   23 +-
 .../bundlejs/vue/syntax/hello-world-3.js        |   28 +-
 .../bundlejs/vue/syntax/hello-world-4.js        |   32 +-
 .../bundlejs/vue/syntax/hello-world-5.js        |   32 +-
 .../bundlejs/vue/syntax/hello-world.js          |   32 +-
 .../bundlejs/vue/syntax/script-component.js     |   64 +-
 .../bundlejs/vue/syntax/script-data.js          |   36 +-
 .../bundlejs/vue/syntax/script-events.js        |   32 +-
 .../bundlejs/vue/syntax/script-instance.js      |   30 +-
 .../bundlejs/vue/syntax/script-lifecycle.js     |   32 +-
 .../bundlejs/vue/syntax/script-module.js        |   30 +-
 .../bundlejs/vue/syntax/script-options.js       |   28 +-
 .../bundlejs/vue/syntax/template-class.js       |   34 +-
 .../bundlejs/vue/syntax/template-content.js     |   49 +-
 .../bundlejs/vue/syntax/template-event.js       |   36 +-
 .../bundlejs/vue/syntax/template-if.js          |   32 +-
 .../vue/syntax/template-repeat-update.js        |   40 +-
 .../bundlejs/vue/syntax/template-repeat.js      |   50 +-
 .../bundlejs/vue/syntax/template-style.js       |   27 +-
 ios/playground/bundlejs/vue/template.js         |  181 +-
 ios/sdk/WeexSDK.podspec                         |    2 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |  121 +-
 ios/sdk/WeexSDK/Resources/main.js               |   14 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.h |    2 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.m |    4 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m |    7 +
 ios/sdk/WeexSDK/Sources/Bridge/WXModuleMethod.m |   22 +
 .../Component/Recycler/WXMultiColumnLayout.h    |   44 +
 .../Component/Recycler/WXMultiColumnLayout.m    |  392 +
 .../Component/Recycler/WXRecyclerComponent.h    |   12 +
 .../Component/Recycler/WXRecyclerComponent.m    |  648 ++
 .../Recycler/WXRecyclerDataController.h         |   38 +
 .../Recycler/WXRecyclerDataController.m         |  132 +
 .../Recycler/WXRecyclerUpdateController.h       |   32 +
 .../Recycler/WXRecyclerUpdateController.m       |  250 +
 .../Recycler/WXSectionDataController.h          |   33 +
 .../Recycler/WXSectionDataController.m          |   81 +
 .../WeexSDK/Sources/Component/WXCellComponent.h |   23 +-
 .../WeexSDK/Sources/Component/WXCellComponent.m |   32 +-
 .../Component/WXComponent+GradientColor.h       |   15 +-
 .../Component/WXComponent+GradientColor.m       |   18 +-
 .../Sources/Component/WXComponent_internal.h    |    3 +
 .../WeexSDK/Sources/Component/WXEditComponent.h |   21 +
 .../WeexSDK/Sources/Component/WXEditComponent.m |  780 ++
 .../Sources/Component/WXFooterComponent.h       |   13 +
 .../Sources/Component/WXFooterComponent.m       |   13 +
 .../Sources/Component/WXHeaderComponent.h       |   28 +
 .../Sources/Component/WXHeaderComponent.m       |   76 +
 .../Sources/Component/WXImageComponent.m        |    1 +
 .../WeexSDK/Sources/Component/WXListComponent.h |   12 -
 .../WeexSDK/Sources/Component/WXListComponent.m |  336 +-
 .../Sources/Component/WXLoadingComponent.m      |   13 -
 .../Sources/Component/WXRefreshComponent.h      |    6 +-
 .../Sources/Component/WXRefreshComponent.m      |   18 +-
 .../Sources/Component/WXScrollerComponent.m     |   39 +-
 .../Sources/Component/WXSliderComponent.m       |   56 +-
 .../Component/WXSliderNeighborComponent.m       |    3 +-
 .../Sources/Component/WXTextAreaComponent.h     |    5 +-
 .../Sources/Component/WXTextAreaComponent.m     |  602 +-
 .../Sources/Component/WXTextInputComponent.h    |    8 +-
 .../Sources/Component/WXTextInputComponent.m    |  605 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m |   18 +-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |    2 +-
 .../Sources/Display/WXComponent+BoxShadow.h     |   34 +
 .../Sources/Display/WXComponent+BoxShadow.m     |   91 +
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.h  |   19 +
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.m  |   87 +
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m    |   13 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.m |    4 +
 ios/sdk/WeexSDK/Sources/Layout/Layout.c         |    3 +
 .../WeexSDK/Sources/Layout/WXComponent+Layout.m |   16 +-
 .../Sources/Manager/WXComponentManager.m        |   15 +-
 .../Sources/Manager/WXInvocationConfig.h        |    1 -
 .../Sources/Manager/WXInvocationConfig.m        |   12 -
 ios/sdk/WeexSDK/Sources/Manager/WXRuleManager.m |    5 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |   11 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h   |    6 +
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |    9 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |   58 +-
 ios/sdk/WeexSDK/Sources/Module/WXMetaModule.m   |    4 +-
 .../WeexSDK/Sources/Module/WXNavigatorModule.m  |    5 +-
 .../WeexSDK/Sources/Module/WXStorageModule.m    |    2 +-
 ios/sdk/WeexSDK/Sources/Module/WXStreamModule.m |  239 +-
 .../WeexSDK/Sources/Module/WXWebSocketModule.m  |    4 +-
 .../WXResourceRequestHandlerDefaultImpl.m       |    7 +-
 .../Sources/Protocol/WXJSExceptionProtocol.h    |    6 +-
 .../Sources/Protocol/WXValidateProtocol.h       |   39 +
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.h   |   31 +
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |  142 +
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.h     |    5 +
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.m     |  100 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDefine.h      |    2 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h    |   38 +
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m    |  186 +
 ios/sdk/WeexSDK/Sources/Utility/WXLength.h      |   13 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLength.m      |   45 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.m     |   26 +-
 .../Sources/View/WXComponent+ViewManagement.m   |   23 +-
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |    1 +
 ios/sdk/WeexSDKTests/WXStorageTests.m           |    9 -
 package.json                                    |   40 +-
 packages/weex-vue-render/README.md              |   51 +-
 packages/weex-vue-render/package.json           |   13 +-
 test/README.md                                  |    3 +-
 test/ci-funcs.sh                                |   55 +-
 test/pages/components/recycler.vue              |  487 +
 test/pages/components/scroller-fixed.we         |   62 +
 test/pages/image-onload.we                      |   19 +
 test/scripts/components/image-onload.test.js    |   39 +
 test/scripts/components/recycler.test.js        |  412 +
 test/scripts/components/scroll-event.test.js    |   28 +-
 test/scripts/components/scroller-fixed.test.js  |   39 +
 test/scripts/dom.test.js                        |   12 +-
 test/scripts/index.test.js                      |   12 +-
 test/scripts/util.js                            |   24 +
 vue.html                                        |   53 +-
 662 files changed, 78725 insertions(+), 11917 deletions(-)
----------------------------------------------------------------------




[22/50] [abbrv] incubator-weex git commit: Merge branch '0.11-dev' into html5-feature-vue-render

Posted by so...@apache.org.
Merge branch '0.11-dev' into html5-feature-vue-render


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

Branch: refs/heads/dev
Commit: 3501be132857c9b8ba7c7490ad720916ad862ffd
Parents: 4396188 61ab9f4
Author: MrRaindrop <te...@gmail.com>
Authored: Wed Mar 29 12:07:09 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Wed Mar 29 12:07:09 2017 +0800

----------------------------------------------------------------------
 .gitignore                                      |     2 +
 .travis.yml                                     |    56 +-
 CONTRIBUTING.md                                 |    38 +-
 Dangerfile-ios                                  |     4 +
 Gemfile                                         |    15 +
 Gemfile.lock                                    |   122 +
 README.md                                       |     2 +-
 android/.gitignore                              |     3 +-
 android/commons/build.gradle                    |    12 +-
 .../weex/commons/AbstractWeexActivity.java      |     2 +-
 .../commons/adapter/JSExceptionAdapter.java     |   222 +
 android/playground/app/build.gradle             |     9 +-
 .../app/src/main/assets/component/image-demo.js |     2 +-
 .../assets/component/slider-neighbor/index.js   |   264 +
 .../slider-neighbor/silder-neighbor.js          |   287 -
 .../src/main/assets/component/slider/index.js   |    33 +
 .../app/src/main/assets/component/text-demo.js  |   108 +
 .../app/src/main/assets/component/web-demo.js   |     1 -
 android/playground/app/src/main/assets/error.js |  2217 ++
 .../app/src/main/assets/geolocation.js          |   183 +
 .../app/src/main/assets/hello_weex.js           |    28 -
 android/playground/app/src/main/assets/index.js |     2 +-
 .../app/src/main/assets/linear-gradient.js      |   367 +
 .../app/src/main/assets/module/clipboard.js     |    27 +-
 .../app/src/main/assets/module/componentRect.js |   107 +-
 .../app/src/main/assets/module/instance-api.js  |    14 +-
 .../app/src/main/assets/module/modal.js         |    18 +-
 .../app/src/main/assets/module/picker-demo.js   |    18 +-
 .../app/src/main/assets/module/storage-demo.js  |    14 +-
 .../app/src/main/assets/module/stream-demo.js   |    18 +-
 .../src/main/assets/module/websocket-demo.js    |  2412 ++
 .../app/src/main/assets/showcase/calculator.js  |    21 +-
 .../assets/showcase/dropdown/dropdown-demo.js   |    30 +-
 .../assets/showcase/dropdown/we-dropdown.js     |    12 +-
 .../app/src/main/assets/showcase/minesweeper.js |    12 +-
 .../main/assets/showcase/new-fashion/banner.js  |     8 +-
 .../main/assets/showcase/new-fashion/banners.js |    20 +-
 .../main/assets/showcase/new-fashion/brand.js   |    36 +-
 .../assets/showcase/new-fashion/category.js     |    24 +-
 .../main/assets/showcase/new-fashion/coupon.js  |    12 +-
 .../main/assets/showcase/new-fashion/fashion.js |    38 +-
 .../main/assets/showcase/new-fashion/goods.js   |    24 +-
 .../assets/showcase/new-fashion/headlines.js    |    48 +-
 .../main/assets/showcase/new-fashion/index.js   |    21 +-
 .../main/assets/showcase/new-fashion/link.js    |     8 +-
 .../main/assets/showcase/new-fashion/main.js    |   209 +-
 .../main/assets/showcase/new-fashion/match.js   |    24 +-
 .../assets/showcase/new-fashion/resource.js     |    38 +-
 .../main/assets/showcase/new-fashion/scene.js   |    24 +-
 .../src/main/assets/showcase/pseudo-class.js    |  2425 ++
 .../app/src/main/assets/showcase/ui.js          |    24 +-
 .../app/src/main/assets/style/index.js          |    76 +-
 .../app/src/main/assets/style/style-box.js      |    40 +-
 .../app/src/main/assets/style/style-flex.js     |    48 +-
 .../app/src/main/assets/style/style-item.js     |    12 +-
 .../app/src/main/assets/syntax/hello-world-1.js |     4 +-
 .../app/src/main/assets/syntax/hello-world-2.js |     6 +-
 .../app/src/main/assets/syntax/hello-world-3.js |    10 +-
 .../app/src/main/assets/syntax/hello-world-4.js |    14 +-
 .../app/src/main/assets/syntax/hello-world-5.js |    14 +-
 .../app/src/main/assets/syntax/hello-world.js   |    14 +-
 .../app/src/main/assets/syntax/index.js         |    20 +-
 .../src/main/assets/syntax/script-component.js  |    24 +-
 .../app/src/main/assets/syntax/script-data.js   |    12 +-
 .../app/src/main/assets/syntax/script-events.js |    12 +-
 .../src/main/assets/syntax/script-instance.js   |    12 +-
 .../src/main/assets/syntax/script-lifecycle.js  |    12 +-
 .../app/src/main/assets/syntax/script-module.js |    12 +-
 .../src/main/assets/syntax/script-options.js    |    12 +-
 .../src/main/assets/syntax/template-class.js    |    12 +-
 .../src/main/assets/syntax/template-content.js  |    20 +-
 .../src/main/assets/syntax/template-event.js    |    12 +-
 .../app/src/main/assets/syntax/template-if.js   |    12 +-
 .../assets/syntax/template-repeat-update.js     |    12 +-
 .../src/main/assets/syntax/template-repeat.js   |    12 +-
 .../src/main/assets/syntax/template-style.js    |     8 +-
 .../playground/app/src/main/assets/template.js  |    12 +-
 android/playground/app/src/main/assets/test.js  |   128 +
 .../app/src/main/assets/vue/animation.js        |   709 +
 .../app/src/main/assets/vue/components/a.js     |   438 +
 .../src/main/assets/vue/components/countdown.js |   640 +
 .../app/src/main/assets/vue/components/image.js |   641 +
 .../app/src/main/assets/vue/components/input.js |   364 +
 .../app/src/main/assets/vue/components/list.js  |   246 +
 .../src/main/assets/vue/components/marquee.js   |   534 +
 .../src/main/assets/vue/components/navigator.js |  1059 +
 .../src/main/assets/vue/components/scroller.js  |   304 +
 .../src/main/assets/vue/components/slider.js    |   898 +
 .../src/main/assets/vue/components/tabbar.js    |   599 +
 .../app/src/main/assets/vue/components/text.js  |   513 +
 .../app/src/main/assets/vue/components/video.js |   396 +
 .../app/src/main/assets/vue/components/web.js   |   459 +
 .../playground/app/src/main/assets/vue/hello.js |    99 +
 .../app/src/main/assets/vue/iconfont.js         |   204 +
 .../playground/app/src/main/assets/vue/index.js |   496 +
 .../src/main/assets/vue/modules/clipboard.js    |   691 +
 .../src/main/assets/vue/modules/instance-api.js |   304 +
 .../app/src/main/assets/vue/modules/modal.js    |   581 +
 .../app/src/main/assets/vue/modules/storage.js  |   381 +
 .../app/src/main/assets/vue/modules/stream.js   |   477 +
 .../src/main/assets/vue/showcase/calculator.js  |   340 +
 .../src/main/assets/vue/showcase/itemlist.js    |  1062 +
 .../src/main/assets/vue/showcase/new-fashion.js |  3302 +++
 .../src/main/assets/vue/showcase/progress.js    |   336 +
 .../app/src/main/assets/vue/style/index.js      |  1566 ++
 .../app/src/main/assets/vue/style/style-box.js  |   780 +
 .../app/src/main/assets/vue/style/style-flex.js |   919 +
 .../app/src/main/assets/vue/style/style-item.js |   155 +
 .../src/main/assets/vue/syntax/hello-world-1.js |    95 +
 .../src/main/assets/vue/syntax/hello-world-2.js |   112 +
 .../src/main/assets/vue/syntax/hello-world-3.js |   127 +
 .../src/main/assets/vue/syntax/hello-world-4.js |   167 +
 .../src/main/assets/vue/syntax/hello-world-5.js |   173 +
 .../src/main/assets/vue/syntax/hello-world.js   |   183 +
 .../main/assets/vue/syntax/script-component.js  |   224 +
 .../src/main/assets/vue/syntax/script-data.js   |   214 +
 .../src/main/assets/vue/syntax/script-events.js |   161 +
 .../main/assets/vue/syntax/script-instance.js   |   196 +
 .../main/assets/vue/syntax/script-lifecycle.js  |   155 +
 .../src/main/assets/vue/syntax/script-module.js |   156 +
 .../main/assets/vue/syntax/script-options.js    |   182 +
 .../main/assets/vue/syntax/template-class.js    |   161 +
 .../main/assets/vue/syntax/template-content.js  |   189 +
 .../main/assets/vue/syntax/template-event.js    |   197 +
 .../src/main/assets/vue/syntax/template-if.js   |   165 +
 .../assets/vue/syntax/template-repeat-update.js |   195 +
 .../main/assets/vue/syntax/template-repeat.js   |   170 +
 .../main/assets/vue/syntax/template-style.js    |   144 +
 .../app/src/main/assets/vue/template.js         |   796 +
 .../playground/app/src/main/ic_launcher-web.png |   Bin 0 -> 19935 bytes
 .../java/com/alibaba/weex/IndexActivity.java    |   204 +
 .../java/com/alibaba/weex/SplashActivity.java   |   204 +
 .../java/com/alibaba/weex/WXApplication.java    |   211 +
 .../java/com/alibaba/weex/WXBaseActivity.java   |   204 +
 .../java/com/alibaba/weex/WXDebugActivity.java  |   204 +
 .../java/com/alibaba/weex/WXPageActivity.java   |   206 +-
 .../com/alibaba/weex/constants/Constants.java   |   204 +
 .../alibaba/weex/extend/PlayDebugAdapter.java   |   204 +
 .../extend/adapter/InterceptWXHttpAdapter.java  |   204 +
 .../alibaba/weex/extend/component/RichText.java |   204 +
 .../extend/component/WXComponentSyncTest.java   |   204 +
 .../alibaba/weex/extend/component/WXMask.java   |   167 +
 .../extend/component/dom/WXMaskDomObject.java   |   231 +
 .../weex/extend/module/GeolocationModule.java   |   204 +
 .../alibaba/weex/extend/module/MyModule.java    |   204 +
 .../weex/extend/module/RenderModule.java        |   204 +
 .../weex/extend/module/SyncTestModule.java      |   204 +
 .../weex/extend/module/WXEventModule.java       |   212 +-
 .../extend/module/location/DefaultLocation.java |   314 +-
 .../weex/extend/module/location/ILocatable.java |   204 +
 .../extend/module/location/LocationFactory.java |   204 +
 .../alibaba/weex/extend/view/WXMaskView.java    |   220 +
 .../alibaba/weex/https/HotRefreshManager.java   |   204 +
 .../com/alibaba/weex/https/WXHttpManager.java   |   204 +
 .../com/alibaba/weex/https/WXHttpResponse.java  |   204 +
 .../java/com/alibaba/weex/https/WXHttpTask.java |   204 +
 .../alibaba/weex/https/WXOkHttpDispatcher.java  |   204 +
 .../alibaba/weex/https/WXRequestListener.java   |   204 +
 .../zxing/client/android/CaptureActivity.java   |     1 +
 .../src/main/res/mipmap-hdpi/ic_launcher.png    |   Bin 5248 -> 1755 bytes
 .../src/main/res/mipmap-mdpi/ic_launcher.png    |   Bin 4303 -> 1221 bytes
 .../src/main/res/mipmap-xhdpi/ic_launcher.png   |   Bin 6354 -> 2451 bytes
 .../src/main/res/mipmap-xxhdpi/ic_launcher.png  |   Bin 7930 -> 3939 bytes
 .../src/main/res/mipmap-xxxhdpi/ic_launcher.png |   Bin 10633 -> 5608 bytes
 .../com.taobao.taobao_2016.11.21_17.35.li       |   Bin 2415126 -> 0 bytes
 android/run-ci.sh                               |     4 +
 android/sdk/assets/main.js                      | 19932 +----------------
 android/sdk/build.gradle                        |    73 +-
 android/sdk/libs/armeabi/libweexv8.so           |   Bin 3583820 -> 3583820 bytes
 android/sdk/libs/x86/libweexv8.so               |   Bin 4340864 -> 4336768 bytes
 .../main/java/com/taobao/weex/InitConfig.java   |    13 +
 .../main/java/com/taobao/weex/WXSDKEngine.java  |    16 +-
 .../java/com/taobao/weex/WXSDKInstance.java     |    78 +-
 .../main/java/com/taobao/weex/WXSDKManager.java |    27 +-
 .../weex/adapter/IWXJSExceptionAdapter.java     |   218 +
 .../appfram/navigator/WXNavigatorModule.java    |    88 +-
 .../weex/appfram/pickers/WXPickersModule.java   |     8 +-
 .../appfram/storage/WXSQLiteOpenHelper.java     |     2 -
 .../com/taobao/weex/bridge/WXBridgeManager.java |   200 +-
 .../com/taobao/weex/bridge/WXModuleManager.java |    31 +-
 .../taobao/weex/bridge/WXServiceManager.java    |    31 +-
 .../taobao/weex/bridge/WXValidateProcessor.java |   241 +
 .../java/com/taobao/weex/common/Constants.java  |    37 +-
 .../com/taobao/weex/common/WXImageStrategy.java |     2 +-
 .../taobao/weex/common/WXJSExceptionInfo.java   |   331 +
 .../com/taobao/weex/common/WXJSService.java     |   229 +
 .../java/com/taobao/weex/common/WXModule.java   |    12 +-
 .../java/com/taobao/weex/common/WXThread.java   |     9 +
 .../com/taobao/weex/dom/CSSAlignConvert.java    |   204 +
 .../weex/dom/CSSFlexDirectionConvert.java       |   204 +
 .../com/taobao/weex/dom/CSSJustifyConvert.java  |   204 +
 .../taobao/weex/dom/CSSPositionTypeConvert.java |   204 +
 .../com/taobao/weex/dom/CSSWrapConvert.java     |   204 +
 .../com/taobao/weex/dom/ImmutableDomObject.java |    18 +-
 .../main/java/com/taobao/weex/dom/WXAttr.java   |   107 +-
 .../com/taobao/weex/dom/WXCustomStyleSpan.java  |   207 +-
 .../java/com/taobao/weex/dom/WXDomHandler.java  |     4 +-
 .../java/com/taobao/weex/dom/WXDomManager.java  |     6 +-
 .../java/com/taobao/weex/dom/WXDomModule.java   |    18 +-
 .../java/com/taobao/weex/dom/WXDomObject.java   |    32 +-
 .../com/taobao/weex/dom/WXDomStatement.java     |     4 +-
 .../taobao/weex/dom/WXRecyclerDomObject.java    |   317 +
 .../main/java/com/taobao/weex/dom/WXStyle.java  |    69 +-
 .../com/taobao/weex/dom/WXTextDomObject.java    |   206 +-
 .../java/com/taobao/weex/dom/flex/CSSNode.java  |     8 +-
 .../com/taobao/weex/http/WXStreamModule.java    |    30 +-
 .../com/taobao/weex/ui/WXRenderStatement.java   |    28 +-
 .../ui/animation/BackgroundColorProperty.java   |   252 +
 .../weex/ui/animation/WXAnimationModule.java    |    24 +-
 .../ui/component/AbstractEditComponent.java     |   152 +-
 .../taobao/weex/ui/component/Scrollable.java    |    12 +-
 .../java/com/taobao/weex/ui/component/WXA.java  |    10 +-
 .../taobao/weex/ui/component/WXBaseRefresh.java |    10 -
 .../weex/ui/component/WXBasicComponentType.java |     2 +
 .../taobao/weex/ui/component/WXComponent.java   |   141 +-
 .../com/taobao/weex/ui/component/WXEmbed.java   |     7 +-
 .../com/taobao/weex/ui/component/WXHeader.java  |     9 +-
 .../com/taobao/weex/ui/component/WXImage.java   |   104 +-
 .../taobao/weex/ui/component/WXIndicator.java   |     2 +-
 .../com/taobao/weex/ui/component/WXLoading.java |    12 +-
 .../com/taobao/weex/ui/component/WXRefresh.java |    13 +-
 .../taobao/weex/ui/component/WXScroller.java    |   160 +-
 .../com/taobao/weex/ui/component/WXSlider.java  |    20 +-
 .../weex/ui/component/WXSliderNeighbor.java     |   135 +-
 .../taobao/weex/ui/component/WXVContainer.java  |    14 +
 .../ui/component/helper/WXStickyHelper.java     |    11 +-
 .../ui/component/list/BasicListComponent.java   |   334 +-
 .../component/list/HorizontalListComponent.java |     2 +-
 .../ui/component/list/ListComponentView.java    |     4 +-
 .../ui/component/list/SimpleListComponent.java  |     6 +-
 .../ui/component/list/SimpleRecyclerView.java   |    77 +-
 .../ui/component/list/StickyHeaderHelper.java   |   337 +
 .../taobao/weex/ui/component/list/WXCell.java   |    11 +
 .../weex/ui/component/list/WXListComponent.java |    91 +-
 .../weex/ui/component/pesudo/PesudoStatus.java  |    20 +-
 .../com/taobao/weex/ui/module/WXMetaModule.java |     7 +-
 .../taobao/weex/ui/module/WXTimerModule.java    |   139 +-
 .../taobao/weex/ui/view/WXCircleViewPager.java  |    38 +-
 .../com/taobao/weex/ui/view/WXImageView.java    |    20 +-
 .../com/taobao/weex/ui/view/WXScrollView.java   |    11 +-
 .../weex/ui/view/border/BorderDrawable.java     |    39 +-
 .../taobao/weex/ui/view/border/BorderEdge.java  |    77 +-
 .../weex/ui/view/border/BorderRadiusType.java   |   222 +
 .../view/border/BorderWidthStyleColorType.java  |   224 +
 .../taobao/weex/ui/view/gesture/WXGesture.java  |    47 +-
 .../listview/ExtendedLinearLayoutManager.java   |   281 +
 .../weex/ui/view/listview/WXRecyclerView.java   |    44 +-
 .../listview/adapter/ListBaseViewHolder.java    |    44 +-
 .../adapter/RecyclerViewBaseAdapter.java        |    21 +-
 .../adapter/WXRecyclerViewOnScrollListener.java |   109 +-
 .../ui/view/refresh/wrapper/BaseBounceView.java |    74 +-
 .../refresh/wrapper/BounceRecyclerView.java     |   124 +-
 .../refresh/wrapper/BounceScrollerView.java     |     1 +
 .../taobao/weex/utils/WXDataStructureUtil.java  |   211 +-
 .../java/com/taobao/weex/utils/WXFileUtils.java |    37 +-
 .../main/java/com/taobao/weex/utils/WXHack.java |   527 -
 .../taobao/weex/utils/WXSoInstallMgrSdk.java    |     9 +-
 .../java/com/taobao/weex/utils/WXUtils.java     |   200 +-
 .../java/com/taobao/weex/utils/WXViewUtils.java |    81 +-
 .../test/java/com/taobao/weex/TestActivity.java |     6 +-
 .../java/com/taobao/weex/dom/WXStyleTest.java   |    23 +-
 .../ui/component/list/WXListComponentTest.java  |    19 +-
 .../taobao/weex/ui/module/WXMetaModuleTest.java |    10 +-
 .../weex/ui/module/WXTimerModuleTest.java       |   151 +-
 .../weex/ui/view/border/BorderDrawableTest.java |     4 +-
 .../taobao/weex/utils/FunctionParserTest.java   |    11 +-
 .../java/com/taobao/weex/utils/WXUtilsTest.java |   125 +-
 android/sdk/unittest.sh                         |     3 +-
 build/webpack.macacatest.config.js              |     6 +-
 circle.yml                                      |     3 +-
 dangerfile.js                                   |   117 +
 doc/_config.yml                                 |     9 +-
 doc/advanced/extend-to-android.md               |   175 +
 doc/package.json                                |     7 +-
 doc/source/cn/faq.md                            |     6 +-
 doc/source/cn/guide/contributing.md             |   106 +
 doc/source/cn/guide/dev-with-weexpack.md        |    11 -
 doc/source/cn/guide/index.md                    |   123 +-
 doc/source/cn/guide/integrate-to-your-app.md    |     6 +-
 doc/source/cn/guide/intro/app-architecture.md   |    34 +-
 doc/source/cn/guide/intro/how-it-works.md       |    38 +-
 doc/source/cn/guide/intro/index.md              |     2 +-
 doc/source/cn/guide/intro/page-architecture.md  |    18 +-
 doc/source/cn/guide/intro/using-vue.md          |    79 +-
 doc/source/cn/guide/intro/web-dev-experience.md |    20 +-
 doc/source/cn/guide/intro/write-once.md         |     2 +-
 doc/source/cn/guide/set-up-env.md               |   128 +
 doc/source/cn/guide/tools/devtools.md           |   111 +
 doc/source/cn/guide/tools/index.md              |    11 +
 doc/source/cn/guide/tools/weexpack.md           |   388 +
 .../cn/references/advanced/extend-jsfm.md       |     2 +-
 .../cn/references/advanced/extend-to-android.md |    48 +-
 .../cn/references/advanced/extend-to-html5.md   |     2 +-
 .../cn/references/advanced/extend-to-ios.md     |   278 +-
 doc/source/cn/references/advanced/index.md      |     2 +-
 .../advanced/integrate-devtool-to-android.md    |     6 +-
 .../advanced/integrate-devtool-to-ios.md        |     8 +-
 doc/source/cn/references/android-apis.md        |    25 +-
 doc/source/cn/references/common-style.md        |   167 +-
 doc/source/cn/references/components/a.md        |    25 +-
 doc/source/cn/references/components/cell.md     |     7 +-
 doc/source/cn/references/components/div.md      |    12 +-
 doc/source/cn/references/components/image.md    |    20 +-
 .../cn/references/components/indicator.md       |     3 +-
 doc/source/cn/references/components/input.md    |    13 +-
 doc/source/cn/references/components/list.md     |     6 +-
 doc/source/cn/references/components/loading.md  |     2 +
 doc/source/cn/references/components/refresh.md  |     4 +-
 doc/source/cn/references/components/scroller.md |     6 +-
 doc/source/cn/references/components/slider.md   |     2 +-
 doc/source/cn/references/components/switch.md   |     2 +-
 doc/source/cn/references/components/text.md     |     2 +-
 doc/source/cn/references/components/textarea.md |     9 +-
 doc/source/cn/references/components/video.md    |     2 +-
 doc/source/cn/references/components/web.md      |     2 +-
 doc/source/cn/references/gesture.md             |     3 +-
 doc/source/cn/references/ios-apis.md            |     4 +-
 doc/source/cn/references/js-service/index.md    |   118 +
 .../cn/references/migration/difference.md       |     2 +-
 doc/source/cn/references/migration/index.md     |     2 +-
 .../references/migration/migration-from-weex.md |     2 +-
 doc/source/cn/references/modules/animation.md   |     4 +-
 doc/source/cn/references/modules/clipboard.md   |     2 +-
 doc/source/cn/references/modules/dom.md         |     8 +-
 doc/source/cn/references/modules/globalevent.md |     2 +-
 doc/source/cn/references/modules/index.md       |    31 +-
 doc/source/cn/references/modules/modal.md       |     2 +-
 doc/source/cn/references/modules/navigator.md   |     2 +-
 doc/source/cn/references/modules/storage.md     |     4 +-
 doc/source/cn/references/modules/stream.md      |     2 +-
 doc/source/cn/references/modules/websocket.md   |   215 +
 doc/source/cn/references/modules/webview.md     |     2 +-
 doc/source/cn/references/path.md                |    32 +-
 .../cn/references/vue/difference-of-vuex.md     |     2 +-
 .../cn/references/vue/difference-with-web.md    |     9 +-
 doc/source/cn/references/vue/index.md           |     2 +-
 .../cn/v-0.10/advanced/extend-to-android.md     |    27 +-
 .../cn/v-0.10/advanced/extend-to-html5.md       |     2 +-
 doc/source/cn/v-0.10/advanced/extend-to-ios.md  |   154 +-
 .../cn/v-0.10/advanced/integrate-to-android.md  |     4 +-
 .../cn/v-0.10/references/modules/globalevent.md |     2 +-
 .../cn/v-0.10/references/modules/storage.md     |     2 +-
 doc/source/cn/v-0.10/tools/devtools.md          |     4 +-
 doc/source/faq.md                               |     5 +-
 doc/source/guide/contributing.md                |   106 +
 doc/source/guide/dev-with-weexpack.md           |    12 -
 doc/source/guide/index.md                       |    49 +-
 doc/source/guide/integrate-to-your-app.md       |   274 +-
 doc/source/guide/intro/app-architecture.md      |    57 +-
 doc/source/guide/intro/how-it-works.md          |    62 +-
 doc/source/guide/intro/index.md                 |     4 +-
 doc/source/guide/intro/page-architecture.md     |    42 +-
 doc/source/guide/intro/using-vue.md             |    52 +-
 doc/source/guide/intro/web-dev-experience.md    |    29 +-
 doc/source/guide/intro/write-once.md            |    19 +-
 doc/source/guide/set-up-env.md                  |    93 +
 doc/source/guide/tools/devtools.md              |   100 +
 doc/source/guide/tools/index.md                 |    11 +
 doc/source/guide/tools/weexpack.md              |   300 +
 doc/source/references/advanced/extend-jsfm.md   |   161 +-
 .../references/advanced/extend-to-android.md    |    49 +-
 .../references/advanced/extend-to-html5.md      |    90 +-
 doc/source/references/advanced/extend-to-ios.md |    80 +-
 doc/source/references/advanced/index.md         |     2 +-
 .../advanced/integrate-devtool-to-android.md    |   139 +-
 .../advanced/integrate-devtool-to-ios.md        |   186 +-
 doc/source/references/android-apis.md           |   211 +-
 doc/source/references/common-style.md           |   175 +-
 doc/source/references/components/a.md           |     2 +-
 doc/source/references/components/cell.md        |     8 +-
 doc/source/references/components/div.md         |     6 +-
 doc/source/references/components/image.md       |    12 +-
 doc/source/references/components/indicator.md   |     6 +-
 doc/source/references/components/input.md       |    11 +-
 doc/source/references/components/list.md        |     4 +-
 doc/source/references/components/refresh.md     |     4 +-
 doc/source/references/components/scroller.md    |    10 +-
 doc/source/references/components/slider.md      |    12 +-
 doc/source/references/components/switch.md      |     4 +-
 doc/source/references/components/text.md        |     2 +-
 doc/source/references/components/textarea.md    |    11 +-
 doc/source/references/components/video.md       |     4 +-
 doc/source/references/components/web.md         |     6 +-
 doc/source/references/gesture.md                |    11 +-
 doc/source/references/ios-apis.md               |    70 +-
 doc/source/references/js-service/index.md       |   114 +
 doc/source/references/modules/animation.md      |     2 +-
 doc/source/references/modules/clipboard.md      |     2 +-
 doc/source/references/modules/dom.md            |     8 +-
 doc/source/references/modules/globalevent.md    |     6 +-
 doc/source/references/modules/index.md          |    31 +-
 doc/source/references/modules/modal.md          |     2 +-
 doc/source/references/modules/navigator.md      |     2 +-
 doc/source/references/modules/storage.md        |     4 +-
 doc/source/references/modules/stream.md         |     2 +-
 doc/source/references/modules/websocket.md      |   214 +
 doc/source/references/modules/webview.md        |     8 +-
 doc/source/references/native-dom-api.md         |   203 +-
 doc/source/references/platfrom-difference.md    |    11 +
 doc/source/references/vue/difference-of-vuex.md |    87 +-
 .../references/vue/difference-with-web.md       |   145 +-
 doc/source/references/vue/index.md              |     2 +-
 doc/source/references/weex-variable.md          |    41 +-
 doc/source/v-0.10/advanced/extend-to-android.md |    57 +-
 doc/source/v-0.10/advanced/extend-to-html5.md   |     2 +-
 doc/source/v-0.10/advanced/extend-to-ios.md     |    39 +
 .../v-0.10/advanced/integrate-to-android.md     |     6 +-
 .../guide/how-to/preview-in-playground-app.md   |     2 +-
 .../v-0.10/references/modules/globalevent.md    |     2 +-
 doc/themes/weex/languages/cn.yml                |     5 +-
 doc/themes/weex/languages/en.yml                |    45 +-
 .../weex/layout/_partial/after-footer.ejs       |     2 +-
 doc/themes/weex/layout/_partial/footer.ejs      |     8 +-
 doc/themes/weex/layout/_partial/header.ejs      |    30 +-
 doc/themes/weex/layout/_partial/search-form.ejs |     2 +-
 doc/themes/weex/layout/_partial/sidebar.ejs     |    15 +-
 doc/themes/weex/layout/_partial/slider.ejs      |     2 +-
 doc/themes/weex/layout/index.ejs                |    29 +-
 doc/themes/weex/source/css/index.scss           |     4 +-
 doc/themes/weex/source/css/media-queries.scss   |     3 +
 doc/themes/weex/source/css/partial/footer.scss  |     1 +
 doc/themes/weex/source/css/partial/header.scss  |    32 +-
 .../weex/source/css/partial/search-form.scss    |     3 -
 doc/themes/weex/source/css/partial/sidebar.scss |     1 +
 doc/themes/weex/source/js/common.js             |    77 +-
 doc/themes/weex/source/js/example.js            |     2 +-
 examples/component/image-demo.we                |     2 +-
 examples/component/input-demo.we                |   265 +-
 examples/component/list/list-basic.we           |    79 +-
 examples/component/scroller-demo.we             |    64 +-
 examples/component/slider-neighbor/index.we     |    28 +-
 examples/component/slider-tab.we                |   100 +
 examples/component/text-demo.we                 |    17 +-
 examples/include/example-list-item.we           |    30 +-
 examples/index.we                               |     6 +-
 examples/linear-gradient.we                     |    70 +
 examples/module/chatroom-demo.we                |   227 +
 examples/module/websocket-demo.we               |   268 +-
 examples/showcase/boxshadow.we                  |    46 +
 examples/showcase/pseudo-class.we               |   102 +
 examples/vue/components/input.vue               |   215 +-
 examples/vue/components/list.vue                |     3 +
 examples/vue/components/waterfall.vue           |   468 +
 examples/vue/index.vue                          |     2 +
 examples/vue/showcase/boxshadow.vue             |    39 +
 html5/frameworks/legacy/app/ctrl/init.js        |     4 +-
 html5/frameworks/legacy/app/ctrl/misc.js        |    55 +-
 html5/frameworks/legacy/app/instance.js         |    14 +-
 html5/frameworks/legacy/static/create.js        |     6 +-
 html5/runtime/config.js                         |     4 +-
 html5/runtime/init.js                           |     4 -
 html5/runtime/task-center.js                    |    57 +
 html5/services/amd/index.js                     |    18 +-
 html5/shared/freeze.js                          |    58 +-
 html5/test/case/prepare.js                      |     6 +-
 html5/test/case/tester.js                       |    48 +-
 html5/test/unit/default/app/ctrl.js             |    14 +-
 html5/test/unit/default/app/index.js            |    28 +-
 html5/test/unit/shared/index.js                 |     2 +-
 ios/playground/Podfile                          |     4 +-
 .../WeexDemo.xcodeproj/project.pbxproj          |    60 +-
 ios/playground/WeexDemo/AppDelegate.m           |    18 +
 .../AppIcon.appiconset/Icon-29.png              |   Bin 1682 -> 1614 bytes
 .../AppIcon.appiconset/Icon-29@2x-1.png         |   Bin 2709 -> 2421 bytes
 .../AppIcon.appiconset/Icon-29@2x.png           |   Bin 2709 -> 2421 bytes
 .../AppIcon.appiconset/Icon-29@3x.png           |   Bin 3724 -> 3236 bytes
 .../AppIcon.appiconset/Icon-40.png              |   Bin 2018 -> 1946 bytes
 .../AppIcon.appiconset/Icon-40@2x-1.png         |   Bin 3368 -> 3016 bytes
 .../AppIcon.appiconset/Icon-40@2x.png           |   Bin 3368 -> 3016 bytes
 .../AppIcon.appiconset/Icon-40@3x.png           |   Bin 4715 -> 4172 bytes
 .../AppIcon.appiconset/Icon-60@2x.png           |   Bin 4715 -> 4172 bytes
 .../AppIcon.appiconset/Icon-60@3x.png           |   Bin 6892 -> 6017 bytes
 .../AppIcon.appiconset/Icon-76.png              |   Bin 3324 -> 2918 bytes
 .../AppIcon.appiconset/Icon-76@2x.png           |   Bin 5937 -> 5088 bytes
 .../AppIcon.appiconset/Icon-83.5@2x.png         |   Bin 6942 -> 5537 bytes
 ios/playground/WeexDemo/DemoDefine.h            |     6 +-
 ios/playground/WeexDemo/Info.plist              |    20 +-
 ios/playground/WeexDemo/UIView+UIThreadCheck.h  |    15 +
 ios/playground/WeexDemo/UIView+UIThreadCheck.m  |    42 +
 ios/playground/WeexDemo/WXDemoViewController.m  |     8 +-
 ios/playground/bundlejs/animation.js            |     3 +-
 ios/playground/bundlejs/component/a-demo.js     |     3 +-
 .../bundlejs/component/countdown-demo.js        |     3 +-
 ios/playground/bundlejs/component/image-demo.js |     5 +-
 ios/playground/bundlejs/component/input-demo.js |  2684 +--
 .../bundlejs/component/lengthunitwx-demo.js     |   329 +
 .../bundlejs/component/list/list-basic.js       |   132 +-
 .../component/list/list-demo-horizon.js         |    12 +-
 .../bundlejs/component/list/list-demo.js        |    15 +-
 .../bundlejs/component/list/waterfall.js        |   877 +
 .../bundlejs/component/marquee-demo.js          |    16 +-
 .../bundlejs/component/navigator-demo.js        |     8 +-
 .../bundlejs/component/process-bar-demo.js      |    20 +-
 .../bundlejs/component/scroller-demo.js         |   222 +-
 .../bundlejs/component/slider-neighbor/index.js |   264 +
 .../slider-neighbor/silder-neighbor.js          |   287 -
 .../slider-neighbor/slider-neighbor-item.js     |    12 +-
 .../slider-neighbor/slider-neighbor-page.js     |    28 +-
 ios/playground/bundlejs/component/slider-tab.js |   633 +
 .../bundlejs/component/slider/index.js          |    92 +-
 .../bundlejs/component/slider/slider-item.js    |    12 +-
 .../bundlejs/component/slider/slider-page.js    |    28 +-
 .../bundlejs/component/tabbar/tabbar-demo.js    |     5 +-
 ios/playground/bundlejs/component/text-demo.js  |   135 +-
 ios/playground/bundlejs/component/video-demo.js |    27 +-
 ios/playground/bundlejs/component/web-demo.js   |    36 +-
 ios/playground/bundlejs/error.js                |    23 +-
 ios/playground/bundlejs/geolocation.js          |    46 +-
 ios/playground/bundlejs/hello.js                |     4 +-
 ios/playground/bundlejs/iconfont.js             |    12 +-
 ios/playground/bundlejs/index.js                |   275 +-
 ios/playground/bundlejs/linear-gradient.js      |   367 +
 ios/playground/bundlejs/module/chatroom-demo.js |   370 +
 ios/playground/bundlejs/module/clipboard.js     |    81 +-
 ios/playground/bundlejs/module/componentRect.js |   563 +
 ios/playground/bundlejs/module/instance-api.js  |    71 +-
 ios/playground/bundlejs/module/modal.js         |    37 +-
 ios/playground/bundlejs/module/picker-demo.js   |    37 +-
 ios/playground/bundlejs/module/storage-demo.js  |    71 +-
 ios/playground/bundlejs/module/stream-demo.js   |    75 +-
 .../bundlejs/module/websocket-demo.js           |  1956 ++
 ios/playground/bundlejs/showcase/boxshadow.js   |   269 +
 ios/playground/bundlejs/showcase/calculator.js  |    43 +-
 .../bundlejs/showcase/dropdown/dropdown-demo.js |    38 +-
 .../bundlejs/showcase/dropdown/we-dropdown.js   |    12 +-
 ios/playground/bundlejs/showcase/minesweeper.js |    18 +-
 .../bundlejs/showcase/new-fashion/banner.js     |     8 +-
 .../bundlejs/showcase/new-fashion/banners.js    |    20 +-
 .../bundlejs/showcase/new-fashion/brand.js      |    36 +-
 .../bundlejs/showcase/new-fashion/category.js   |    24 +-
 .../bundlejs/showcase/new-fashion/coupon.js     |    12 +-
 .../bundlejs/showcase/new-fashion/fashion.js    |    38 +-
 .../bundlejs/showcase/new-fashion/goods.js      |    24 +-
 .../bundlejs/showcase/new-fashion/headlines.js  |    48 +-
 .../bundlejs/showcase/new-fashion/image-demo.js |     3 +-
 .../bundlejs/showcase/new-fashion/index.js      |    27 +-
 .../bundlejs/showcase/new-fashion/link.js       |     8 +-
 .../showcase/new-fashion/list/list-demo.js      |     3 +-
 .../bundlejs/showcase/new-fashion/main.js       |   213 +-
 .../bundlejs/showcase/new-fashion/match.js      |    24 +-
 .../bundlejs/showcase/new-fashion/resource.js   |    38 +-
 .../bundlejs/showcase/new-fashion/scene.js      |    24 +-
 .../bundlejs/showcase/pseudo-class.js           |  2440 ++
 ios/playground/bundlejs/showcase/ui.js          |    46 +-
 ios/playground/bundlejs/style/index.js          |    98 +-
 ios/playground/bundlejs/style/style-box.js      |    62 +-
 ios/playground/bundlejs/style/style-flex.js     |    70 +-
 ios/playground/bundlejs/style/style-item.js     |    12 +-
 ios/playground/bundlejs/syntax/hello-world-1.js |     4 +-
 ios/playground/bundlejs/syntax/hello-world-2.js |     6 +-
 ios/playground/bundlejs/syntax/hello-world-3.js |    10 +-
 ios/playground/bundlejs/syntax/hello-world-4.js |    14 +-
 ios/playground/bundlejs/syntax/hello-world-5.js |    14 +-
 ios/playground/bundlejs/syntax/hello-world.js   |    14 +-
 ios/playground/bundlejs/syntax/index.js         |   316 +-
 .../bundlejs/syntax/script-component.js         |    24 +-
 ios/playground/bundlejs/syntax/script-data.js   |    12 +-
 ios/playground/bundlejs/syntax/script-events.js |    20 +-
 .../bundlejs/syntax/script-instance.js          |    12 +-
 .../bundlejs/syntax/script-lifecycle.js         |    12 +-
 ios/playground/bundlejs/syntax/script-module.js |    12 +-
 .../bundlejs/syntax/script-options.js           |    12 +-
 .../bundlejs/syntax/template-class.js           |    12 +-
 .../bundlejs/syntax/template-content.js         |    20 +-
 .../bundlejs/syntax/template-event.js           |    12 +-
 ios/playground/bundlejs/syntax/template-if.js   |    12 +-
 .../bundlejs/syntax/template-repeat-update.js   |    12 +-
 .../bundlejs/syntax/template-repeat.js          |    12 +-
 .../bundlejs/syntax/template-style.js           |     8 +-
 ios/playground/bundlejs/template.js             |    15 +-
 ios/playground/bundlejs/test.js                 |   128 +
 ios/playground/bundlejs/vue/animation.js        |   721 +
 ios/playground/bundlejs/vue/components/a.js     |   449 +
 .../bundlejs/vue/components/countdown.js        |   652 +
 ios/playground/bundlejs/vue/components/image.js |   653 +
 ios/playground/bundlejs/vue/components/input.js |   743 +
 ios/playground/bundlejs/vue/components/list.js  |   254 +
 .../bundlejs/vue/components/marquee.js          |   545 +
 .../bundlejs/vue/components/navigator.js        |  1078 +
 .../bundlejs/vue/components/scroller.js         |   308 +
 .../bundlejs/vue/components/slider.js           |   695 +
 .../bundlejs/vue/components/tabbar.js           |   576 +
 ios/playground/bundlejs/vue/components/text.js  |   521 +
 ios/playground/bundlejs/vue/components/video.js |   404 +
 .../bundlejs/vue/components/waterfall.js        |   877 +
 ios/playground/bundlejs/vue/components/web.js   |   467 +
 ios/playground/bundlejs/vue/hello.js            |   102 +
 ios/playground/bundlejs/vue/iconfont.js         |   208 +
 ios/playground/bundlejs/vue/index.js            |   513 +
 .../bundlejs/vue/modules/clipboard.js           |   706 +
 .../bundlejs/vue/modules/instance-api.js        |   311 +
 ios/playground/bundlejs/vue/modules/modal.js    |   592 +
 ios/playground/bundlejs/vue/modules/storage.js  |   388 +
 ios/playground/bundlejs/vue/modules/stream.js   |   448 +
 .../bundlejs/vue/showcase/boxshadow.js          |   244 +
 .../bundlejs/vue/showcase/calculator.js         |   344 +
 .../bundlejs/vue/showcase/itemlist.js           |  1068 +
 .../bundlejs/vue/showcase/new-fashion.js        |  3347 +++
 .../bundlejs/vue/showcase/progress.js           |   343 +
 ios/playground/bundlejs/vue/style/index.js      |  1590 ++
 ios/playground/bundlejs/vue/style/style-box.js  |   796 +
 ios/playground/bundlejs/vue/style/style-flex.js |   931 +
 ios/playground/bundlejs/vue/style/style-item.js |   159 +
 .../bundlejs/vue/syntax/hello-world-1.js        |    98 +
 .../bundlejs/vue/syntax/hello-world-2.js        |   115 +
 .../bundlejs/vue/syntax/hello-world-3.js        |   131 +
 .../bundlejs/vue/syntax/hello-world-4.js        |   171 +
 .../bundlejs/vue/syntax/hello-world-5.js        |   177 +
 .../bundlejs/vue/syntax/hello-world.js          |   187 +
 .../bundlejs/vue/syntax/script-component.js     |   236 +
 .../bundlejs/vue/syntax/script-data.js          |   218 +
 .../bundlejs/vue/syntax/script-events.js        |   165 +
 .../bundlejs/vue/syntax/script-instance.js      |   200 +
 .../bundlejs/vue/syntax/script-lifecycle.js     |   159 +
 .../bundlejs/vue/syntax/script-module.js        |   160 +
 .../bundlejs/vue/syntax/script-options.js       |   186 +
 .../bundlejs/vue/syntax/template-class.js       |   165 +
 .../bundlejs/vue/syntax/template-content.js     |   196 +
 .../bundlejs/vue/syntax/template-event.js       |   201 +
 .../bundlejs/vue/syntax/template-if.js          |   169 +
 .../vue/syntax/template-repeat-update.js        |   199 +
 .../bundlejs/vue/syntax/template-repeat.js      |   174 +
 .../bundlejs/vue/syntax/template-style.js       |   147 +
 ios/playground/bundlejs/vue/template.js         |   815 +
 ios/sdk/WeexSDK.podspec                         |     2 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |   145 +-
 .../xcshareddata/xcschemes/WeexSDK.xcscheme     |     2 +-
 .../xcschemes/WeexSDKTests.xcscheme             |     4 +-
 ios/sdk/WeexSDK/Resources/main.js               |    14 +-
 .../WeexSDK/Sources/Bridge/WXBridgeContext.h    |     5 +
 .../WeexSDK/Sources/Bridge/WXBridgeContext.m    |    11 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.h |     2 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.m |    42 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m |    26 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXModuleMethod.m |    34 +-
 .../Component/Recycler/WXMultiColumnLayout.h    |    44 +
 .../Component/Recycler/WXMultiColumnLayout.m    |   392 +
 .../Component/Recycler/WXRecyclerComponent.h    |    12 +
 .../Component/Recycler/WXRecyclerComponent.m    |   648 +
 .../Recycler/WXRecyclerDataController.h         |    38 +
 .../Recycler/WXRecyclerDataController.m         |   132 +
 .../Recycler/WXRecyclerUpdateController.h       |    32 +
 .../Recycler/WXRecyclerUpdateController.m       |   250 +
 .../Recycler/WXSectionDataController.h          |    33 +
 .../Recycler/WXSectionDataController.m          |    81 +
 .../WeexSDK/Sources/Component/WXCellComponent.h |    24 +-
 .../WeexSDK/Sources/Component/WXCellComponent.m |    37 +-
 .../Component/WXComponent+GradientColor.h       |    15 +-
 .../Component/WXComponent+GradientColor.m       |    18 +-
 .../Sources/Component/WXComponent_internal.h    |     7 +-
 .../WeexSDK/Sources/Component/WXEditComponent.h |    21 +
 .../WeexSDK/Sources/Component/WXEditComponent.m |   780 +
 .../Sources/Component/WXFooterComponent.h       |    13 +
 .../Sources/Component/WXFooterComponent.m       |    13 +
 .../Sources/Component/WXHeaderComponent.h       |    28 +
 .../Sources/Component/WXHeaderComponent.m       |    76 +
 .../Sources/Component/WXImageComponent.m        |     3 +-
 .../WeexSDK/Sources/Component/WXListComponent.h |    12 -
 .../WeexSDK/Sources/Component/WXListComponent.m |   374 +-
 .../Sources/Component/WXLoadingComponent.m      |    17 +-
 .../Sources/Component/WXLoadingIndicator.h      |     1 -
 .../Sources/Component/WXLoadingIndicator.m      |    81 +-
 .../Sources/Component/WXRefreshComponent.h      |     6 +
 .../Sources/Component/WXRefreshComponent.m      |    40 +-
 .../Sources/Component/WXScrollerComponent.m     |    92 +-
 .../Sources/Component/WXSliderComponent.m       |    74 +-
 .../Component/WXSliderNeighborComponent.m       |     3 +-
 .../Sources/Component/WXTextAreaComponent.h     |     5 +-
 .../Sources/Component/WXTextAreaComponent.m     |   557 +-
 .../WeexSDK/Sources/Component/WXTextComponent.m |    57 +-
 .../Sources/Component/WXTextInputComponent.h    |     8 +-
 .../Sources/Component/WXTextInputComponent.m    |   557 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h |    15 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m |   310 +-
 .../Sources/Component/WXVideoComponent.m        |     2 +-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |     2 +-
 .../Sources/Controller/WXBaseViewController.h   |     2 +-
 .../Sources/Controller/WXRootViewController.h   |     2 +-
 ios/sdk/WeexSDK/Sources/Debug/WXDebugTool.h     |     8 +
 ios/sdk/WeexSDK/Sources/Debug/WXDebugTool.m     |    52 +-
 .../Sources/Display/WXComponent+BoxShadow.h     |    34 +
 .../Sources/Display/WXComponent+BoxShadow.m     |    91 +
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.h  |    19 +
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.m  |    87 +
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h    |     9 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m    |    37 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKError.h     |     2 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.m |    12 +-
 .../Sources/Handler/WXNavigationDefaultImpl.m   |     6 +-
 ios/sdk/WeexSDK/Sources/Layout/Layout.c         |     3 +
 .../WeexSDK/Sources/Layout/WXComponent+Layout.m |    19 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.h   |    23 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.m   |    13 +
 .../Sources/Manager/WXComponentManager.h        |     4 +-
 .../Sources/Manager/WXComponentManager.m        |    27 +-
 .../Sources/Manager/WXInvocationConfig.h        |     1 -
 .../Sources/Manager/WXInvocationConfig.m        |    12 -
 ios/sdk/WeexSDK/Sources/Manager/WXRuleManager.m |    12 +-
 .../WeexSDK/Sources/Manager/WXServiceFactory.m  |     2 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h     |     6 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |    13 +-
 .../WeexSDK/Sources/Model/WXJSExceptionInfo.h   |    60 +
 .../WeexSDK/Sources/Model/WXJSExceptionInfo.m   |    39 +
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h   |    25 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |    22 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |   310 +-
 .../WeexSDK/Sources/Module/WXClipboardModule.m  |     4 +-
 ios/sdk/WeexSDK/Sources/Module/WXDomModule.m    |    53 +-
 .../Sources/Module/WXGlobalEventModule.m        |     8 +-
 ios/sdk/WeexSDK/Sources/Module/WXMetaModule.m   |     4 +-
 .../WeexSDK/Sources/Module/WXModalUIModule.m    |     4 +-
 .../WeexSDK/Sources/Module/WXNavigatorModule.m  |    27 +-
 ios/sdk/WeexSDK/Sources/Module/WXPickerModule.m |    34 +-
 .../WeexSDK/Sources/Module/WXStorageModule.m    |    72 +-
 ios/sdk/WeexSDK/Sources/Module/WXStreamModule.m |   245 +-
 .../WeexSDK/Sources/Module/WXWebSocketModule.m  |     8 +-
 .../WXResourceRequestHandlerDefaultImpl.m       |     7 +-
 .../Sources/Protocol/WXImgLoaderProtocol.h      |     2 +-
 .../Sources/Protocol/WXJSExceptionProtocol.h    |    21 +
 .../Sources/Protocol/WXNavigationProtocol.h     |     8 +-
 .../Sources/Protocol/WXScrollerProtocol.h       |     2 +-
 .../Sources/Protocol/WXValidateProtocol.h       |    39 +
 ios/sdk/WeexSDK/Sources/Utility/WXAssert.h      |     3 +
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.h   |    31 +
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |   142 +
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.h     |     8 +-
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.m     |   125 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDefine.h      |     3 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h    |    38 +
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m    |   186 +
 ios/sdk/WeexSDK/Sources/Utility/WXLength.h      |    40 +
 ios/sdk/WeexSDK/Sources/Utility/WXLength.m      |    92 +
 .../Utility/WXSimulatorShortcutManager.m        |    12 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h     |    63 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.m     |   171 +-
 .../Sources/View/WXComponent+ViewManagement.m   |    35 +-
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |     7 +
 ios/sdk/WeexSDK/dependency/SRWebSocket.m        |     4 +-
 ios/sdk/WeexSDKTests/WXComponentTests.m         |     2 +-
 ios/sdk/WeexSDKTests/WXFloatCompareTests.m      |    82 +
 ios/sdk/WeexSDKTests/WXRootViewTests.m          |    35 +-
 ios/sdk/WeexSDKTests/WXStorageTests.m           |    25 +-
 ios/sdk/WeexSDKTests/WXStreamModuleTests.m      |    30 -
 package.json                                    |    11 +-
 test/README.md                                  |     3 +-
 test/ci-funcs.sh                                |   117 +
 test/mocha.opts                                 |     2 +
 test/pages/components/input.we                  |     0
 test/pages/components/recycler.vue              |   480 +
 test/pages/components/scroller-fixed.we         |    62 +
 test/pages/dom-operation.we                     |    32 +
 test/pages/image-onload.we                      |    19 +
 test/pages/list-scroll.we                       |    31 +
 test/pages/scroller-scroll.we                   |    31 +
 test/run.sh                                     |    47 +-
 test/scripts/components/image-onload.test.js    |    39 +
 test/scripts/components/recycler.test.js        |   412 +
 test/scripts/components/scroll-event.test.js    |    82 +
 test/scripts/components/scroller-fixed.test.js  |    39 +
 test/scripts/dom.test.js                        |    67 +
 test/scripts/index.test.js                      |    50 +-
 test/scripts/test.js                            |     1 -
 test/scripts/util.js                            |    81 +
 test/scripts/weex-node-map.js                   |    17 -
 test/scripts/weex.js                            |   129 -
 765 files changed, 96957 insertions(+), 29446 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3501be13/examples/vue/components/list.vue
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3501be13/package.json
----------------------------------------------------------------------
diff --cc package.json
index a51589c,7b171d1..9d9ed34
--- a/package.json
+++ b/package.json
@@@ -3,8 -3,7 +3,8 @@@
    "version": "0.4.0",
    "subversion": {
      "browser": "0.5.0",
 +    "vue-render": "0.11.2",
-     "framework": "0.19.6",
+     "framework": "0.19.16",
      "transformer": ">=0.1.5 <0.5"
    },
    "description": "A framework for building Mobile cross-platform UI",



[07/50] [abbrv] incubator-weex git commit: + [example] update index, list add box shadow demo

Posted by so...@apache.org.
+ [example] update index, list add box shadow demo


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

Branch: refs/heads/dev
Commit: 109162bf390dd6f104b12518520a959e092ddc0b
Parents: 5721b58
Author: kfeagle <su...@163.com>
Authored: Tue Mar 28 11:36:03 2017 +0800
Committer: kfeagle <su...@163.com>
Committed: Tue Mar 28 11:36:03 2017 +0800

----------------------------------------------------------------------
 examples/component/input-demo.we      | 253 ++++++++++++++++++-----------
 examples/include/example-list-item.we |  30 +++-
 examples/index.we                     |   4 +-
 examples/showcase/boxshadow.we        |  46 ++++++
 4 files changed, 234 insertions(+), 99 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/109162bf/examples/component/input-demo.we
----------------------------------------------------------------------
diff --git a/examples/component/input-demo.we b/examples/component/input-demo.we
index 7056218..950805a 100644
--- a/examples/component/input-demo.we
+++ b/examples/component/input-demo.we
@@ -3,127 +3,180 @@
         <div>
             <text style="font-size: 40px">oninput: {{txtInput}}</text>
             <text style="font-size: 40px">onchange: {{txtChange}}</text>
+            <text style="font-size: 40px">onreturntype: {{txtReturnType}}</text>
+            <text style="font-size: 40px">onrange: {{txtRange}}</text>
         </div>
         <scroller>
-            <wxc-panel title="input type = text" type="primary">
-                <input
-                        type="text"
-                        placeholder="Input Text"
-                        class="input"
-                        autofocus="{{autofocus}}"
-                        value=""
-                        onchange="onchange"
-                        oninput="oninput"
-                />
-            </wxc-panel>
-
-            <wxc-panel title="input type = password" type="primary">
-                <input
-                        type="password"
-                        placeholder="Input Password"
-                        class="input"
-                        onchange="onchange"
-                        oninput="oninput"
-                />
-            </wxc-panel>
-
-            <wxc-panel title="input type = url" type="primary">
-                <input
-                        type="url"
-                        placeholder="Input URL"
-                        class="input"
-                        onchange="onchange"
-                        oninput="oninput"
-                />
-            </wxc-panel>
-
-            <wxc-panel title="input type = email" type="primary">
-                <input
-                        type="email"
-                        placeholder="Input Email"
-                        class="input"
-                        onchange="onchange"
-                        oninput="oninput"
-                />
-            </wxc-panel>
-
-            <wxc-panel title="input type = tel" type="primary">
-                <input
-                        type="tel"
-                        placeholder="Input Tel"
-                        class="input"
-                        onchange="onchange"
-                        oninput="oninput"
-                />
-            </wxc-panel>
-
-            <wxc-panel title="input type = time" type="primary">
-                <input
-                        type="time"
-                        placeholder="Input Time"
-                        class="input"
-                        onchange="onchange"
-                        oninput="oninput"
-                />
-            </wxc-panel>
-
-            <wxc-panel title="input type = date" type="primary">
-                <input
-                        type="date"
-                        placeholder="Input Date"
-                        class="input"
-                        onchange="onchange"
-                        oninput="oninput"
-                        max="2017-12-12"
-                        min="2015-01-01"
-                />
-            </wxc-panel>
-
-            <wxc-panel title="function focus() & blur()" type="primary">
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input type = text</text>
+                </div>
+                <input type="text" placeholder="Input Text" class="input" :autofocus="autofocus" value="" onchange="onchange" oninput="oninput"/>
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input type = password</text>
+                </div>
+                <input type="password" placeholder="Input Password" class="input" onchange="onchange" oninput="oninput"/>
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input type = url</text>
+                </div>
+                <input type="url" placeholder="Input URL" class="input" onchange="onchange" oninput="oninput"/>
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input type = email</text>
+                </div>
+                <input type="email" placeholder="Input Email" class="input" onchange="onchange" oninput="oninput"/>
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input type = tel</text>
+                </div>
+                <input type="tel" placeholder="Input Tel" class="input" onchange="onchange" oninput="oninput"/>
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input type = time</text>
+                </div>
+                <input type="time" placeholder="Input Time" class="input" onchange="onchange" oninput="oninput"/>
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input type = date</text>
+                </div>
+                <input type="date" placeholder="Input Date" class="input" onchange="onchange" oninput="oninput" max="2017-12-12" min="2015-01-01"/>
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input keyboard = default</text>
+                </div>
+                <input type="text" placeholder="please input" return-key-type="default" class="input" onchange="onchange" onreturn = "onreturn" oninput="oninput" />
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input keyboard = go</text>
+                </div>
+                <input type="text" placeholder="please input" return-key-type="go" class="input" onchange="onchange" onreturn = "onreturn" oninput="oninput" />
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input keyboard = next</text>
+                </div>
+                <input type="text" placeholder="please input" return-key-type="next" class="input" onchange="onchange" onreturn = "onreturn" oninput="oninput" />
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input keyboard = search</text>
+                </div>
+                <input type="text" placeholder="please input" return-key-type="search" class="input" onchange="onchange" onreturn = "onreturn" oninput="oninput" />
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input keyboard = send</text>
+                </div>
+                <input type="text" placeholder="please input" return-key-type="send" class="input" onchange="onchange" onreturn = "onreturn" oninput="oninput" />
+            </div>
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input keyboard = done</text>
+                </div>
+                <input type="text" placeholder="please input" return-key-type="done" class="input" onchange="onchange" onreturn = "onreturn" oninput="oninput" />
+            </div>
+
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">function focus() & blur()</text>
+                </div>
                 <div style="flex-direction: row;margin-bottom: 16px;justify-content: space-between">
-                    <wxc-button value="Focus" type="primary" onclick="{{focus}}"></wxc-button>
-                    <wxc-button value="Blur" type="primary" onclick="{{blur}}"></wxc-button>
-                </div>
-
-                <input
-                        type="text"
-                        placeholder="Input1"
-                        class="input"
-                        value=""
-                        id="input1"
-                />
-            </wxc-panel>
+                    <text class="button" value="Focus" type="primary" onclick="focus"></text>
+                    <text class="button" value="Blur" type="primary" onclick="blur"></text>
+                </div>
+
+                <input type="text" placeholder="Input1" class="input" value="" id="input1"/>
+            </div>
+
+
+            <div>
+                <div style="background-color: #286090">
+                    <text class="title" style="height: 80 ;padding: 20;color: #FFFFFF">input selection</text>
+                </div>
+                <div style="flex-direction: row;margin-bottom: 16px;justify-content: space-between">
+                    <text class="button" value="setRange" type="primary" onclick="setRange"></text>
+                    <text class="button" value="getRange" type="primary" onclick="getRange"></text>
+                </div>
+                <input type="text"  id="inputselection" placeholder="please input" value="123456789"  class="input" onchange="onchange" onreturn = "onreturn" oninput="oninput"/>
+            </div>
+
+
+
         </scroller>
     </div>
 </template>
 
-<style>
+<style scoped>
     .input {
         font-size: 60px;
         height: 80px;
         width: 750px;
     }
+    .button {
+        font-size: 36;
+        width: 200;
+        color: #41B883;
+        text-align: center;
+        padding-top: 10;
+        padding-bottom: 10;
+        border-width: 2;
+        border-style: solid;
+        margin-right: 20;
+        border-color: rgb(162, 217, 192);
+        background-color: rgba(162, 217, 192, 0.2);
+    }
 </style>
 
 <script>
-    require('weex-components');
     module.exports = {
-        data: {
-            txtInput: '',
-            txtChange: '',
-            autofocus: false,
+        data: function () {
+            return {
+                txtInput: '',
+                txtChange: '',
+                txtReturnType: '',
+                txtSelection:'',
+                autofocus: false,
+                txtRange:''
+            };
         },
         methods: {
-            ready : function () {
+            ready: function () {
                 var self = this;
                 setTimeout(function () {
                     self.autofocus = true;
-                },1000);
+                }, 1000);
             },
             onchange: function (event) {
                 this.txtChange = event.value;
                 console.log('onchange', event.value);
             },
+            onreturn: function (event) {
+                this.txtReturnType = event.returnKeyType;
+                console.log('onreturn', event.type);
+            },
             oninput: function (event) {
                 this.txtInput = event.value;
                 console.log('oninput', event.value);
@@ -133,6 +186,16 @@
             },
             blur: function () {
                 this.$el('input1').blur();
+            },
+            setRange: function() {
+                console.log(this.$el["inputselection"]);
+                this.$el("inputselection").setSelectionRange(2, 6);
+            },
+            getRange: function() {
+                var self = this;
+                this.$el("inputselection").getSelectionRange(function(e) {
+                    self.txtRange =  e.selectionStart + '-'+e.selectionEnd;
+                });
             }
         }
     };

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/109162bf/examples/include/example-list-item.we
----------------------------------------------------------------------
diff --git a/examples/include/example-list-item.we b/examples/include/example-list-item.we
index 2bd0a72..3b1f6e2 100644
--- a/examples/include/example-list-item.we
+++ b/examples/include/example-list-item.we
@@ -1,7 +1,7 @@
 <template>
-  <wxc-list-item onclick="{{redirect}}">
+    <div class="item" style="background-color:{{bgColor}};" onclick="{{redirect}}">
     <text class="item-txt">{{ title }}</text>
-  </wxc-list-item>
+    </div>
 </template>
 
 <style>
@@ -9,6 +9,29 @@
     font-size: 48px;
     color: #555;
   }
+  .item {
+    padding-top: 25px;
+    padding-bottom: 25px;
+    padding-left: 35px;
+    padding-right: 35px;
+    height: 160px;
+    justify-content: center;
+    /*margin-bottom: 1px; FUTURE */
+    border-bottom-width: 1px;
+    border-color: #dddddd;
+  }
+  .item:active {
+      padding-top: 25px;
+      padding-bottom: 25px;
+      padding-left: 35px;
+      padding-right: 35px;
+      height: 160px;
+      justify-content: center;
+      /*margin-bottom: 1px; FUTURE */
+      background-color: #00BDFF;
+      border-bottom-width: 1px;
+      border-color: #dddddd;
+  }
 </style>
 
 <script>
@@ -16,7 +39,8 @@
   module.exports = {
     data: {
       title: '',
-      url: ''
+      url: '',
+      bgColor: '#ffffff'
     },
     methods: {
       redirect: function() {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/109162bf/examples/index.we
----------------------------------------------------------------------
diff --git a/examples/index.we b/examples/index.we
index 54feddc..e0b1a9f 100644
--- a/examples/index.we
+++ b/examples/index.we
@@ -27,6 +27,7 @@
         {name: 'component/list/list-demo', title: 'List (Advanced)'},
         {name: 'component/slider/index', title: 'Slider'},
         {name: 'component/slider-neighbor/index', title: 'Slider Neighbor'},
+        {name: 'component/slider-tab', title: 'Slider Tab'},
         {name: 'component/a-demo', title: 'A'},
         {name: 'component/video-demo', title: 'Video'},
         {name: 'component/countdown-demo', title: 'Countdown'},
@@ -52,7 +53,8 @@
         {name: 'showcase/minesweeper', title: 'Minesweeper'},
         {name: 'showcase/ui', title: 'UI Gallery'},
         {name: 'showcase/dropdown/dropdown-demo', title: 'Dropdown'},
-        {name: 'showcase/pseudo-class', title: 'PseudoClass'}
+        {name: 'showcase/pseudo-class', title: 'PseudoClass'},
+        {name: 'showcase/boxshadow', title: 'boxshadow'}
       ]
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/109162bf/examples/showcase/boxshadow.we
----------------------------------------------------------------------
diff --git a/examples/showcase/boxshadow.we b/examples/showcase/boxshadow.we
new file mode 100644
index 0000000..16e86cc
--- /dev/null
+++ b/examples/showcase/boxshadow.we
@@ -0,0 +1,46 @@
+
+<template>
+    <div class="wrapper" onclick="update">
+        <div style=" height:60px;background-color: #FFE4C4; box-shadow:{{bs}};width:{{w}};">
+            <text class="title" style="text-align: center">Hello {{target}}</text>
+        </div>
+        <div style="margin-top: 80px;width:400px; height:60px;background-color: #FFE4C4; box-shadow: 20px  10px 5px rgba(255, 69, 0, 0.8);">
+            <text class="title" style="text-align: center">Hello {{target}}</text>
+        </div>
+        <div style="margin-top: 80px;width:400px; height:60px;background-color: #FFE4C4; box-shadow:inset 20px  10px 5px rgba(255, 69, 0, 0.8);">
+            <text class="title" style="text-align: center">Hello {{target}}</text>
+        </div>
+        <div style="margin-top: 80px;width:400px; height:60px;background-color: #FFE4C4; box-shadow:inset 20px  10px 5px rgb(255, 69, 0);">
+            <text class="title" style="text-align: center">Hello {{target}}</text>
+        </div>
+        <div style="margin-top: 80px;width:400px; height:60px;background-color: #FFE4C4; box-shadow:20px  10px 5px black;">
+            <text class="title" style="text-align: center">Hello {{target}}</text>
+        </div>
+        <div style="margin-top: 80px;width:400px; height:60px;background-color: #FFE4C4; box-shadow:20px  10px 5px #008B00;">
+            <text class="title" style="text-align: center">Hello {{target}}</text>
+        </div>
+    </div>
+</template>
+
+<style>
+    .wrapper {align-items: center; margin-top: 120px;}
+    .title {font-size: 48px;}
+</style>
+
+<script>
+    module.exports = {
+        data: {
+            logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png',
+            target: 'World',
+            w:'400',
+            bs:'20px  10px  5px rgb(255, 69, 0)'
+        },
+        methods: {
+            update: function (e) {
+                this.target = 'Weex';
+                this.w = 600;
+                this.bs='inset 20px  10px 5px rgba(0, 0, 0, 0.5)';
+            }
+        }
+    }
+</script>


[23/50] [abbrv] incubator-weex git commit: * [ios] fix issue that scrollable components can not scroll to top if frame.size < contentSize

Posted by so...@apache.org.
* [ios] fix issue that scrollable components can not scroll to top if frame.size < contentSize


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

Branch: refs/heads/dev
Commit: c2f0b6552530370effb6637db955616e0aad95e4
Parents: cae9aa8
Author: \u9690\u98ce <cx...@apache.org>
Authored: Wed Mar 29 19:31:36 2017 +0800
Committer: \u9690\u98ce <cx...@apache.org>
Committed: Wed Mar 29 19:31:36 2017 +0800

----------------------------------------------------------------------
 .../Component/Recycler/WXRecyclerComponent.m        | 16 ++++++++--------
 ios/sdk/WeexSDK/Sources/Component/WXListComponent.m |  7 +------
 .../WeexSDK/Sources/Component/WXScrollerComponent.m | 10 ++--------
 3 files changed, 11 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c2f0b655/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
index b5b5ac8..842fa1f 100644
--- a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
@@ -45,6 +45,11 @@ typedef enum : NSUInteger {
     [self.wx_component layoutDidFinish];
 }
 
+- (void)setContentOffset:(CGPoint)contentOffset
+{
+    [super setContentOffset:contentOffset];
+}
+
 @end
 
 @interface WXCollectionViewCell : UICollectionViewCell
@@ -211,24 +216,19 @@ typedef enum : NSUInteger {
 
 - (void)scrollToComponent:(WXComponent *)component withOffset:(CGFloat)offset animated:(BOOL)animated
 {
-    if (_collectionView.contentSize.height <= _collectionView.frame.size.height) {
-        // can not scroll
-        return;
-    }
-    
     CGPoint contentOffset = _collectionView.contentOffset;
     CGFloat contentOffsetY = 0;
     
     CGRect rect;
     while (component) {
         if ([component isKindOfClass:[WXCellComponent class]]) {
-            NSIndexPath *toIndexPath = [self.dataController indexPathForCell:component];
+            NSIndexPath *toIndexPath = [self.dataController indexPathForCell:(WXCellComponent *)component];
             UICollectionViewLayoutAttributes *attributes = [_collectionView layoutAttributesForItemAtIndexPath:toIndexPath];
             rect = attributes.frame;
             break;
         }
         if ([component isKindOfClass:[WXHeaderComponent class]]) {
-            NSUInteger toIndex = [self.dataController indexForHeader:component];
+            NSUInteger toIndex = [self.dataController indexForHeader:(WXHeaderComponent *)component];
             UICollectionViewLayoutAttributes *attributes = [_collectionView layoutAttributesForSupplementaryElementOfKind:kCollectionSupplementaryViewKindHeader atIndexPath:[NSIndexPath indexPathWithIndex:toIndex]];
             rect = attributes.frame;
             break;
@@ -240,7 +240,7 @@ typedef enum : NSUInteger {
     contentOffsetY += rect.origin.y;
     contentOffsetY += offset * self.weexInstance.pixelScaleFactor;
     
-    if (contentOffsetY > _collectionView.contentSize.height - _collectionView.frame.size.height) {
+    if (_collectionView.contentSize.height >= _collectionView.frame.size.height && contentOffsetY > _collectionView.contentSize.height - _collectionView.frame.size.height) {
         contentOffset.y = _collectionView.contentSize.height - _collectionView.frame.size.height;
     } else {
         contentOffset.y = contentOffsetY;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c2f0b655/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m
index bc31995..c598a3d 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m
@@ -173,11 +173,6 @@
 
 - (void)scrollToComponent:(WXComponent *)component withOffset:(CGFloat)offset animated:(BOOL)animated
 {
-    if (_tableView.contentSize.height <= _tableView.frame.size.height) {
-        // can not scroll
-        return;
-    }
-    
     CGPoint contentOffset = _tableView.contentOffset;
     CGFloat contentOffsetY = 0;
     
@@ -201,7 +196,7 @@
     contentOffsetY += cellRect.origin.y;
     contentOffsetY += offset * self.weexInstance.pixelScaleFactor;
     
-    if (contentOffsetY > _tableView.contentSize.height - _tableView.frame.size.height) {
+    if (_tableView.contentSize.height >= _tableView.frame.size.height && contentOffsetY > _tableView.contentSize.height - _tableView.frame.size.height) {
         contentOffset.y = _tableView.contentSize.height - _tableView.frame.size.height;
     } else {
         contentOffset.y = contentOffsetY;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c2f0b655/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
index 50dc059..eb7c15d 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXScrollerComponent.m
@@ -318,12 +318,6 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
 - (void)scrollToComponent:(WXComponent *)component withOffset:(CGFloat)offset animated:(BOOL)animated
 {
     UIScrollView *scrollView = (UIScrollView *)self.view;
-    
-    if ((_scrollDirection == WXScrollDirectionHorizontal && scrollView.contentSize.width <= scrollView.frame.size.width)
-        || (_scrollDirection == WXScrollDirectionVertical && scrollView.contentSize.height <= scrollView.frame.size.height)) {
-        // can not scroll
-        return;
-    }
 
     CGPoint contentOffset = scrollView.contentOffset;
     CGFloat scaleFactor = self.weexInstance.pixelScaleFactor;
@@ -332,7 +326,7 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
         CGFloat contentOffetX = [component.supercomponent.view convertPoint:component.view.frame.origin toView:self.view].x;
         contentOffetX += offset * scaleFactor;
         
-        if (contentOffetX > scrollView.contentSize.width - scrollView.frame.size.width) {
+        if (scrollView.contentSize.width >= scrollView.frame.size.width && contentOffetX > scrollView.contentSize.width - scrollView.frame.size.width) {
             contentOffset.x = scrollView.contentSize.width - scrollView.frame.size.width;
         } else {
             contentOffset.x = contentOffetX;
@@ -341,7 +335,7 @@ WX_EXPORT_METHOD(@selector(resetLoadmore))
         CGFloat contentOffetY = [component.supercomponent.view convertPoint:component.view.frame.origin toView:self.view].y;
         contentOffetY += offset * scaleFactor;
         
-        if (contentOffetY > scrollView.contentSize.height - scrollView.frame.size.height) {
+        if (scrollView.contentSize.height >= scrollView.frame.size.height && contentOffetY > scrollView.contentSize.height - scrollView.frame.size.height) {
             contentOffset.y = scrollView.contentSize.height - scrollView.frame.size.height;
         } else {
             contentOffset.y = contentOffetY;


[04/50] [abbrv] incubator-weex git commit: Merge branch '0.11-dev' into example-feature-scroll

Posted by so...@apache.org.
Merge branch '0.11-dev' into example-feature-scroll

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

Branch: refs/heads/dev
Commit: a396e7c6bee7714e5c9eb4493640c6297f30bd2e
Parents: ece44ec 5721b58
Author: moxun <fu...@foxmail.com>
Authored: Tue Mar 28 09:59:50 2017 +0800
Committer: GitHub <no...@github.com>
Committed: Tue Mar 28 09:59:50 2017 +0800

----------------------------------------------------------------------
 .../app/src/main/assets/component/image-demo.js |    2 +-
 .../assets/component/slider-neighbor/index.js   |  264 ++
 .../slider-neighbor/silder-neighbor.js          |  287 --
 .../src/main/assets/component/slider/index.js   |   33 +
 .../app/src/main/assets/component/text-demo.js  |  108 +
 .../app/src/main/assets/component/web-demo.js   |    1 -
 android/playground/app/src/main/assets/error.js | 2217 ++++++++++++
 .../app/src/main/assets/geolocation.js          |  183 +
 .../app/src/main/assets/hello_weex.js           |   28 -
 android/playground/app/src/main/assets/index.js |    2 +-
 .../app/src/main/assets/linear-gradient.js      |  367 ++
 .../app/src/main/assets/module/clipboard.js     |   27 +-
 .../app/src/main/assets/module/componentRect.js |  107 +-
 .../app/src/main/assets/module/instance-api.js  |   14 +-
 .../app/src/main/assets/module/modal.js         |   18 +-
 .../app/src/main/assets/module/picker-demo.js   |   18 +-
 .../app/src/main/assets/module/storage-demo.js  |   14 +-
 .../app/src/main/assets/module/stream-demo.js   |   18 +-
 .../src/main/assets/module/websocket-demo.js    | 2412 +++++++++++++
 .../app/src/main/assets/showcase/calculator.js  |   21 +-
 .../assets/showcase/dropdown/dropdown-demo.js   |   30 +-
 .../assets/showcase/dropdown/we-dropdown.js     |   12 +-
 .../app/src/main/assets/showcase/minesweeper.js |   12 +-
 .../main/assets/showcase/new-fashion/banner.js  |    8 +-
 .../main/assets/showcase/new-fashion/banners.js |   20 +-
 .../main/assets/showcase/new-fashion/brand.js   |   36 +-
 .../assets/showcase/new-fashion/category.js     |   24 +-
 .../main/assets/showcase/new-fashion/coupon.js  |   12 +-
 .../main/assets/showcase/new-fashion/fashion.js |   38 +-
 .../main/assets/showcase/new-fashion/goods.js   |   24 +-
 .../assets/showcase/new-fashion/headlines.js    |   48 +-
 .../main/assets/showcase/new-fashion/index.js   |   21 +-
 .../main/assets/showcase/new-fashion/link.js    |    8 +-
 .../main/assets/showcase/new-fashion/main.js    |  209 +-
 .../main/assets/showcase/new-fashion/match.js   |   24 +-
 .../assets/showcase/new-fashion/resource.js     |   38 +-
 .../main/assets/showcase/new-fashion/scene.js   |   24 +-
 .../src/main/assets/showcase/pseudo-class.js    | 2425 +++++++++++++
 .../app/src/main/assets/showcase/ui.js          |   24 +-
 .../app/src/main/assets/style/index.js          |   76 +-
 .../app/src/main/assets/style/style-box.js      |   40 +-
 .../app/src/main/assets/style/style-flex.js     |   48 +-
 .../app/src/main/assets/style/style-item.js     |   12 +-
 .../app/src/main/assets/syntax/hello-world-1.js |    4 +-
 .../app/src/main/assets/syntax/hello-world-2.js |    6 +-
 .../app/src/main/assets/syntax/hello-world-3.js |   10 +-
 .../app/src/main/assets/syntax/hello-world-4.js |   14 +-
 .../app/src/main/assets/syntax/hello-world-5.js |   14 +-
 .../app/src/main/assets/syntax/hello-world.js   |   14 +-
 .../app/src/main/assets/syntax/index.js         |   20 +-
 .../src/main/assets/syntax/script-component.js  |   24 +-
 .../app/src/main/assets/syntax/script-data.js   |   12 +-
 .../app/src/main/assets/syntax/script-events.js |   12 +-
 .../src/main/assets/syntax/script-instance.js   |   12 +-
 .../src/main/assets/syntax/script-lifecycle.js  |   12 +-
 .../app/src/main/assets/syntax/script-module.js |   12 +-
 .../src/main/assets/syntax/script-options.js    |   12 +-
 .../src/main/assets/syntax/template-class.js    |   12 +-
 .../src/main/assets/syntax/template-content.js  |   20 +-
 .../src/main/assets/syntax/template-event.js    |   12 +-
 .../app/src/main/assets/syntax/template-if.js   |   12 +-
 .../assets/syntax/template-repeat-update.js     |   12 +-
 .../src/main/assets/syntax/template-repeat.js   |   12 +-
 .../src/main/assets/syntax/template-style.js    |    8 +-
 .../playground/app/src/main/assets/template.js  |   12 +-
 android/playground/app/src/main/assets/test.js  |  128 +
 .../app/src/main/assets/vue/animation.js        |  709 ++++
 .../app/src/main/assets/vue/components/a.js     |  438 +++
 .../src/main/assets/vue/components/countdown.js |  640 ++++
 .../app/src/main/assets/vue/components/image.js |  641 ++++
 .../app/src/main/assets/vue/components/input.js |  364 ++
 .../app/src/main/assets/vue/components/list.js  |  246 ++
 .../src/main/assets/vue/components/marquee.js   |  534 +++
 .../src/main/assets/vue/components/navigator.js | 1059 ++++++
 .../src/main/assets/vue/components/scroller.js  |  304 ++
 .../src/main/assets/vue/components/slider.js    |  898 +++++
 .../src/main/assets/vue/components/tabbar.js    |  599 ++++
 .../app/src/main/assets/vue/components/text.js  |  513 +++
 .../app/src/main/assets/vue/components/video.js |  396 +++
 .../app/src/main/assets/vue/components/web.js   |  459 +++
 .../playground/app/src/main/assets/vue/hello.js |   99 +
 .../app/src/main/assets/vue/iconfont.js         |  204 ++
 .../playground/app/src/main/assets/vue/index.js |  496 +++
 .../src/main/assets/vue/modules/clipboard.js    |  691 ++++
 .../src/main/assets/vue/modules/instance-api.js |  304 ++
 .../app/src/main/assets/vue/modules/modal.js    |  581 +++
 .../app/src/main/assets/vue/modules/storage.js  |  381 ++
 .../app/src/main/assets/vue/modules/stream.js   |  477 +++
 .../src/main/assets/vue/showcase/calculator.js  |  340 ++
 .../src/main/assets/vue/showcase/itemlist.js    | 1062 ++++++
 .../src/main/assets/vue/showcase/new-fashion.js | 3302 ++++++++++++++++++
 .../src/main/assets/vue/showcase/progress.js    |  336 ++
 .../app/src/main/assets/vue/style/index.js      | 1566 +++++++++
 .../app/src/main/assets/vue/style/style-box.js  |  780 +++++
 .../app/src/main/assets/vue/style/style-flex.js |  919 +++++
 .../app/src/main/assets/vue/style/style-item.js |  155 +
 .../src/main/assets/vue/syntax/hello-world-1.js |   95 +
 .../src/main/assets/vue/syntax/hello-world-2.js |  112 +
 .../src/main/assets/vue/syntax/hello-world-3.js |  127 +
 .../src/main/assets/vue/syntax/hello-world-4.js |  167 +
 .../src/main/assets/vue/syntax/hello-world-5.js |  173 +
 .../src/main/assets/vue/syntax/hello-world.js   |  183 +
 .../main/assets/vue/syntax/script-component.js  |  224 ++
 .../src/main/assets/vue/syntax/script-data.js   |  214 ++
 .../src/main/assets/vue/syntax/script-events.js |  161 +
 .../main/assets/vue/syntax/script-instance.js   |  196 ++
 .../main/assets/vue/syntax/script-lifecycle.js  |  155 +
 .../src/main/assets/vue/syntax/script-module.js |  156 +
 .../main/assets/vue/syntax/script-options.js    |  182 +
 .../main/assets/vue/syntax/template-class.js    |  161 +
 .../main/assets/vue/syntax/template-content.js  |  189 +
 .../main/assets/vue/syntax/template-event.js    |  197 ++
 .../src/main/assets/vue/syntax/template-if.js   |  165 +
 .../assets/vue/syntax/template-repeat-update.js |  195 ++
 .../main/assets/vue/syntax/template-repeat.js   |  170 +
 .../main/assets/vue/syntax/template-style.js    |  144 +
 .../app/src/main/assets/vue/template.js         |  796 +++++
 .../playground/app/src/main/ic_launcher-web.png |  Bin 0 -> 19935 bytes
 .../java/com/alibaba/weex/WXApplication.java    |    5 +
 .../alibaba/weex/extend/component/WXMask.java   |  167 +
 .../extend/component/dom/WXMaskDomObject.java   |  231 ++
 .../alibaba/weex/extend/view/WXMaskView.java    |  220 ++
 .../src/main/res/mipmap-hdpi/ic_launcher.png    |  Bin 5248 -> 1755 bytes
 .../src/main/res/mipmap-mdpi/ic_launcher.png    |  Bin 4303 -> 1221 bytes
 .../src/main/res/mipmap-xhdpi/ic_launcher.png   |  Bin 6354 -> 2451 bytes
 .../src/main/res/mipmap-xxhdpi/ic_launcher.png  |  Bin 7930 -> 3939 bytes
 .../src/main/res/mipmap-xxxhdpi/ic_launcher.png |  Bin 10633 -> 5608 bytes
 .../taobao/weex/dom/WXRecyclerDomObject.java    |    4 +-
 build/webpack.macacatest.config.js              |    6 +-
 examples/component/image-demo.we                |    2 +-
 examples/component/list/list-basic.we           |    6 +-
 examples/module/chatroom-demo.we                |  227 ++
 examples/module/websocket-demo.we               |   50 +-
 examples/vue/components/input.vue               |  203 +-
 examples/vue/components/list.vue                |    3 +
 examples/vue/index.vue                          |    1 +
 examples/vue/showcase/boxshadow.vue             |   39 +
 .../bundlejs/vue/components/waterfall.js        |  873 +++++
 .../Component/Recycler/WXMultiColumnLayout.h    |    2 +
 .../Component/Recycler/WXMultiColumnLayout.m    |    5 +-
 .../Component/Recycler/WXRecyclerComponent.m    |   45 +-
 .../Recycler/WXRecyclerDataController.h         |    4 +
 .../Recycler/WXRecyclerDataController.m         |   18 +
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |   40 +-
 test/pages/components/recycler.vue              |  480 +++
 test/scripts/components/recycler.test.js        |  412 +++
 146 files changed, 35546 insertions(+), 912 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/a396e7c6/examples/component/list/list-basic.we
----------------------------------------------------------------------
diff --cc examples/component/list/list-basic.we
index 37f9c25,7efc5a0..e87d75c
--- a/examples/component/list/list-basic.we
+++ b/examples/component/list/list-basic.we
@@@ -27,14 -21,12 +27,14 @@@
  
  <style>
    .list {
- 
+     height:850;
    }
 +
    .count {
      font-size: 48;
 -    margin:10;
 +    margin: 10;
    }
 +
    .indicator {
      height: 40;
      width: 40;
@@@ -55,12 -47,13 +55,16 @@@
      border-bottom-width: 2;
      border-bottom-color: #c0c0c0;
      height: 100;
 -    padding:20;
 +    padding: 20;
    }
 +
+   .item:active {
+     background-color: #00BFFF;
+   }
++
    .item-title {
    }
 +
    .refresh-view {
      width: 750;
      height: 100;


[43/50] [abbrv] incubator-weex git commit: * [html5] fix dangerfile.

Posted by so...@apache.org.
* [html5] fix dangerfile.


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

Branch: refs/heads/dev
Commit: 82ff96d989504b932f744e421bb59cec2e6955f4
Parents: 1375a6a
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Mar 31 15:13:15 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Mar 31 15:13:15 2017 +0800

----------------------------------------------------------------------
 dangerfile.js | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/82ff96d9/dangerfile.js
----------------------------------------------------------------------
diff --git a/dangerfile.js b/dangerfile.js
index 6d82fdb..b81e155 100644
--- a/dangerfile.js
+++ b/dangerfile.js
@@ -23,7 +23,9 @@ const flowIgnorePaths = [
   'bin',
   'dist',
   'flow-typed'
-].map(absolute);
+].map(function (rel) {
+  return absolute('html5/' + rel)
+});
 
 // new js files should have `@flow` at the top
 const unFlowedFiles = jsFiles.filter(filepath => {
@@ -31,7 +33,7 @@ const unFlowedFiles = jsFiles.filter(filepath => {
   const len = flowIgnorePaths.length
   while (i < len) {
     const p = flowIgnorePaths[i]
-    if (filepath.indexOf(p) > -1) {
+    if (absolute(filepath).indexOf(p) > -1) {
       // ignore this file because it's in the flow-ignore-paths.
       return false;
     }


[03/50] [abbrv] incubator-weex git commit: Merge branch 'ios-feature-example-0.11-dev' of https://github.com/kfeagle/incubator-weex into 0.11-dev

Posted by so...@apache.org.
Merge branch 'ios-feature-example-0.11-dev' of https://github.com/kfeagle/incubator-weex into 0.11-dev


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

Branch: refs/heads/dev
Commit: 5721b5842f575d4114047c83cc58634141508f5e
Parents: 0dc2daa cde2c0c
Author: bobning <ni...@163.com>
Authored: Tue Mar 28 09:55:41 2017 +0800
Committer: bobning <ni...@163.com>
Committed: Tue Mar 28 09:55:41 2017 +0800

----------------------------------------------------------------------
 examples/component/list/list-basic.we |   5 +-
 examples/module/chatroom-demo.we      | 227 +++++++++++++++++++++++++++++
 examples/module/websocket-demo.we     |  50 ++++++-
 examples/vue/components/input.vue     | 203 +++++++++++++++++++++-----
 examples/vue/components/list.vue      |   3 +
 examples/vue/index.vue                |   1 +
 examples/vue/showcase/boxshadow.vue   |  39 +++++
 7 files changed, 493 insertions(+), 35 deletions(-)
----------------------------------------------------------------------



[45/50] [abbrv] incubator-weex git commit: * [html5] update build & test config.

Posted by so...@apache.org.
* [html5] update build & test config.


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

Branch: refs/heads/dev
Commit: fed56d4bbf685c91e8321002d46b34fe367846c6
Parents: 9c97d35
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Mar 31 17:31:37 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Mar 31 17:31:37 2017 +0800

----------------------------------------------------------------------
 build/config.js         |  5 ++++-
 build/karma.vue.conf.js | 17 ++++++++++++-----
 2 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/fed56d4b/build/config.js
----------------------------------------------------------------------
diff --git a/build/config.js b/build/config.js
index ef15574..00c8d9b 100644
--- a/build/config.js
+++ b/build/config.js
@@ -6,7 +6,6 @@ const postcss = require('rollup-plugin-postcss')
 const nodeResolve = require('rollup-plugin-node-resolve')
 const uglify = require('rollup-plugin-uglify')
 const commonjs = require('rollup-plugin-commonjs')
-// const flow = require('rollup-plugin-flow')
 const flow = require('rollup-plugin-flow-no-whitespace')
 const buble = require('rollup-plugin-buble')
 const subversion = require('../package.json').subversion
@@ -108,6 +107,10 @@ function getConfig (name, minify) {
     config.plugins.push(uglify())
   }
   else {
+    /**
+     * rollup-plugin-flow will cause soucemap problem.
+     * use rollup-plugin-flow-no-whitespace can fixe this.
+     */
     config.sourceMap = 'inline'
     config.plugins.unshift(eslint({ exclude: ['**/*.json', '**/*.css'] }))
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/fed56d4b/build/karma.vue.conf.js
----------------------------------------------------------------------
diff --git a/build/karma.vue.conf.js b/build/karma.vue.conf.js
index 8844594..9a91a94 100644
--- a/build/karma.vue.conf.js
+++ b/build/karma.vue.conf.js
@@ -1,12 +1,13 @@
 var rollupConfig = require('./config')('weex-vue-render', true)
 var path = require('path')
+var flow = require('rollup-plugin-flow')
 
 function absolute (pa) {
   return path.resolve(__dirname, pa)
 }
 
 var removeConfigs = ['entry', 'dest', 'banner']
-var removePlugins = ['eslint', 'uglify']
+var removePlugins = ['eslint', 'uglify', 'flow-remove-type']
 
 removeConfigs.forEach(cfg => {
   delete rollupConfig[cfg]
@@ -29,6 +30,14 @@ for (var i = 0, l = plugins.length; i < l; i++) {
   if (!isRemove) { rollupConfig.plugins.push(plg) }
 }
 
+/**
+ * rollup-plugin-flow-no-whiitespace cause fatial error.
+ * use rollup-plugin-flow instead, since no soucemap needed, it's acceptable for extra whitespaces.
+ */
+rollupConfig.plugins.splice(-2, 1, flow())
+
+console.log('rollupConfig', rollupConfig)
+
 rollupConfig.format = 'iife'
 rollupConfig.sourceMap = 'inline'
 
@@ -38,13 +47,11 @@ module.exports = function (config) {
     browsers: ['PhantomJS'],
     files: [
       '../html5/test/render/vue/**/*.js'
-      // '../html5/test/render/vue/components/*.js'
     ],
 
     exclude: [
       '../html5/test/render/vue/helper.js',
       '../html5/test/render/vue/vender/**/*.js'
-      // '../html5/test/render/vue/examples/**/*.js'
     ],
 
     // singleRun: false,
@@ -59,8 +66,8 @@ module.exports = function (config) {
     },
 
     preprocessors: {
-      '../html5/test/**/*.js': ['rollup', 'coverage'],
-      // '../html5/test/**/!(components|examples)/*.js': ['rollup', 'coverage']
+      '../html5/test/**/*.js': ['rollup'],
+      '../html5/test/**/!(components|examples)/*.js': ['rollup', 'coverage']
     },
     rollupPreprocessor: rollupConfig,
 


[29/50] [abbrv] incubator-weex git commit: * [html5] add flow-type supported.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/cross-spawn_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/cross-spawn_vx.x.x.js b/flow-typed/npm/cross-spawn_vx.x.x.js
new file mode 100644
index 0000000..92ca2f1
--- /dev/null
+++ b/flow-typed/npm/cross-spawn_vx.x.x.js
@@ -0,0 +1,59 @@
+// flow-typed signature: 61abc04328de805c914647ba9f60e747
+// flow-typed version: <<STUB>>/cross-spawn_v^4.0.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'cross-spawn'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'cross-spawn' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'cross-spawn/lib/enoent' {
+  declare module.exports: any;
+}
+
+declare module 'cross-spawn/lib/hasBrokenSpawn' {
+  declare module.exports: any;
+}
+
+declare module 'cross-spawn/lib/parse' {
+  declare module.exports: any;
+}
+
+declare module 'cross-spawn/lib/resolveCommand' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'cross-spawn/index' {
+  declare module.exports: $Exports<'cross-spawn'>;
+}
+declare module 'cross-spawn/index.js' {
+  declare module.exports: $Exports<'cross-spawn'>;
+}
+declare module 'cross-spawn/lib/enoent.js' {
+  declare module.exports: $Exports<'cross-spawn/lib/enoent'>;
+}
+declare module 'cross-spawn/lib/hasBrokenSpawn.js' {
+  declare module.exports: $Exports<'cross-spawn/lib/hasBrokenSpawn'>;
+}
+declare module 'cross-spawn/lib/parse.js' {
+  declare module.exports: $Exports<'cross-spawn/lib/parse'>;
+}
+declare module 'cross-spawn/lib/resolveCommand.js' {
+  declare module.exports: $Exports<'cross-spawn/lib/resolveCommand'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/css-loader_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/css-loader_vx.x.x.js b/flow-typed/npm/css-loader_vx.x.x.js
new file mode 100644
index 0000000..8bb20bd
--- /dev/null
+++ b/flow-typed/npm/css-loader_vx.x.x.js
@@ -0,0 +1,87 @@
+// flow-typed signature: 3d15dceba7ae8991811d8fc44cdcd354
+// flow-typed version: <<STUB>>/css-loader_v^0.26.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'css-loader'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'css-loader' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'css-loader/lib/compile-exports' {
+  declare module.exports: any;
+}
+
+declare module 'css-loader/lib/css-base' {
+  declare module.exports: any;
+}
+
+declare module 'css-loader/lib/getImportPrefix' {
+  declare module.exports: any;
+}
+
+declare module 'css-loader/lib/getLocalIdent' {
+  declare module.exports: any;
+}
+
+declare module 'css-loader/lib/loader' {
+  declare module.exports: any;
+}
+
+declare module 'css-loader/lib/localsLoader' {
+  declare module.exports: any;
+}
+
+declare module 'css-loader/lib/processCss' {
+  declare module.exports: any;
+}
+
+declare module 'css-loader/locals' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'css-loader/index' {
+  declare module.exports: $Exports<'css-loader'>;
+}
+declare module 'css-loader/index.js' {
+  declare module.exports: $Exports<'css-loader'>;
+}
+declare module 'css-loader/lib/compile-exports.js' {
+  declare module.exports: $Exports<'css-loader/lib/compile-exports'>;
+}
+declare module 'css-loader/lib/css-base.js' {
+  declare module.exports: $Exports<'css-loader/lib/css-base'>;
+}
+declare module 'css-loader/lib/getImportPrefix.js' {
+  declare module.exports: $Exports<'css-loader/lib/getImportPrefix'>;
+}
+declare module 'css-loader/lib/getLocalIdent.js' {
+  declare module.exports: $Exports<'css-loader/lib/getLocalIdent'>;
+}
+declare module 'css-loader/lib/loader.js' {
+  declare module.exports: $Exports<'css-loader/lib/loader'>;
+}
+declare module 'css-loader/lib/localsLoader.js' {
+  declare module.exports: $Exports<'css-loader/lib/localsLoader'>;
+}
+declare module 'css-loader/lib/processCss.js' {
+  declare module.exports: $Exports<'css-loader/lib/processCss'>;
+}
+declare module 'css-loader/locals.js' {
+  declare module.exports: $Exports<'css-loader/locals'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/cubicbezier_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/cubicbezier_vx.x.x.js b/flow-typed/npm/cubicbezier_vx.x.x.js
new file mode 100644
index 0000000..430ab63
--- /dev/null
+++ b/flow-typed/npm/cubicbezier_vx.x.x.js
@@ -0,0 +1,109 @@
+// flow-typed signature: 2acc7f273c46882f343acb402b1618f3
+// flow-typed version: <<STUB>>/cubicbezier_v^0.1.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'cubicbezier'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'cubicbezier' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'cubicbezier/api/scripts/bootstrap.min' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/api/scripts/jquery.min' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/api/scripts/linenumber' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/api/scripts/main' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/api/scripts/prettify/lang-css' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/api/scripts/prettify/prettify' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/api/scripts/underscore-min' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/build/cubicbezier.common' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/build/cubicbezier.debug' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/build/cubicbezier' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/Gruntfile' {
+  declare module.exports: any;
+}
+
+declare module 'cubicbezier/src/cubicbezier' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'cubicbezier/api/scripts/bootstrap.min.js' {
+  declare module.exports: $Exports<'cubicbezier/api/scripts/bootstrap.min'>;
+}
+declare module 'cubicbezier/api/scripts/jquery.min.js' {
+  declare module.exports: $Exports<'cubicbezier/api/scripts/jquery.min'>;
+}
+declare module 'cubicbezier/api/scripts/linenumber.js' {
+  declare module.exports: $Exports<'cubicbezier/api/scripts/linenumber'>;
+}
+declare module 'cubicbezier/api/scripts/main.js' {
+  declare module.exports: $Exports<'cubicbezier/api/scripts/main'>;
+}
+declare module 'cubicbezier/api/scripts/prettify/lang-css.js' {
+  declare module.exports: $Exports<'cubicbezier/api/scripts/prettify/lang-css'>;
+}
+declare module 'cubicbezier/api/scripts/prettify/prettify.js' {
+  declare module.exports: $Exports<'cubicbezier/api/scripts/prettify/prettify'>;
+}
+declare module 'cubicbezier/api/scripts/underscore-min.js' {
+  declare module.exports: $Exports<'cubicbezier/api/scripts/underscore-min'>;
+}
+declare module 'cubicbezier/build/cubicbezier.common.js' {
+  declare module.exports: $Exports<'cubicbezier/build/cubicbezier.common'>;
+}
+declare module 'cubicbezier/build/cubicbezier.debug.js' {
+  declare module.exports: $Exports<'cubicbezier/build/cubicbezier.debug'>;
+}
+declare module 'cubicbezier/build/cubicbezier.js' {
+  declare module.exports: $Exports<'cubicbezier/build/cubicbezier'>;
+}
+declare module 'cubicbezier/Gruntfile.js' {
+  declare module.exports: $Exports<'cubicbezier/Gruntfile'>;
+}
+declare module 'cubicbezier/src/cubicbezier.js' {
+  declare module.exports: $Exports<'cubicbezier/src/cubicbezier'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/danger_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/danger_vx.x.x.js b/flow-typed/npm/danger_vx.x.x.js
new file mode 100644
index 0000000..82a6393
--- /dev/null
+++ b/flow-typed/npm/danger_vx.x.x.js
@@ -0,0 +1,284 @@
+// flow-typed signature: 1c9bafbcdbde50023262e7b0774de8e2
+// flow-typed version: <<STUB>>/danger_v^0.11.5/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'danger'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'danger' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'danger/coverage/remapped/html/prettify' {
+  declare module.exports: any;
+}
+
+declare module 'danger/coverage/remapped/html/sorter' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/api/fetch' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/ci_source_helpers' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/ci_source' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/get_ci_source' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/providers/Circle' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/providers/Codeship' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/providers/DockerCloud' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/providers/Fake' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/providers/index' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/providers/Jenkins' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/providers/Semaphore' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/providers/Surf' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/ci_source/providers/Travis' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/commands/danger-pr' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/commands/danger-run' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/commands/danger' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/danger' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/dsl/Aliases' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/dsl/Commit' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/dsl/DangerDSL' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/dsl/DangerResults' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/dsl/GitDSL' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/dsl/GitHubDSL' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/platforms/FakePlatform' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/platforms/GitHub' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/platforms/github/GitHubAPI' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/platforms/github/pullRequestParser' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/platforms/messaging/violation' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/platforms/platform' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/runner/Dangerfile' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/runner/DangerfileRunner' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/runner/Executor' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/runner/templates/githubIssueTemplate' {
+  declare module.exports: any;
+}
+
+declare module 'danger/distribution/runner/types' {
+  declare module.exports: any;
+}
+
+declare module 'danger/wallaby' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'danger/coverage/remapped/html/prettify.js' {
+  declare module.exports: $Exports<'danger/coverage/remapped/html/prettify'>;
+}
+declare module 'danger/coverage/remapped/html/sorter.js' {
+  declare module.exports: $Exports<'danger/coverage/remapped/html/sorter'>;
+}
+declare module 'danger/distribution/api/fetch.js' {
+  declare module.exports: $Exports<'danger/distribution/api/fetch'>;
+}
+declare module 'danger/distribution/ci_source/ci_source_helpers.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/ci_source_helpers'>;
+}
+declare module 'danger/distribution/ci_source/ci_source.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/ci_source'>;
+}
+declare module 'danger/distribution/ci_source/get_ci_source.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/get_ci_source'>;
+}
+declare module 'danger/distribution/ci_source/providers/Circle.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/providers/Circle'>;
+}
+declare module 'danger/distribution/ci_source/providers/Codeship.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/providers/Codeship'>;
+}
+declare module 'danger/distribution/ci_source/providers/DockerCloud.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/providers/DockerCloud'>;
+}
+declare module 'danger/distribution/ci_source/providers/Fake.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/providers/Fake'>;
+}
+declare module 'danger/distribution/ci_source/providers/index.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/providers/index'>;
+}
+declare module 'danger/distribution/ci_source/providers/Jenkins.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/providers/Jenkins'>;
+}
+declare module 'danger/distribution/ci_source/providers/Semaphore.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/providers/Semaphore'>;
+}
+declare module 'danger/distribution/ci_source/providers/Surf.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/providers/Surf'>;
+}
+declare module 'danger/distribution/ci_source/providers/Travis.js' {
+  declare module.exports: $Exports<'danger/distribution/ci_source/providers/Travis'>;
+}
+declare module 'danger/distribution/commands/danger-pr.js' {
+  declare module.exports: $Exports<'danger/distribution/commands/danger-pr'>;
+}
+declare module 'danger/distribution/commands/danger-run.js' {
+  declare module.exports: $Exports<'danger/distribution/commands/danger-run'>;
+}
+declare module 'danger/distribution/commands/danger.js' {
+  declare module.exports: $Exports<'danger/distribution/commands/danger'>;
+}
+declare module 'danger/distribution/danger.js' {
+  declare module.exports: $Exports<'danger/distribution/danger'>;
+}
+declare module 'danger/distribution/dsl/Aliases.js' {
+  declare module.exports: $Exports<'danger/distribution/dsl/Aliases'>;
+}
+declare module 'danger/distribution/dsl/Commit.js' {
+  declare module.exports: $Exports<'danger/distribution/dsl/Commit'>;
+}
+declare module 'danger/distribution/dsl/DangerDSL.js' {
+  declare module.exports: $Exports<'danger/distribution/dsl/DangerDSL'>;
+}
+declare module 'danger/distribution/dsl/DangerResults.js' {
+  declare module.exports: $Exports<'danger/distribution/dsl/DangerResults'>;
+}
+declare module 'danger/distribution/dsl/GitDSL.js' {
+  declare module.exports: $Exports<'danger/distribution/dsl/GitDSL'>;
+}
+declare module 'danger/distribution/dsl/GitHubDSL.js' {
+  declare module.exports: $Exports<'danger/distribution/dsl/GitHubDSL'>;
+}
+declare module 'danger/distribution/platforms/FakePlatform.js' {
+  declare module.exports: $Exports<'danger/distribution/platforms/FakePlatform'>;
+}
+declare module 'danger/distribution/platforms/GitHub.js' {
+  declare module.exports: $Exports<'danger/distribution/platforms/GitHub'>;
+}
+declare module 'danger/distribution/platforms/github/GitHubAPI.js' {
+  declare module.exports: $Exports<'danger/distribution/platforms/github/GitHubAPI'>;
+}
+declare module 'danger/distribution/platforms/github/pullRequestParser.js' {
+  declare module.exports: $Exports<'danger/distribution/platforms/github/pullRequestParser'>;
+}
+declare module 'danger/distribution/platforms/messaging/violation.js' {
+  declare module.exports: $Exports<'danger/distribution/platforms/messaging/violation'>;
+}
+declare module 'danger/distribution/platforms/platform.js' {
+  declare module.exports: $Exports<'danger/distribution/platforms/platform'>;
+}
+declare module 'danger/distribution/runner/Dangerfile.js' {
+  declare module.exports: $Exports<'danger/distribution/runner/Dangerfile'>;
+}
+declare module 'danger/distribution/runner/DangerfileRunner.js' {
+  declare module.exports: $Exports<'danger/distribution/runner/DangerfileRunner'>;
+}
+declare module 'danger/distribution/runner/Executor.js' {
+  declare module.exports: $Exports<'danger/distribution/runner/Executor'>;
+}
+declare module 'danger/distribution/runner/templates/githubIssueTemplate.js' {
+  declare module.exports: $Exports<'danger/distribution/runner/templates/githubIssueTemplate'>;
+}
+declare module 'danger/distribution/runner/types.js' {
+  declare module.exports: $Exports<'danger/distribution/runner/types'>;
+}
+declare module 'danger/wallaby.js' {
+  declare module.exports: $Exports<'danger/wallaby'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/envd_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/envd_vx.x.x.js b/flow-typed/npm/envd_vx.x.x.js
new file mode 100644
index 0000000..a643554
--- /dev/null
+++ b/flow-typed/npm/envd_vx.x.x.js
@@ -0,0 +1,109 @@
+// flow-typed signature: af9ebe066fe75d46a18a54b7d8b93aa0
+// flow-typed version: <<STUB>>/envd_v^0.1.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'envd'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'envd' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'envd/build/envd.common' {
+  declare module.exports: any;
+}
+
+declare module 'envd/build/envd.debug' {
+  declare module.exports: any;
+}
+
+declare module 'envd/build/envd' {
+  declare module.exports: any;
+}
+
+declare module 'envd/Gruntfile' {
+  declare module.exports: any;
+}
+
+declare module 'envd/src/app' {
+  declare module.exports: any;
+}
+
+declare module 'envd/src/browser' {
+  declare module.exports: any;
+}
+
+declare module 'envd/src/envd' {
+  declare module.exports: any;
+}
+
+declare module 'envd/src/os' {
+  declare module.exports: any;
+}
+
+declare module 'envd/src/params' {
+  declare module.exports: any;
+}
+
+declare module 'envd/src/thirdapp' {
+  declare module.exports: any;
+}
+
+declare module 'envd/src/version' {
+  declare module.exports: any;
+}
+
+declare module 'envd/test/env-test' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'envd/build/envd.common.js' {
+  declare module.exports: $Exports<'envd/build/envd.common'>;
+}
+declare module 'envd/build/envd.debug.js' {
+  declare module.exports: $Exports<'envd/build/envd.debug'>;
+}
+declare module 'envd/build/envd.js' {
+  declare module.exports: $Exports<'envd/build/envd'>;
+}
+declare module 'envd/Gruntfile.js' {
+  declare module.exports: $Exports<'envd/Gruntfile'>;
+}
+declare module 'envd/src/app.js' {
+  declare module.exports: $Exports<'envd/src/app'>;
+}
+declare module 'envd/src/browser.js' {
+  declare module.exports: $Exports<'envd/src/browser'>;
+}
+declare module 'envd/src/envd.js' {
+  declare module.exports: $Exports<'envd/src/envd'>;
+}
+declare module 'envd/src/os.js' {
+  declare module.exports: $Exports<'envd/src/os'>;
+}
+declare module 'envd/src/params.js' {
+  declare module.exports: $Exports<'envd/src/params'>;
+}
+declare module 'envd/src/thirdapp.js' {
+  declare module.exports: $Exports<'envd/src/thirdapp'>;
+}
+declare module 'envd/src/version.js' {
+  declare module.exports: $Exports<'envd/src/version'>;
+}
+declare module 'envd/test/env-test.js' {
+  declare module.exports: $Exports<'envd/test/env-test'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/eslint_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/eslint_vx.x.x.js b/flow-typed/npm/eslint_vx.x.x.js
new file mode 100644
index 0000000..ddc0c86
--- /dev/null
+++ b/flow-typed/npm/eslint_vx.x.x.js
@@ -0,0 +1,1978 @@
+// flow-typed signature: da6806e3fae70af833ecac5fcc52f0c1
+// flow-typed version: <<STUB>>/eslint_v^2.11.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'eslint'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'eslint' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'eslint/bin/eslint' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/conf/cli-options' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/conf/environments' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/conf/eslint-all' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/api' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/ast-utils' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/cli-engine' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/cli' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/code-path-analysis/code-path-analyzer' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/code-path-analysis/code-path-segment' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/code-path-analysis/code-path-state' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/code-path-analysis/code-path' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/code-path-analysis/debug-helpers' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/code-path-analysis/fork-context' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/code-path-analysis/id-generator' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/config' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/config/autoconfig' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/config/config-file' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/config/config-initializer' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/config/config-ops' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/config/config-rule' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/config/config-validator' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/config/environments' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/config/plugins' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/eslint' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/file-finder' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/checkstyle' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/compact' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/html' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/jslint-xml' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/json' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/junit' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/stylish' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/table' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/tap' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/unix' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/formatters/visualstudio' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/ignored-paths' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/load-rules' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/logging' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/options' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rule-context' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/accessor-pairs' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/array-bracket-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/array-callback-return' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/arrow-body-style' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/arrow-parens' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/arrow-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/block-scoped-var' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/block-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/brace-style' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/callback-return' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/camelcase' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/comma-dangle' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/comma-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/comma-style' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/complexity' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/computed-property-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/consistent-return' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/consistent-this' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/constructor-super' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/curly' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/default-case' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/dot-location' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/dot-notation' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/eol-last' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/eqeqeq' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/func-names' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/func-style' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/generator-star-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/global-require' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/guard-for-in' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/handle-callback-err' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/id-blacklist' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/id-length' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/id-match' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/indent' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/init-declarations' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/jsx-quotes' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/key-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/keyword-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/linebreak-style' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/lines-around-comment' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/max-depth' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/max-len' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/max-lines' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/max-nested-callbacks' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/max-params' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/max-statements-per-line' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/max-statements' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/new-cap' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/new-parens' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/newline-after-var' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/newline-before-return' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/newline-per-chained-call' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-alert' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-array-constructor' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-bitwise' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-caller' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-case-declarations' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-catch-shadow' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-class-assign' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-cond-assign' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-confusing-arrow' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-console' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-const-assign' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-constant-condition' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-continue' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-control-regex' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-debugger' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-delete-var' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-div-regex' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-dupe-args' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-dupe-class-members' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-dupe-keys' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-duplicate-case' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-duplicate-imports' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-else-return' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-empty-character-class' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-empty-function' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-empty-pattern' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-empty' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-eq-null' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-eval' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-ex-assign' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-extend-native' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-extra-bind' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-extra-boolean-cast' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-extra-label' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-extra-parens' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-extra-semi' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-fallthrough' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-floating-decimal' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-func-assign' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-implicit-coercion' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-implicit-globals' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-implied-eval' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-inline-comments' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-inner-declarations' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-invalid-regexp' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-invalid-this' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-irregular-whitespace' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-label-var' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-labels' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-lone-blocks' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-lonely-if' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-loop-func' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-magic-numbers' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-mixed-operators' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-mixed-requires' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-mixed-spaces-and-tabs' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-multi-spaces' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-multi-str' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-multiple-empty-lines' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-native-reassign' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-negated-condition' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-negated-in-lhs' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-nested-ternary' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-new-func' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-new-object' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-new-require' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-new-symbol' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-new-wrappers' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-new' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-obj-calls' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-octal-escape' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-octal' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-param-reassign' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-path-concat' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-plusplus' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-process-env' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-process-exit' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-proto' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-prototype-builtins' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-redeclare' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-regex-spaces' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-restricted-globals' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-restricted-imports' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-restricted-modules' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-restricted-syntax' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-return-assign' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-script-url' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-self-assign' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-self-compare' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-sequences' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-shadow-restricted-names' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-shadow' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-spaced-func' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-sparse-arrays' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-sync' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-ternary' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-this-before-super' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-throw-literal' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-trailing-spaces' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-undef-init' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-undef' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-undefined' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-underscore-dangle' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-unexpected-multiline' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-unmodified-loop-condition' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-unneeded-ternary' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-unreachable' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-unsafe-finally' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-unused-expressions' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-unused-labels' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-unused-vars' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-use-before-define' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-useless-call' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-useless-computed-key' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-useless-concat' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-useless-constructor' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-useless-escape' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-useless-rename' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-var' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-void' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-warning-comments' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-whitespace-before-property' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/no-with' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/object-curly-newline' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/object-curly-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/object-property-newline' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/object-shorthand' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/one-var-declaration-per-line' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/one-var' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/operator-assignment' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/operator-linebreak' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/padded-blocks' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/prefer-arrow-callback' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/prefer-const' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/prefer-reflect' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/prefer-rest-params' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/prefer-spread' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/prefer-template' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/quote-props' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/quotes' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/radix' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/require-jsdoc' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/require-yield' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/rest-spread-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/semi-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/semi' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/sort-imports' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/sort-vars' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/space-before-blocks' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/space-before-function-paren' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/space-in-parens' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/space-infix-ops' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/space-unary-ops' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/spaced-comment' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/strict' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/template-curly-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/unicode-bom' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/use-isnan' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/valid-jsdoc' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/valid-typeof' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/vars-on-top' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/wrap-iife' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/wrap-regex' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/yield-star-spacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/rules/yoda' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/testers/event-generator-tester' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/testers/rule-tester' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/timing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/token-store' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/comment-event-generator' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/glob-util' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/hash' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/keywords' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/module-resolver' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/node-event-generator' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/npm-util' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/path-util' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/rule-fixer' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/source-code-fixer' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/source-code-util' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/source-code' {
+  declare module.exports: any;
+}
+
+declare module 'eslint/lib/util/traverser' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'eslint/bin/eslint.js' {
+  declare module.exports: $Exports<'eslint/bin/eslint'>;
+}
+declare module 'eslint/conf/cli-options.js' {
+  declare module.exports: $Exports<'eslint/conf/cli-options'>;
+}
+declare module 'eslint/conf/environments.js' {
+  declare module.exports: $Exports<'eslint/conf/environments'>;
+}
+declare module 'eslint/conf/eslint-all.js' {
+  declare module.exports: $Exports<'eslint/conf/eslint-all'>;
+}
+declare module 'eslint/lib/api.js' {
+  declare module.exports: $Exports<'eslint/lib/api'>;
+}
+declare module 'eslint/lib/ast-utils.js' {
+  declare module.exports: $Exports<'eslint/lib/ast-utils'>;
+}
+declare module 'eslint/lib/cli-engine.js' {
+  declare module.exports: $Exports<'eslint/lib/cli-engine'>;
+}
+declare module 'eslint/lib/cli.js' {
+  declare module.exports: $Exports<'eslint/lib/cli'>;
+}
+declare module 'eslint/lib/code-path-analysis/code-path-analyzer.js' {
+  declare module.exports: $Exports<'eslint/lib/code-path-analysis/code-path-analyzer'>;
+}
+declare module 'eslint/lib/code-path-analysis/code-path-segment.js' {
+  declare module.exports: $Exports<'eslint/lib/code-path-analysis/code-path-segment'>;
+}
+declare module 'eslint/lib/code-path-analysis/code-path-state.js' {
+  declare module.exports: $Exports<'eslint/lib/code-path-analysis/code-path-state'>;
+}
+declare module 'eslint/lib/code-path-analysis/code-path.js' {
+  declare module.exports: $Exports<'eslint/lib/code-path-analysis/code-path'>;
+}
+declare module 'eslint/lib/code-path-analysis/debug-helpers.js' {
+  declare module.exports: $Exports<'eslint/lib/code-path-analysis/debug-helpers'>;
+}
+declare module 'eslint/lib/code-path-analysis/fork-context.js' {
+  declare module.exports: $Exports<'eslint/lib/code-path-analysis/fork-context'>;
+}
+declare module 'eslint/lib/code-path-analysis/id-generator.js' {
+  declare module.exports: $Exports<'eslint/lib/code-path-analysis/id-generator'>;
+}
+declare module 'eslint/lib/config.js' {
+  declare module.exports: $Exports<'eslint/lib/config'>;
+}
+declare module 'eslint/lib/config/autoconfig.js' {
+  declare module.exports: $Exports<'eslint/lib/config/autoconfig'>;
+}
+declare module 'eslint/lib/config/config-file.js' {
+  declare module.exports: $Exports<'eslint/lib/config/config-file'>;
+}
+declare module 'eslint/lib/config/config-initializer.js' {
+  declare module.exports: $Exports<'eslint/lib/config/config-initializer'>;
+}
+declare module 'eslint/lib/config/config-ops.js' {
+  declare module.exports: $Exports<'eslint/lib/config/config-ops'>;
+}
+declare module 'eslint/lib/config/config-rule.js' {
+  declare module.exports: $Exports<'eslint/lib/config/config-rule'>;
+}
+declare module 'eslint/lib/config/config-validator.js' {
+  declare module.exports: $Exports<'eslint/lib/config/config-validator'>;
+}
+declare module 'eslint/lib/config/environments.js' {
+  declare module.exports: $Exports<'eslint/lib/config/environments'>;
+}
+declare module 'eslint/lib/config/plugins.js' {
+  declare module.exports: $Exports<'eslint/lib/config/plugins'>;
+}
+declare module 'eslint/lib/eslint.js' {
+  declare module.exports: $Exports<'eslint/lib/eslint'>;
+}
+declare module 'eslint/lib/file-finder.js' {
+  declare module.exports: $Exports<'eslint/lib/file-finder'>;
+}
+declare module 'eslint/lib/formatters/checkstyle.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/checkstyle'>;
+}
+declare module 'eslint/lib/formatters/compact.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/compact'>;
+}
+declare module 'eslint/lib/formatters/html.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/html'>;
+}
+declare module 'eslint/lib/formatters/jslint-xml.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/jslint-xml'>;
+}
+declare module 'eslint/lib/formatters/json.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/json'>;
+}
+declare module 'eslint/lib/formatters/junit.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/junit'>;
+}
+declare module 'eslint/lib/formatters/stylish.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/stylish'>;
+}
+declare module 'eslint/lib/formatters/table.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/table'>;
+}
+declare module 'eslint/lib/formatters/tap.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/tap'>;
+}
+declare module 'eslint/lib/formatters/unix.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/unix'>;
+}
+declare module 'eslint/lib/formatters/visualstudio.js' {
+  declare module.exports: $Exports<'eslint/lib/formatters/visualstudio'>;
+}
+declare module 'eslint/lib/ignored-paths.js' {
+  declare module.exports: $Exports<'eslint/lib/ignored-paths'>;
+}
+declare module 'eslint/lib/load-rules.js' {
+  declare module.exports: $Exports<'eslint/lib/load-rules'>;
+}
+declare module 'eslint/lib/logging.js' {
+  declare module.exports: $Exports<'eslint/lib/logging'>;
+}
+declare module 'eslint/lib/options.js' {
+  declare module.exports: $Exports<'eslint/lib/options'>;
+}
+declare module 'eslint/lib/rule-context.js' {
+  declare module.exports: $Exports<'eslint/lib/rule-context'>;
+}
+declare module 'eslint/lib/rules.js' {
+  declare module.exports: $Exports<'eslint/lib/rules'>;
+}
+declare module 'eslint/lib/rules/accessor-pairs.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/accessor-pairs'>;
+}
+declare module 'eslint/lib/rules/array-bracket-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/array-bracket-spacing'>;
+}
+declare module 'eslint/lib/rules/array-callback-return.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/array-callback-return'>;
+}
+declare module 'eslint/lib/rules/arrow-body-style.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/arrow-body-style'>;
+}
+declare module 'eslint/lib/rules/arrow-parens.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/arrow-parens'>;
+}
+declare module 'eslint/lib/rules/arrow-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/arrow-spacing'>;
+}
+declare module 'eslint/lib/rules/block-scoped-var.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/block-scoped-var'>;
+}
+declare module 'eslint/lib/rules/block-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/block-spacing'>;
+}
+declare module 'eslint/lib/rules/brace-style.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/brace-style'>;
+}
+declare module 'eslint/lib/rules/callback-return.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/callback-return'>;
+}
+declare module 'eslint/lib/rules/camelcase.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/camelcase'>;
+}
+declare module 'eslint/lib/rules/comma-dangle.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/comma-dangle'>;
+}
+declare module 'eslint/lib/rules/comma-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/comma-spacing'>;
+}
+declare module 'eslint/lib/rules/comma-style.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/comma-style'>;
+}
+declare module 'eslint/lib/rules/complexity.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/complexity'>;
+}
+declare module 'eslint/lib/rules/computed-property-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/computed-property-spacing'>;
+}
+declare module 'eslint/lib/rules/consistent-return.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/consistent-return'>;
+}
+declare module 'eslint/lib/rules/consistent-this.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/consistent-this'>;
+}
+declare module 'eslint/lib/rules/constructor-super.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/constructor-super'>;
+}
+declare module 'eslint/lib/rules/curly.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/curly'>;
+}
+declare module 'eslint/lib/rules/default-case.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/default-case'>;
+}
+declare module 'eslint/lib/rules/dot-location.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/dot-location'>;
+}
+declare module 'eslint/lib/rules/dot-notation.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/dot-notation'>;
+}
+declare module 'eslint/lib/rules/eol-last.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/eol-last'>;
+}
+declare module 'eslint/lib/rules/eqeqeq.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/eqeqeq'>;
+}
+declare module 'eslint/lib/rules/func-names.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/func-names'>;
+}
+declare module 'eslint/lib/rules/func-style.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/func-style'>;
+}
+declare module 'eslint/lib/rules/generator-star-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/generator-star-spacing'>;
+}
+declare module 'eslint/lib/rules/global-require.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/global-require'>;
+}
+declare module 'eslint/lib/rules/guard-for-in.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/guard-for-in'>;
+}
+declare module 'eslint/lib/rules/handle-callback-err.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/handle-callback-err'>;
+}
+declare module 'eslint/lib/rules/id-blacklist.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/id-blacklist'>;
+}
+declare module 'eslint/lib/rules/id-length.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/id-length'>;
+}
+declare module 'eslint/lib/rules/id-match.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/id-match'>;
+}
+declare module 'eslint/lib/rules/indent.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/indent'>;
+}
+declare module 'eslint/lib/rules/init-declarations.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/init-declarations'>;
+}
+declare module 'eslint/lib/rules/jsx-quotes.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/jsx-quotes'>;
+}
+declare module 'eslint/lib/rules/key-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/key-spacing'>;
+}
+declare module 'eslint/lib/rules/keyword-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/keyword-spacing'>;
+}
+declare module 'eslint/lib/rules/linebreak-style.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/linebreak-style'>;
+}
+declare module 'eslint/lib/rules/lines-around-comment.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/lines-around-comment'>;
+}
+declare module 'eslint/lib/rules/max-depth.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/max-depth'>;
+}
+declare module 'eslint/lib/rules/max-len.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/max-len'>;
+}
+declare module 'eslint/lib/rules/max-lines.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/max-lines'>;
+}
+declare module 'eslint/lib/rules/max-nested-callbacks.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/max-nested-callbacks'>;
+}
+declare module 'eslint/lib/rules/max-params.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/max-params'>;
+}
+declare module 'eslint/lib/rules/max-statements-per-line.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/max-statements-per-line'>;
+}
+declare module 'eslint/lib/rules/max-statements.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/max-statements'>;
+}
+declare module 'eslint/lib/rules/new-cap.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/new-cap'>;
+}
+declare module 'eslint/lib/rules/new-parens.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/new-parens'>;
+}
+declare module 'eslint/lib/rules/newline-after-var.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/newline-after-var'>;
+}
+declare module 'eslint/lib/rules/newline-before-return.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/newline-before-return'>;
+}
+declare module 'eslint/lib/rules/newline-per-chained-call.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/newline-per-chained-call'>;
+}
+declare module 'eslint/lib/rules/no-alert.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-alert'>;
+}
+declare module 'eslint/lib/rules/no-array-constructor.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-array-constructor'>;
+}
+declare module 'eslint/lib/rules/no-bitwise.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-bitwise'>;
+}
+declare module 'eslint/lib/rules/no-caller.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-caller'>;
+}
+declare module 'eslint/lib/rules/no-case-declarations.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-case-declarations'>;
+}
+declare module 'eslint/lib/rules/no-catch-shadow.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-catch-shadow'>;
+}
+declare module 'eslint/lib/rules/no-class-assign.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-class-assign'>;
+}
+declare module 'eslint/lib/rules/no-cond-assign.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-cond-assign'>;
+}
+declare module 'eslint/lib/rules/no-confusing-arrow.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-confusing-arrow'>;
+}
+declare module 'eslint/lib/rules/no-console.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-console'>;
+}
+declare module 'eslint/lib/rules/no-const-assign.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-const-assign'>;
+}
+declare module 'eslint/lib/rules/no-constant-condition.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-constant-condition'>;
+}
+declare module 'eslint/lib/rules/no-continue.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-continue'>;
+}
+declare module 'eslint/lib/rules/no-control-regex.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-control-regex'>;
+}
+declare module 'eslint/lib/rules/no-debugger.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-debugger'>;
+}
+declare module 'eslint/lib/rules/no-delete-var.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-delete-var'>;
+}
+declare module 'eslint/lib/rules/no-div-regex.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-div-regex'>;
+}
+declare module 'eslint/lib/rules/no-dupe-args.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-dupe-args'>;
+}
+declare module 'eslint/lib/rules/no-dupe-class-members.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-dupe-class-members'>;
+}
+declare module 'eslint/lib/rules/no-dupe-keys.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-dupe-keys'>;
+}
+declare module 'eslint/lib/rules/no-duplicate-case.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-duplicate-case'>;
+}
+declare module 'eslint/lib/rules/no-duplicate-imports.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-duplicate-imports'>;
+}
+declare module 'eslint/lib/rules/no-else-return.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-else-return'>;
+}
+declare module 'eslint/lib/rules/no-empty-character-class.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-empty-character-class'>;
+}
+declare module 'eslint/lib/rules/no-empty-function.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-empty-function'>;
+}
+declare module 'eslint/lib/rules/no-empty-pattern.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-empty-pattern'>;
+}
+declare module 'eslint/lib/rules/no-empty.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-empty'>;
+}
+declare module 'eslint/lib/rules/no-eq-null.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-eq-null'>;
+}
+declare module 'eslint/lib/rules/no-eval.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-eval'>;
+}
+declare module 'eslint/lib/rules/no-ex-assign.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-ex-assign'>;
+}
+declare module 'eslint/lib/rules/no-extend-native.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-extend-native'>;
+}
+declare module 'eslint/lib/rules/no-extra-bind.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-extra-bind'>;
+}
+declare module 'eslint/lib/rules/no-extra-boolean-cast.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-extra-boolean-cast'>;
+}
+declare module 'eslint/lib/rules/no-extra-label.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-extra-label'>;
+}
+declare module 'eslint/lib/rules/no-extra-parens.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-extra-parens'>;
+}
+declare module 'eslint/lib/rules/no-extra-semi.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-extra-semi'>;
+}
+declare module 'eslint/lib/rules/no-fallthrough.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-fallthrough'>;
+}
+declare module 'eslint/lib/rules/no-floating-decimal.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-floating-decimal'>;
+}
+declare module 'eslint/lib/rules/no-func-assign.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-func-assign'>;
+}
+declare module 'eslint/lib/rules/no-implicit-coercion.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-implicit-coercion'>;
+}
+declare module 'eslint/lib/rules/no-implicit-globals.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-implicit-globals'>;
+}
+declare module 'eslint/lib/rules/no-implied-eval.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-implied-eval'>;
+}
+declare module 'eslint/lib/rules/no-inline-comments.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-inline-comments'>;
+}
+declare module 'eslint/lib/rules/no-inner-declarations.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-inner-declarations'>;
+}
+declare module 'eslint/lib/rules/no-invalid-regexp.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-invalid-regexp'>;
+}
+declare module 'eslint/lib/rules/no-invalid-this.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-invalid-this'>;
+}
+declare module 'eslint/lib/rules/no-irregular-whitespace.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-irregular-whitespace'>;
+}
+declare module 'eslint/lib/rules/no-iterator.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-iterator'>;
+}
+declare module 'eslint/lib/rules/no-label-var.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-label-var'>;
+}
+declare module 'eslint/lib/rules/no-labels.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-labels'>;
+}
+declare module 'eslint/lib/rules/no-lone-blocks.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-lone-blocks'>;
+}
+declare module 'eslint/lib/rules/no-lonely-if.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-lonely-if'>;
+}
+declare module 'eslint/lib/rules/no-loop-func.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-loop-func'>;
+}
+declare module 'eslint/lib/rules/no-magic-numbers.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-magic-numbers'>;
+}
+declare module 'eslint/lib/rules/no-mixed-operators.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-mixed-operators'>;
+}
+declare module 'eslint/lib/rules/no-mixed-requires.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-mixed-requires'>;
+}
+declare module 'eslint/lib/rules/no-mixed-spaces-and-tabs.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-mixed-spaces-and-tabs'>;
+}
+declare module 'eslint/lib/rules/no-multi-spaces.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-multi-spaces'>;
+}
+declare module 'eslint/lib/rules/no-multi-str.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-multi-str'>;
+}
+declare module 'eslint/lib/rules/no-multiple-empty-lines.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-multiple-empty-lines'>;
+}
+declare module 'eslint/lib/rules/no-native-reassign.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-native-reassign'>;
+}
+declare module 'eslint/lib/rules/no-negated-condition.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-negated-condition'>;
+}
+declare module 'eslint/lib/rules/no-negated-in-lhs.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-negated-in-lhs'>;
+}
+declare module 'eslint/lib/rules/no-nested-ternary.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-nested-ternary'>;
+}
+declare module 'eslint/lib/rules/no-new-func.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-new-func'>;
+}
+declare module 'eslint/lib/rules/no-new-object.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-new-object'>;
+}
+declare module 'eslint/lib/rules/no-new-require.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-new-require'>;
+}
+declare module 'eslint/lib/rules/no-new-symbol.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-new-symbol'>;
+}
+declare module 'eslint/lib/rules/no-new-wrappers.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-new-wrappers'>;
+}
+declare module 'eslint/lib/rules/no-new.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-new'>;
+}
+declare module 'eslint/lib/rules/no-obj-calls.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-obj-calls'>;
+}
+declare module 'eslint/lib/rules/no-octal-escape.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-octal-escape'>;
+}
+declare module 'eslint/lib/rules/no-octal.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-octal'>;
+}
+declare module 'eslint/lib/rules/no-param-reassign.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-param-reassign'>;
+}
+declare module 'eslint/lib/rules/no-path-concat.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-path-concat'>;
+}
+declare module 'eslint/lib/rules/no-plusplus.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-plusplus'>;
+}
+declare module 'eslint/lib/rules/no-process-env.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-process-env'>;
+}
+declare module 'eslint/lib/rules/no-process-exit.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-process-exit'>;
+}
+declare module 'eslint/lib/rules/no-proto.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-proto'>;
+}
+declare module 'eslint/lib/rules/no-prototype-builtins.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-prototype-builtins'>;
+}
+declare module 'eslint/lib/rules/no-redeclare.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-redeclare'>;
+}
+declare module 'eslint/lib/rules/no-regex-spaces.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-regex-spaces'>;
+}
+declare module 'eslint/lib/rules/no-restricted-globals.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-restricted-globals'>;
+}
+declare module 'eslint/lib/rules/no-restricted-imports.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-restricted-imports'>;
+}
+declare module 'eslint/lib/rules/no-restricted-modules.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-restricted-modules'>;
+}
+declare module 'eslint/lib/rules/no-restricted-syntax.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-restricted-syntax'>;
+}
+declare module 'eslint/lib/rules/no-return-assign.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-return-assign'>;
+}
+declare module 'eslint/lib/rules/no-script-url.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-script-url'>;
+}
+declare module 'eslint/lib/rules/no-self-assign.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-self-assign'>;
+}
+declare module 'eslint/lib/rules/no-self-compare.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-self-compare'>;
+}
+declare module 'eslint/lib/rules/no-sequences.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-sequences'>;
+}
+declare module 'eslint/lib/rules/no-shadow-restricted-names.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-shadow-restricted-names'>;
+}
+declare module 'eslint/lib/rules/no-shadow.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-shadow'>;
+}
+declare module 'eslint/lib/rules/no-spaced-func.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-spaced-func'>;
+}
+declare module 'eslint/lib/rules/no-sparse-arrays.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-sparse-arrays'>;
+}
+declare module 'eslint/lib/rules/no-sync.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-sync'>;
+}
+declare module 'eslint/lib/rules/no-ternary.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-ternary'>;
+}
+declare module 'eslint/lib/rules/no-this-before-super.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-this-before-super'>;
+}
+declare module 'eslint/lib/rules/no-throw-literal.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-throw-literal'>;
+}
+declare module 'eslint/lib/rules/no-trailing-spaces.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-trailing-spaces'>;
+}
+declare module 'eslint/lib/rules/no-undef-init.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-undef-init'>;
+}
+declare module 'eslint/lib/rules/no-undef.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-undef'>;
+}
+declare module 'eslint/lib/rules/no-undefined.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-undefined'>;
+}
+declare module 'eslint/lib/rules/no-underscore-dangle.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-underscore-dangle'>;
+}
+declare module 'eslint/lib/rules/no-unexpected-multiline.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-unexpected-multiline'>;
+}
+declare module 'eslint/lib/rules/no-unmodified-loop-condition.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-unmodified-loop-condition'>;
+}
+declare module 'eslint/lib/rules/no-unneeded-ternary.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-unneeded-ternary'>;
+}
+declare module 'eslint/lib/rules/no-unreachable.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-unreachable'>;
+}
+declare module 'eslint/lib/rules/no-unsafe-finally.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-unsafe-finally'>;
+}
+declare module 'eslint/lib/rules/no-unused-expressions.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-unused-expressions'>;
+}
+declare module 'eslint/lib/rules/no-unused-labels.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-unused-labels'>;
+}
+declare module 'eslint/lib/rules/no-unused-vars.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-unused-vars'>;
+}
+declare module 'eslint/lib/rules/no-use-before-define.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-use-before-define'>;
+}
+declare module 'eslint/lib/rules/no-useless-call.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-useless-call'>;
+}
+declare module 'eslint/lib/rules/no-useless-computed-key.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-useless-computed-key'>;
+}
+declare module 'eslint/lib/rules/no-useless-concat.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-useless-concat'>;
+}
+declare module 'eslint/lib/rules/no-useless-constructor.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-useless-constructor'>;
+}
+declare module 'eslint/lib/rules/no-useless-escape.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-useless-escape'>;
+}
+declare module 'eslint/lib/rules/no-useless-rename.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-useless-rename'>;
+}
+declare module 'eslint/lib/rules/no-var.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-var'>;
+}
+declare module 'eslint/lib/rules/no-void.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-void'>;
+}
+declare module 'eslint/lib/rules/no-warning-comments.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-warning-comments'>;
+}
+declare module 'eslint/lib/rules/no-whitespace-before-property.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-whitespace-before-property'>;
+}
+declare module 'eslint/lib/rules/no-with.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/no-with'>;
+}
+declare module 'eslint/lib/rules/object-curly-newline.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/object-curly-newline'>;
+}
+declare module 'eslint/lib/rules/object-curly-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/object-curly-spacing'>;
+}
+declare module 'eslint/lib/rules/object-property-newline.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/object-property-newline'>;
+}
+declare module 'eslint/lib/rules/object-shorthand.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/object-shorthand'>;
+}
+declare module 'eslint/lib/rules/one-var-declaration-per-line.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/one-var-declaration-per-line'>;
+}
+declare module 'eslint/lib/rules/one-var.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/one-var'>;
+}
+declare module 'eslint/lib/rules/operator-assignment.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/operator-assignment'>;
+}
+declare module 'eslint/lib/rules/operator-linebreak.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/operator-linebreak'>;
+}
+declare module 'eslint/lib/rules/padded-blocks.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/padded-blocks'>;
+}
+declare module 'eslint/lib/rules/prefer-arrow-callback.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/prefer-arrow-callback'>;
+}
+declare module 'eslint/lib/rules/prefer-const.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/prefer-const'>;
+}
+declare module 'eslint/lib/rules/prefer-reflect.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/prefer-reflect'>;
+}
+declare module 'eslint/lib/rules/prefer-rest-params.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/prefer-rest-params'>;
+}
+declare module 'eslint/lib/rules/prefer-spread.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/prefer-spread'>;
+}
+declare module 'eslint/lib/rules/prefer-template.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/prefer-template'>;
+}
+declare module 'eslint/lib/rules/quote-props.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/quote-props'>;
+}
+declare module 'eslint/lib/rules/quotes.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/quotes'>;
+}
+declare module 'eslint/lib/rules/radix.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/radix'>;
+}
+declare module 'eslint/lib/rules/require-jsdoc.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/require-jsdoc'>;
+}
+declare module 'eslint/lib/rules/require-yield.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/require-yield'>;
+}
+declare module 'eslint/lib/rules/rest-spread-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/rest-spread-spacing'>;
+}
+declare module 'eslint/lib/rules/semi-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/semi-spacing'>;
+}
+declare module 'eslint/lib/rules/semi.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/semi'>;
+}
+declare module 'eslint/lib/rules/sort-imports.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/sort-imports'>;
+}
+declare module 'eslint/lib/rules/sort-vars.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/sort-vars'>;
+}
+declare module 'eslint/lib/rules/space-before-blocks.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/space-before-blocks'>;
+}
+declare module 'eslint/lib/rules/space-before-function-paren.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/space-before-function-paren'>;
+}
+declare module 'eslint/lib/rules/space-in-parens.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/space-in-parens'>;
+}
+declare module 'eslint/lib/rules/space-infix-ops.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/space-infix-ops'>;
+}
+declare module 'eslint/lib/rules/space-unary-ops.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/space-unary-ops'>;
+}
+declare module 'eslint/lib/rules/spaced-comment.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/spaced-comment'>;
+}
+declare module 'eslint/lib/rules/strict.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/strict'>;
+}
+declare module 'eslint/lib/rules/template-curly-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/template-curly-spacing'>;
+}
+declare module 'eslint/lib/rules/unicode-bom.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/unicode-bom'>;
+}
+declare module 'eslint/lib/rules/use-isnan.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/use-isnan'>;
+}
+declare module 'eslint/lib/rules/valid-jsdoc.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/valid-jsdoc'>;
+}
+declare module 'eslint/lib/rules/valid-typeof.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/valid-typeof'>;
+}
+declare module 'eslint/lib/rules/vars-on-top.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/vars-on-top'>;
+}
+declare module 'eslint/lib/rules/wrap-iife.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/wrap-iife'>;
+}
+declare module 'eslint/lib/rules/wrap-regex.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/wrap-regex'>;
+}
+declare module 'eslint/lib/rules/yield-star-spacing.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/yield-star-spacing'>;
+}
+declare module 'eslint/lib/rules/yoda.js' {
+  declare module.exports: $Exports<'eslint/lib/rules/yoda'>;
+}
+declare module 'eslint/lib/testers/event-generator-tester.js' {
+  declare module.exports: $Exports<'eslint/lib/testers/event-generator-tester'>;
+}
+declare module 'eslint/lib/testers/rule-tester.js' {
+  declare module.exports: $Exports<'eslint/lib/testers/rule-tester'>;
+}
+declare module 'eslint/lib/timing.js' {
+  declare module.exports: $Exports<'eslint/lib/timing'>;
+}
+declare module 'eslint/lib/token-store.js' {
+  declare module.exports: $Exports<'eslint/lib/token-store'>;
+}
+declare module 'eslint/lib/util/comment-event-generator.js' {
+  declare module.exports: $Exports<'eslint/lib/util/comment-event-generator'>;
+}
+declare module 'eslint/lib/util/glob-util.js' {
+  declare module.exports: $Exports<'eslint/lib/util/glob-util'>;
+}
+declare module 'eslint/lib/util/hash.js' {
+  declare module.exports: $Exports<'eslint/lib/util/hash'>;
+}
+declare module 'eslint/lib/util/keywords.js' {
+  declare module.exports: $Exports<'eslint/lib/util/keywords'>;
+}
+declare module 'eslint/lib/util/module-resolver.js' {
+  declare module.exports: $Exports<'eslint/lib/util/module-resolver'>;
+}
+declare module 'eslint/lib/util/node-event-generator.js' {
+  declare module.exports: $Exports<'eslint/lib/util/node-event-generator'>;
+}
+declare module 'eslint/lib/util/npm-util.js' {
+  declare module.exports: $Exports<'eslint/lib/util/npm-util'>;
+}
+declare module 'eslint/lib/util/path-util.js' {
+  declare module.exports: $Exports<'eslint/lib/util/path-util'>;
+}
+declare module 'eslint/lib/util/rule-fixer.js' {
+  declare module.exports: $Exports<'eslint/lib/util/rule-fixer'>;
+}
+declare module 'eslint/lib/util/source-code-fixer.js' {
+  declare module.exports: $Exports<'eslint/lib/util/source-code-fixer'>;
+}
+declare module 'eslint/lib/util/source-code-util.js' {
+  declare module.exports: $Exports<'eslint/lib/util/source-code-util'>;
+}
+declare module 'eslint/lib/util/source-code.js' {
+  declare module.exports: $Exports<'eslint/lib/util/source-code'>;
+}
+declare module 'eslint/lib/util/traverser.js' {
+  declare module.exports: $Exports<'eslint/lib/util/traverser'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/flow-bin_v0.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/flow-bin_v0.x.x.js b/flow-typed/npm/flow-bin_v0.x.x.js
new file mode 100644
index 0000000..c538e20
--- /dev/null
+++ b/flow-typed/npm/flow-bin_v0.x.x.js
@@ -0,0 +1,6 @@
+// flow-typed signature: 6a5610678d4b01e13bbfbbc62bdaf583
+// flow-typed version: 3817bc6980/flow-bin_v0.x.x/flow_>=v0.25.x
+
+declare module "flow-bin" {
+  declare module.exports: string;
+}


[11/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/modules/modal.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/modules/modal.js b/ios/playground/bundlejs/vue/modules/modal.js
index e27992a..249dc68 100644
--- a/ios/playground/bundlejs/vue/modules/modal.js
+++ b/ios/playground/bundlejs/vue/modules/modal.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(483)
+	__vue_exports__ = __webpack_require__(504)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(484)
+	var __vue_template__ = __webpack_require__(505)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/modules/modal.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/modules/modal.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,27 +255,27 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 385:
+/***/ 403:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(386)
+	__vue_styles__.push(__webpack_require__(404)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(387)
+	__vue_exports__ = __webpack_require__(405)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(388)
+	var __vue_template__ = __webpack_require__(406)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -280,22 +287,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/button.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/button.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4c6be341"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 386:
+/***/ 404:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -395,7 +406,7 @@
 
 /***/ },
 
-/***/ 387:
+/***/ 405:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -418,21 +429,21 @@
 
 /***/ },
 
-/***/ 388:
+/***/ 406:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 483:
+/***/ 504:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -452,14 +463,14 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
+	var modal = weex.requireModule('modal');
 	module.exports = {
 	  data: function data() {
 	    return {};
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    button: __webpack_require__(385)
+	    panel: __webpack_require__(399),
+	    button: __webpack_require__(403)
 	  },
 	  methods: {
 	    toast: function toast(msg, duration) {
@@ -512,16 +523,16 @@
 
 /***/ },
 
-/***/ 484:
+/***/ 505:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "Toast",
 	      "type": "primary"
 	    }
-	  }, [_h('button', {
+	  }, [_c('button', {
 	    attrs: {
 	      "type": "primary",
 	      "value": "Toast"
@@ -531,12 +542,12 @@
 	        _vm.toast($event)
 	      }
 	    }
-	  })]), _h('panel', {
+	  })], 1), _c('panel', {
 	    attrs: {
 	      "title": "Dialog",
 	      "type": "primary"
 	    }
-	  }, [_h('button', {
+	  }, [_c('button', {
 	    staticStyle: {
 	      marginBottom: "20px"
 	    },
@@ -549,7 +560,7 @@
 	        _vm.alert($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    staticStyle: {
 	      marginBottom: "20px"
 	    },
@@ -562,7 +573,7 @@
 	        _vm.confirm($event)
 	      }
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    attrs: {
 	      "type": "warning",
 	      "value": "Prompt"
@@ -572,7 +583,7 @@
 	        _vm.prompt($event)
 	      }
 	    }
-	  })])])
+	  })], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/modules/storage.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/modules/storage.js b/ios/playground/bundlejs/vue/modules/storage.js
index 24a8faa..9bde815 100644
--- a/ios/playground/bundlejs/vue/modules/storage.js
+++ b/ios/playground/bundlejs/vue/modules/storage.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(485)
+	__vue_exports__ = __webpack_require__(506)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(486)
+	var __vue_template__ = __webpack_require__(507)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/modules/storage.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/modules/storage.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,13 +255,13 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 485:
+/***/ 506:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -283,7 +290,7 @@
 	//
 	//
 
-	var storage = __weex_require_module__('storage');
+	var storage = weex.requireModule('storage');
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -295,7 +302,7 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381)
+	    panel: __webpack_require__(399)
 	  },
 	  created: function created() {
 	    var me = this;
@@ -343,36 +350,36 @@
 
 /***/ },
 
-/***/ 486:
+/***/ 507:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "storage API",
 	      "type": "primary"
 	    }
-	  }, [_h('panel', {
+	  }, [_c('panel', {
 	    attrs: {
 	      "title": "setItem"
 	    }
-	  }, [_h('text', [_vm._s(_vm.setItemResult)])]), _h('panel', {
+	  }, [_c('text', [_vm._v(_vm._s(_vm.setItemResult))])]), _c('panel', {
 	    attrs: {
 	      "title": "getItem"
 	    }
-	  }, [_h('text', [_vm._s(_vm.getItemResult)])]), _h('panel', {
+	  }, [_c('text', [_vm._v(_vm._s(_vm.getItemResult))])]), _c('panel', {
 	    attrs: {
 	      "title": "length"
 	    }
-	  }, [_h('text', [_vm._s(_vm.lengthResult)])]), _h('panel', {
+	  }, [_c('text', [_vm._v(_vm._s(_vm.lengthResult))])]), _c('panel', {
 	    attrs: {
 	      "title": "getAllKeys"
 	    }
-	  }, [_h('text', [_vm._s(_vm.getAllKeysResult)])]), _h('panel', {
+	  }, [_c('text', [_vm._v(_vm._s(_vm.getAllKeysResult))])]), _c('panel', {
 	    attrs: {
 	      "title": "removeItem"
 	    }
-	  }, [_h('text', [_vm._s(_vm.removeItemResult)])])])])
+	  }, [_c('text', [_vm._v(_vm._s(_vm.removeItemResult))])])], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/modules/stream.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/modules/stream.js b/ios/playground/bundlejs/vue/modules/stream.js
index 288fee2..eca9d2f 100644
--- a/ios/playground/bundlejs/vue/modules/stream.js
+++ b/ios/playground/bundlejs/vue/modules/stream.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(487)
+	__vue_exports__ = __webpack_require__(508)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(488)
+	var __vue_template__ = __webpack_require__(509)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/modules/stream.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/modules/stream.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,13 +255,13 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 487:
+/***/ 508:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -288,7 +295,7 @@
 	//
 	//
 
-	var stream = __weex_require_module__('stream');
+	var stream = weex.requireModule('stream');
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -302,7 +309,7 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381)
+	    panel: __webpack_require__(399)
 	  },
 	  created: function created() {
 	    var me = this;
@@ -431,46 +438,10 @@
 
 /***/ },
 
-/***/ 488:
+/***/ 509:
 /***/ function(module, exports) {
 
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
-	    attrs: {
-	      "title": "stream.fetch",
-	      "type": "primary"
-	    }
-	  }, [_h('panel', {
-	    attrs: {
-	      "title": "method = GET"
-	    }
-	  }, [_h('text', [_vm._s(_vm.getResult)])]), _h('panel', {
-	    attrs: {
-	      "title": "method = GET / type = jsonp"
-	    }
-	  }, [_h('text', [_vm._s(_vm.getJsonpResult)])]), _h('panel', {
-	    attrs: {
-	      "title": "method = POST"
-	    }
-	  }, [_h('text', [_vm._s(_vm.postResult)])]), _h('panel', {
-	    attrs: {
-	      "title": "method = PUT"
-	    }
-	  }, [_h('text', [_vm._s(_vm.putResult)])]), _h('panel', {
-	    attrs: {
-	      "title": "method = DELETE"
-	    }
-	  }, [_h('text', [_vm._s(_vm.deleteResult)])]), _h('panel', {
-	    attrs: {
-	      "title": "method = HEAD"
-	    }
-	  }, [_h('text', [_vm._s(_vm.headResult)])]), _h('panel', {
-	    attrs: {
-	      "title": "method = PATCH"
-	    }
-	  }, [_h('text', [_vm._s(_vm.patchResult)])])])])
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
+	module.exports={render:function(){},staticRenderFns:[]}
 
 /***/ }
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/showcase/boxshadow.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/showcase/boxshadow.js b/ios/playground/bundlejs/vue/showcase/boxshadow.js
new file mode 100644
index 0000000..a69f30d
--- /dev/null
+++ b/ios/playground/bundlejs/vue/showcase/boxshadow.js
@@ -0,0 +1,244 @@
+// { "framework": "Vue" }
+
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId])
+/******/ 			return installedModules[moduleId].exports;
+
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			exports: {},
+/******/ 			id: moduleId,
+/******/ 			loaded: false
+/******/ 		};
+
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ 		// Flag the module as loaded
+/******/ 		module.loaded = true;
+
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+
+
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 0:
+/***/ function(module, exports, __webpack_require__) {
+
+	var __vue_exports__, __vue_options__
+	var __vue_styles__ = []
+
+	/* styles */
+	__vue_styles__.push(__webpack_require__(510)
+	)
+
+	/* script */
+	__vue_exports__ = __webpack_require__(511)
+
+	/* template */
+	var __vue_template__ = __webpack_require__(512)
+	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
+	if (
+	  typeof __vue_exports__.default === "object" ||
+	  typeof __vue_exports__.default === "function"
+	) {
+	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
+	__vue_options__ = __vue_exports__ = __vue_exports__.default
+	}
+	if (typeof __vue_options__ === "function") {
+	  __vue_options__ = __vue_options__.options
+	}
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/boxshadow.vue"
+	__vue_options__.render = __vue_template__.render
+	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-ddb560de"
+	__vue_options__.style = __vue_options__.style || {}
+	__vue_styles__.forEach(function (module) {
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
+	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
+
+	module.exports = __vue_exports__
+	module.exports.el = 'true'
+	new Vue(module.exports)
+
+
+/***/ },
+
+/***/ 510:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "wrapper": {
+	    "alignItems": "center",
+	    "marginTop": 120
+	  },
+	  "title": {
+	    "fontSize": 48
+	  }
+	}
+
+/***/ },
+
+/***/ 511:
+/***/ function(module, exports) {
+
+	'use strict';
+
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+
+	module.exports = {
+	    data: function data() {
+	        return {
+	            logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png',
+	            target: 'World'
+	        };
+	    }
+	};
+
+/***/ },
+
+/***/ 512:
+/***/ function(module, exports) {
+
+	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticClass: ["wrapper"]
+	  }, [_c('div', {
+	    staticStyle: {
+	      width: "400px",
+	      height: "60px",
+	      backgroundColor: "#FFE4C4",
+	      boxShadow: "20px  10px rgb(255, 69, 0)"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      textAlign: "center"
+	    }
+	  }, [_vm._v("Hello " + _vm._s(_vm.target))])]), _c('div', {
+	    staticStyle: {
+	      marginTop: "80px",
+	      width: "400px",
+	      height: "60px",
+	      backgroundColor: "#FFE4C4",
+	      boxShadow: "20px  10px 5px rgba(255, 69, 0, 0.8)"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      textAlign: "center"
+	    }
+	  }, [_vm._v("Hello " + _vm._s(_vm.target))])]), _c('div', {
+	    staticStyle: {
+	      marginTop: "80px",
+	      width: "400px",
+	      height: "60px",
+	      backgroundColor: "#FFE4C4",
+	      boxShadow: "inset 20px  10px 5px rgba(255, 69, 0, 0.8)"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      textAlign: "center"
+	    }
+	  }, [_vm._v("Hello " + _vm._s(_vm.target))])]), _c('div', {
+	    staticStyle: {
+	      marginTop: "80px",
+	      width: "400px",
+	      height: "60px",
+	      backgroundColor: "#FFE4C4",
+	      boxShadow: "inset 20px  10px 5px rgb(255, 69, 0)"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      textAlign: "center"
+	    }
+	  }, [_vm._v("Hello " + _vm._s(_vm.target))])]), _c('div', {
+	    staticStyle: {
+	      marginTop: "80px",
+	      width: "400px",
+	      height: "60px",
+	      backgroundColor: "#FFE4C4",
+	      boxShadow: "20px  10px 5px black"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      textAlign: "center"
+	    }
+	  }, [_vm._v("Hello " + _vm._s(_vm.target))])]), _c('div', {
+	    staticStyle: {
+	      marginTop: "80px",
+	      width: "400px",
+	      height: "60px",
+	      backgroundColor: "#FFE4C4",
+	      boxShadow: "20px  10px 5px #008B00"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      textAlign: "center"
+	    }
+	  }, [_vm._v("Hello " + _vm._s(_vm.target))])])])
+	},staticRenderFns: []}
+	module.exports.render._withStripped = true
+
+/***/ }
+
+/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/showcase/calculator.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/showcase/calculator.js b/ios/playground/bundlejs/vue/showcase/calculator.js
index 1553415..287660b 100644
--- a/ios/playground/bundlejs/vue/showcase/calculator.js
+++ b/ios/playground/bundlejs/vue/showcase/calculator.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(489)
+	__vue_styles__.push(__webpack_require__(513)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(490)
+	__vue_exports__ = __webpack_require__(514)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(491)
+	var __vue_template__ = __webpack_require__(515)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/calculator.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/calculator.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4d170e8c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 489:
+/***/ 513:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -121,7 +125,7 @@
 
 /***/ },
 
-/***/ 490:
+/***/ 514:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -190,7 +194,7 @@
 	//
 
 	var OP = ['+', '-', '*', '/'];
-	var modal = __weex_require_module__('modal');
+	var modal = weex.requireModule('modal');
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -233,105 +237,105 @@
 
 /***/ },
 
-/***/ 491:
+/***/ 515:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticStyle: {
 	      padding: "5px"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["result"]
-	  }, [_vm._s(_vm.result)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.result))]), _c('div', {
 	    staticClass: ["row"]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["1"]), _h('text', {
+	  }, [_vm._v("1")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["2"]), _h('text', {
+	  }, [_vm._v("2")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["3"]), _h('text', {
+	  }, [_vm._v("3")]), _c('text', {
 	    staticClass: ["btn", "btn-operator"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["+"])]), _h('div', {
+	  }, [_vm._v("+")])]), _c('div', {
 	    staticClass: ["row"]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["4"]), _h('text', {
+	  }, [_vm._v("4")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["5"]), _h('text', {
+	  }, [_vm._v("5")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["6"]), _h('text', {
+	  }, [_vm._v("6")]), _c('text', {
 	    staticClass: ["btn", "btn-operator"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["-"])]), _h('div', {
+	  }, [_vm._v("-")])]), _c('div', {
 	    staticClass: ["row"]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["7"]), _h('text', {
+	  }, [_vm._v("7")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["8"]), _h('text', {
+	  }, [_vm._v("8")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["9"]), _h('text', {
+	  }, [_vm._v("9")]), _c('text', {
 	    staticClass: ["btn", "btn-operator"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["*"])]), _h('div', {
+	  }, [_vm._v("*")])]), _c('div', {
 	    staticClass: ["row"]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["0"]), _h('text', {
+	  }, [_vm._v("0")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.input
 	    }
-	  }, ["."]), _h('text', {
+	  }, [_vm._v(".")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.clear
 	    }
-	  }, ["AC"]), _h('text', {
+	  }, [_vm._v("AC")]), _c('text', {
 	    staticClass: ["btn", "btn-operator"],
 	    on: {
 	      "click": _vm.calculate
 	    }
-	  }, ["="])])])
+	  }, [_vm._v("=")])])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/showcase/itemlist.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/showcase/itemlist.js b/ios/playground/bundlejs/vue/showcase/itemlist.js
index d11ba81..132d962 100644
--- a/ios/playground/bundlejs/vue/showcase/itemlist.js
+++ b/ios/playground/bundlejs/vue/showcase/itemlist.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(492)
+	__vue_styles__.push(__webpack_require__(516)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(493)
+	__vue_exports__ = __webpack_require__(517)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(494)
+	var __vue_template__ = __webpack_require__(518)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/itemlist.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/itemlist.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-b34e9a8a"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 492:
+/***/ 516:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -156,7 +160,7 @@
 
 /***/ },
 
-/***/ 493:
+/***/ 517:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -380,7 +384,7 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
+	var modal = weex.requireModule('modal');
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -695,11 +699,11 @@
 
 /***/ },
 
-/***/ 494:
+/***/ 518:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('list', {
+	  return _c('list', {
 	    staticClass: ["list"],
 	    attrs: {
 	      "loadmoreoffset": "2000"
@@ -707,30 +711,32 @@
 	    on: {
 	      "loadmore": _vm.loadmore
 	    }
-	  }, [_vm._l((_vm.shopList), function(item) {
-	    return _h('cell', {
+	  }, _vm._l((_vm.shopList), function(item) {
+	    return _c('cell', {
 	      staticClass: ["cell"],
+	      appendAsTree: true,
 	      attrs: {
-	        "scope": item.scopeValue
+	        "scope": item.scopeValue,
+	        "append": "tree"
 	      },
 	      on: {
 	        "click": function($event) {
 	          _vm.oncellclick(item.id)
 	        }
 	      }
-	    }, [_h('div', {
+	    }, [_c('div', {
 	      staticClass: ["shopDiv"]
-	    }, [_h('div', {
+	    }, [_c('div', {
 	      staticClass: ["shopHeader"],
 	      staticStyle: {
 	        flexDirection: "row"
 	      }
-	    }, [_h('div', {
+	    }, [_c('div', {
 	      staticStyle: {
 	        flex: "2",
 	        flexDirection: "row"
 	      }
-	    }, [_h('div', [_h('image', {
+	    }, [_c('div', [_c('image', {
 	      staticStyle: {
 	        width: "60",
 	        height: "60"
@@ -738,57 +744,57 @@
 	      attrs: {
 	        "src": item.PersonPhoto
 	      }
-	    })]), _h('div', {
+	    })]), _c('div', {
 	      staticStyle: {
 	        flexDirection: "column",
 	        marginLeft: "5"
 	      }
-	    }, [_h('div', {
+	    }, [_c('div', {
 	      staticStyle: {
 	        marginTop: "5"
 	      }
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticStyle: {
 	        fontSize: "20"
 	      }
-	    }, [_vm._s(item.PersonName)])]), _h('div', {
+	    }, [_vm._v(_vm._s(item.PersonName))])]), _c('div', {
 	      staticStyle: {
 	        marginTop: "5"
 	      }
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticStyle: {
 	        fontSize: "20",
 	        color: "#cccccc"
 	      }
-	    }, [_vm._s(item.PersonVisitTime)])])])]), _vm._m(0, true)]), _h('div', {
+	    }, [_vm._v(_vm._s(item.PersonVisitTime))])])])]), _vm._m(0, true)]), _c('div', {
 	      staticClass: ["shopBody"],
 	      staticStyle: {
 	        flexDirection: "column"
 	      }
-	    }, [_h('div', {
+	    }, [_c('div', {
 	      staticClass: ["descDiv"],
 	      staticStyle: {
 	        marginTop: "10",
 	        marginLeft: "10"
 	      }
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticClass: ["shopDesc"],
 	      staticStyle: {
 	        fontSize: "25"
 	      }
-	    }, [_vm._s(item.shopDesc)])]), _h('div', {
+	    }, [_vm._v(_vm._s(item.shopDesc))])]), _c('div', {
 	      staticStyle: {
 	        flexDirection: "row"
 	      }
-	    }, [_vm._l((item.shopImgList), function(img) {
-	      return _h('div', {
+	    }, _vm._l((item.shopImgList), function(img) {
+	      return _c('div', {
 	        staticClass: ["imgDiv"],
 	        staticStyle: {
 	          flex: "1",
 	          flexDirection: "column",
 	          margin: "10"
 	        }
-	      }, [_h('div', [_h('image', {
+	      }, [_c('div', [_c('image', {
 	        staticClass: ["shopImg"],
 	        style: {
 	          width: img.shopImgWidth,
@@ -798,7 +804,7 @@
 	          "src": img.shopImg
 	        }
 	      })]), _vm._m(1, true)])
-	    })])]), _h('div', {
+	    }))]), _c('div', {
 	      staticClass: ["shopFooter"],
 	      staticStyle: {
 	        flexDirection: "row",
@@ -806,93 +812,93 @@
 	        marginLeft: "10",
 	        justifyContent: "flex-end"
 	      }
-	    }, [_h('div', {
+	    }, [_c('div', {
 	      staticStyle: {
 	        marginRight: "5"
 	      }
-	    }, [_h('image', {
+	    }, [_c('image', {
 	      staticClass: ["shopLikeImg", "smallImg"],
 	      attrs: {
 	        "src": item.shopLikeImg
 	      }
-	    })]), _h('div', {
+	    })]), _c('div', {
 	      staticStyle: {
 	        marginRight: "15"
 	      }
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticClass: ["shopLikeText"],
 	      staticStyle: {
 	        fontSize: "20"
 	      }
-	    }, [_vm._s(item.shopLikeText)])]), _h('div', {
+	    }, [_vm._v(_vm._s(item.shopLikeText))])]), _c('div', {
 	      staticStyle: {
 	        marginRight: "5"
 	      }
-	    }, [_h('image', {
+	    }, [_c('image', {
 	      staticClass: ["shopCommentImg", "smallImg"],
 	      attrs: {
 	        "src": item.shopCommentImg
 	      }
-	    })]), _h('div', {
+	    })]), _c('div', {
 	      staticStyle: {
 	        marginRight: "15"
 	      }
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticClass: ["shopCommentText"],
 	      staticStyle: {
 	        fontSize: "20"
 	      }
-	    }, [_vm._s(item.shopCommentText)])]), _h('div', {
+	    }, [_vm._v(_vm._s(item.shopCommentText))])]), _c('div', {
 	      staticStyle: {
 	        marginRight: "5"
 	      }
-	    }, [_h('image', {
+	    }, [_c('image', {
 	      staticClass: ["shopLookImg", "smallImg"],
 	      attrs: {
 	        "src": item.shopLookImg
 	      }
-	    })]), _h('div', {
+	    })]), _c('div', {
 	      staticStyle: {
 	        marginRight: "15"
 	      }
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticClass: ["shopLookText"],
 	      staticStyle: {
 	        fontSize: "20"
 	      }
-	    }, [_vm._s(item.shopLookText)])]), _h('div', {
+	    }, [_vm._v(_vm._s(item.shopLookText))])]), _c('div', {
 	      staticStyle: {
 	        marginRight: "5"
 	      }
-	    }, [_h('image', {
+	    }, [_c('image', {
 	      staticClass: ["shareImg", "smallImg"],
 	      attrs: {
 	        "src": item.shareImg
 	      }
-	    })]), _h('div', {
+	    })]), _c('div', {
 	      staticStyle: {
 	        marginRight: "20"
 	      }
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticClass: ["shareText"],
 	      staticStyle: {
 	        fontSize: "20"
 	      }
-	    }, [_vm._s(item.shareText)])])])])])
-	  })])
+	    }, [_vm._v(_vm._s(item.shareText))])])])])])
+	  }))
 	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticStyle: {
 	      flex: "5",
 	      flexDirection: "row"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticStyle: {
 	      flexDirection: "row",
 	      marginLeft: "10",
 	      marginTop: "10"
 	    }
-	  }, [_h('div', [_h('image', {
+	  }, [_c('div', [_c('image', {
 	    staticStyle: {
 	      width: "20",
 	      height: "20"
@@ -900,18 +906,18 @@
 	    attrs: {
 	      "src": "https://img.alicdn.com/tps/i4/TB1zkDeIFXXXXXrXVXX07tlTXXX-200-200.png_88x88xz.jpg"
 	    }
-	  })]), _h('div', [_h('text', {
+	  })]), _c('div', [_c('text', {
 	    staticStyle: {
 	      fontSize: "20"
 	    }
-	  }, ["Hope"])])]), _h('div', {
+	  }, [_vm._v("Hope")])])]), _c('div', {
 	    staticStyle: {
 	      position: "absolute",
 	      left: "90",
 	      top: "10",
 	      flexDirection: "row"
 	    }
-	  }, [_h('div', [_h('image', {
+	  }, [_c('div', [_c('image', {
 	    staticStyle: {
 	      width: "20",
 	      height: "20"
@@ -919,18 +925,18 @@
 	    attrs: {
 	      "src": "https://img.alicdn.com/tps/i2/TB1hRb1IXXXXXX3XVXXXQaP.pXX-87-87.jpeg"
 	    }
-	  })]), _h('div', [_h('text', {
+	  })]), _c('div', [_c('text', {
 	    staticStyle: {
 	      fontSize: "20"
 	    }
-	  }, ["Mem"])])]), _h('div', {
+	  }, [_vm._v("Mem")])])]), _c('div', {
 	    staticStyle: {
 	      position: "absolute",
 	      left: "170",
 	      top: "10",
 	      flexDirection: "row"
 	    }
-	  }, [_h('div', [_h('image', {
+	  }, [_c('div', [_c('image', {
 	    staticStyle: {
 	      width: "20",
 	      height: "20"
@@ -938,18 +944,18 @@
 	    attrs: {
 	      "src": "https://img.alicdn.com/tps/i3/TB1DGkJJFXXXXaZXFXX07tlTXXX-200-200.png"
 	    }
-	  })]), _h('div', [_h('text', {
+	  })]), _c('div', [_c('text', {
 	    staticStyle: {
 	      fontSize: "20"
 	    }
-	  }, ["auth"])])]), _h('div', {
+	  }, [_vm._v("auth")])])]), _c('div', {
 	    staticStyle: {
 	      position: "absolute",
 	      left: "250",
 	      top: "10",
 	      flexDirection: "row"
 	    }
-	  }, [_h('div', [_h('image', {
+	  }, [_c('div', [_c('image', {
 	    staticStyle: {
 	      width: "20",
 	      height: "20"
@@ -957,18 +963,18 @@
 	    attrs: {
 	      "src": "https://img.alicdn.com/tps/i1/TB1nFvPIXXXXXbUXXXXUAkPJpXX-87-87.png"
 	    }
-	  })]), _h('div', [_h('text', {
+	  })]), _c('div', [_c('text', {
 	    staticStyle: {
 	      fontSize: "20"
 	    }
-	  }, ["Friend"])])]), _h('div', {
+	  }, [_vm._v("Friend")])])]), _c('div', {
 	    staticStyle: {
 	      position: "absolute",
 	      left: "330",
 	      top: "10",
 	      flexDirection: "row"
 	    }
-	  }, [_h('div', [_h('image', {
+	  }, [_c('div', [_c('image', {
 	    staticStyle: {
 	      width: "20",
 	      height: "20"
@@ -976,18 +982,18 @@
 	    attrs: {
 	      "src": "https://img.alicdn.com/tps/i2/TB1CpD7IXXXXXbSXXXXUAkPJpXX-87-87.png"
 	    }
-	  })]), _h('div', [_h('text', {
+	  })]), _c('div', [_c('text', {
 	    staticStyle: {
 	      fontSize: "20"
 	    }
-	  }, ["issue"])])]), _h('div', {
+	  }, [_vm._v("issue")])])]), _c('div', {
 	    staticStyle: {
 	      position: "absolute",
 	      left: "410",
 	      top: "10",
 	      flexDirection: "row"
 	    }
-	  }, [_h('div', [_h('image', {
+	  }, [_c('div', [_c('image', {
 	    staticStyle: {
 	      width: "20",
 	      height: "20"
@@ -995,25 +1001,25 @@
 	    attrs: {
 	      "src": "https://gtms02.alicdn.com/tps/i2/TB11ZZfIVXXXXbMXFXXEDhGGXXX-32-32.png"
 	    }
-	  })]), _h('div', [_h('text', {
+	  })]), _c('div', [_c('text', {
 	    staticStyle: {
 	      fontSize: "20"
 	    }
-	  }, ["super"])])])])
+	  }, [_vm._v("super")])])])])
 	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticStyle: {
 	      flex: "1",
 	      marginTop: "10",
 	      flexDirection: "row"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticStyle: {
 	      flex: "1",
 	      justifyContent: "center",
 	      flexDirection: "row"
 	    }
-	  }, [_h('div', [_h('image', {
+	  }, [_c('div', [_c('image', {
 	    staticStyle: {
 	      width: "20",
 	      height: "20"
@@ -1021,22 +1027,22 @@
 	    attrs: {
 	      "src": "https://img.alicdn.com/tps/i1/TB1nFvPIXXXXXbUXXXXUAkPJpXX-87-87.png"
 	    }
-	  })]), _h('div', {
+	  })]), _c('div', {
 	    staticStyle: {
 	      marginLeft: "5"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticStyle: {
 	      fontSize: "20",
 	      textAlign: "center"
 	    }
-	  }, ["Up"])])]), _h('div', {
+	  }, [_vm._v("Up")])])]), _c('div', {
 	    staticStyle: {
 	      flex: "1",
 	      justifyContent: "center",
 	      flexDirection: "row"
 	    }
-	  }, [_h('div', [_h('image', {
+	  }, [_c('div', [_c('image', {
 	    staticStyle: {
 	      width: "20",
 	      height: "20"
@@ -1044,16 +1050,16 @@
 	    attrs: {
 	      "src": "https://img.alicdn.com/tps/i2/TB1CpD7IXXXXXbSXXXXUAkPJpXX-87-87.png"
 	    }
-	  })]), _h('div', {
+	  })]), _c('div', {
 	    staticStyle: {
 	      marginLeft: "5"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticStyle: {
 	      fontSize: "20",
 	      textAlign: "center"
 	    }
-	  }, ["down"])])])])
+	  }, [_vm._v("down")])])])])
 	}]}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/showcase/new-fashion.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/showcase/new-fashion.js b/ios/playground/bundlejs/vue/showcase/new-fashion.js
index ce13f82..9e22dc0 100644
--- a/ios/playground/bundlejs/vue/showcase/new-fashion.js
+++ b/ios/playground/bundlejs/vue/showcase/new-fashion.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(495)
+	__vue_styles__.push(__webpack_require__(519)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(496)
+	__vue_exports__ = __webpack_require__(520)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(538)
+	var __vue_template__ = __webpack_require__(562)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/new-fashion.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/new-fashion.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-706c7bf1"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 495:
+/***/ 519:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -112,7 +116,7 @@
 
 /***/ },
 
-/***/ 496:
+/***/ 520:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -159,19 +163,19 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
-	var timer = __weex_require_module__('timer');
+	var modal = weex.requireModule('modal');
+	var timer = weex.requireModule('timer');
 
 	module.exports = {
 	  components: {
-	    headlines: __webpack_require__(497),
-	    category: __webpack_require__(510),
-	    coupon: __webpack_require__(514),
-	    goods: __webpack_require__(518),
-	    resource: __webpack_require__(522),
-	    scene: __webpack_require__(526),
-	    match: __webpack_require__(530),
-	    brand: __webpack_require__(534)
+	    headlines: __webpack_require__(521),
+	    category: __webpack_require__(534),
+	    coupon: __webpack_require__(538),
+	    goods: __webpack_require__(542),
+	    resource: __webpack_require__(546),
+	    scene: __webpack_require__(550),
+	    match: __webpack_require__(554),
+	    brand: __webpack_require__(558)
 	  },
 	  data: {
 	    navBarHeight: 88,
@@ -683,21 +687,21 @@
 
 /***/ },
 
-/***/ 497:
+/***/ 521:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(498)
+	__vue_styles__.push(__webpack_require__(522)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(499)
+	__vue_exports__ = __webpack_require__(523)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(509)
+	var __vue_template__ = __webpack_require__(533)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -709,22 +713,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/headlines.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/headlines.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-49775644"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 498:
+/***/ 522:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -780,7 +788,7 @@
 
 /***/ },
 
-/***/ 499:
+/***/ 523:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -860,8 +868,8 @@
 
 	module.exports = {
 	  components: {
-	    link: __webpack_require__(500),
-	    banners: __webpack_require__(503)
+	    link: __webpack_require__(524),
+	    banners: __webpack_require__(527)
 	  },
 	  props: {
 	    ds: {
@@ -881,17 +889,17 @@
 
 /***/ },
 
-/***/ 500:
+/***/ 524:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(501)
+	__vue_exports__ = __webpack_require__(525)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(502)
+	var __vue_template__ = __webpack_require__(526)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -903,22 +911,25 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/link.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/link.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 501:
+/***/ 525:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -927,7 +938,7 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
+	var modal = weex.requireModule('modal');
 	module.exports = {
 	  props: ['text', 'href'],
 	  methods: {
@@ -942,31 +953,31 @@
 
 /***/ },
 
-/***/ 502:
+/***/ 526:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('text', {
+	  return _c('text', {
 	    on: {
 	      "click": _vm.clickHandler
 	    }
-	  }, [_vm._s(_vm.text)])
+	  }, [_vm._v(_vm._s(_vm.text))])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 503:
+/***/ 527:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(504)
+	__vue_exports__ = __webpack_require__(528)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(508)
+	var __vue_template__ = __webpack_require__(532)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -978,22 +989,25 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/banners.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/banners.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 504:
+/***/ 528:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -1015,24 +1029,24 @@
 
 	module.exports = {
 	  components: {
-	    banner: __webpack_require__(505)
+	    banner: __webpack_require__(529)
 	  },
 	  props: ['ds', 'width', 'height', 'space', 'direction']
 	};
 
 /***/ },
 
-/***/ 505:
+/***/ 529:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(506)
+	__vue_exports__ = __webpack_require__(530)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(507)
+	var __vue_template__ = __webpack_require__(531)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -1044,22 +1058,25 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/banner.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/banner.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 506:
+/***/ 530:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -1069,7 +1086,7 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
+	var modal = weex.requireModule('modal');
 	module.exports = {
 	  props: ['width', 'height', 'src', 'href'],
 	  data: function data() {
@@ -1089,18 +1106,18 @@
 
 /***/ },
 
-/***/ 507:
+/***/ 531:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('image', {
+	  return _c('image', {
 	    style: {
 	      width: _vm.width,
 	      height: _vm.height
 	    },
 	    attrs: {
 	      "src": _vm.src,
-	      "image-quality": _vm.quality
+	      "imageQuality": _vm.quality
 	    },
 	    on: {
 	      "click": _vm.clickHandler
@@ -1111,64 +1128,64 @@
 
 /***/ },
 
-/***/ 508:
+/***/ 532:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [(_vm.direction === 'row') ? _h('div', {
+	  return _c('div', [(_vm.direction === 'row') ? _c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_vm._l((_vm.ds), function(i, item) {
-	    return _h('div', {
+	  }, _vm._l((_vm.ds), function(i, item) {
+	    return _c('div', {
 	      style: {
 	        width: _vm.width,
 	        height: _vm.height,
 	        marginLeft: (i % _vm.ds.length ? _vm.space : 0)
 	      }
-	    }, [_h('banner', {
+	    }, [_c('banner', {
 	      attrs: {
 	        "width": _vm.width,
 	        "height": _vm.height,
 	        "src": item.img,
 	        "href": item.url
 	      }
-	    })])
-	  })]) : _vm._e(), (_vm.direction === 'column') ? _h('div', [_vm._l((_vm.ds), function(i, item) {
-	    return _h('div', {
+	    })], 1)
+	  })) : _vm._e(), (_vm.direction === 'column') ? _c('div', _vm._l((_vm.ds), function(i, item) {
+	    return _c('div', {
 	      style: {
 	        width: _vm.width,
 	        height: _vm.height,
 	        marginTop: (i % _vm.ds.length ? _vm.space : 0)
 	      }
-	    }, [_h('banner', {
+	    }, [_c('banner', {
 	      attrs: {
 	        "width": _vm.width,
 	        "height": _vm.height,
 	        "src": item.img,
 	        "href": item.url
 	      }
-	    })])
-	  })]) : _vm._e()])
+	    })], 1)
+	  })) : _vm._e()])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 509:
+/***/ 533:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["container"]
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["banner"],
 	    attrs: {
 	      "src": _vm.ds.topBanner
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticClass: ["rule-container"]
-	  }, [_h('link', {
+	  }, [_c('link', {
 	    staticStyle: {
 	      fontSize: "22px",
 	      color: "#ffffff",
@@ -1178,14 +1195,14 @@
 	      "text": "\u5e2e\u52a9",
 	      "href": _vm.ds.ruleLink
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["announce"]
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["announce-hd"],
 	    attrs: {
 	      "src": _vm.ds.announceHdBanner
 	    }
-	  }), _h('banners', {
+	  }), _c('banners', {
 	    staticStyle: {
 	      marginLeft: "6",
 	      marginRight: "6"
@@ -1197,27 +1214,27 @@
 	      "height": _vm.NUMBER_172,
 	      "space": _vm.NUMBER_3
 	    }
-	  })])])
+	  })], 1)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 510:
+/***/ 534:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(511)
+	__vue_styles__.push(__webpack_require__(535)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(512)
+	__vue_exports__ = __webpack_require__(536)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(513)
+	var __vue_template__ = __webpack_require__(537)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -1229,22 +1246,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/category.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/category.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-fee419e2"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 511:
+/***/ 535:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -1292,7 +1313,7 @@
 
 /***/ },
 
-/***/ 512:
+/***/ 536:
 /***/ function(module, exports, __webpack_require__) {
 
 	"use strict";
@@ -1770,7 +1791,7 @@
 
 	module.exports = {
 	  components: {
-	    banner: __webpack_require__(505)
+	    banner: __webpack_require__(529)
 	  },
 	  props: {
 	    ds: {
@@ -1812,105 +1833,105 @@
 
 /***/ },
 
-/***/ 513:
+/***/ 537:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [(_vm.ds.floorTitle) ? _h('image', {
+	  return _c('div', [(_vm.ds.floorTitle) ? _c('image', {
 	    staticClass: ["title"],
 	    attrs: {
 	      "src": _vm.ds.floorTitle
 	    }
-	  }) : _vm._e(), _h('div', {
+	  }) : _vm._e(), _c('div', {
 	    staticClass: ["item-container"]
-	  }, [_vm._l((_vm.items), function(i, item) {
-	    return _h('div', {
+	  }, _vm._l((_vm.items), function(i, item) {
+	    return _c('div', {
 	      style: {
 	        width: 750,
 	        paddingBottom: 14,
 	        backgroundColor: item.colour
 	      }
-	    }, [_h('div', [_h('banner', {
+	    }, [_c('div', [_c('banner', {
 	      attrs: {
 	        "width": _vm.NUMBER_750,
 	        "height": _vm.NUMBER_237,
 	        "src": i % 2 === 0 ? item.leftBannerImg : item.rightBannerImg,
 	        "href": item.bannerUrl
 	      }
-	    })]), _h('div', {
+	    })], 1), _c('div', {
 	      staticClass: ["shop-list"]
-	    }, [_vm._l((item.shopList), function(shop) {
-	      return _h('div', {
+	    }, _vm._l((item.shopList), function(shop) {
+	      return _c('div', {
 	        staticClass: ["shop-img-container"]
-	      }, [_h('banner', {
+	      }, [_c('banner', {
 	        attrs: {
 	          "width": _vm.NUMBER_186,
 	          "height": _vm.NUMBER_208,
 	          "src": shop.picUrl,
 	          "href": shop.shopUrl
 	        }
-	      })])
-	    })])])
-	  })]), _h('div', {
+	      })], 1)
+	    }))])
+	  })), _c('div', {
 	    staticClass: ["sub-item-container"],
 	    style: {
 	      height: Math.round(_vm.subItems.length / 3) * (241 + 3)
 	    }
-	  }, [_vm._l((_vm.subItems), function(i, item) {
-	    return _h('div', {
+	  }, _vm._l((_vm.subItems), function(i, item) {
+	    return _c('div', {
 	      staticClass: ["sub-item"],
 	      style: {
 	        top: _vm.getSubItemTop(i),
 	        left: _vm.getSubItemLeft(i)
 	      }
-	    }, [_h('image', {
+	    }, [_c('image', {
 	      staticClass: ["sub-item-bg"],
 	      attrs: {
 	        "src": _vm.subItemBg
 	      }
-	    }), _h('div', {
+	    }), _c('div', {
 	      staticClass: ["sub-item-img"]
-	    }, [_h('banner', {
+	    }, [_c('banner', {
 	      attrs: {
 	        "width": _vm.NUMBER_248,
 	        "height": _vm.NUMBER_155,
 	        "src": item.industryImg,
 	        "href": item.industryUrl
 	      }
-	    })]), _h('div', {
+	    })], 1), _c('div', {
 	      staticClass: ["sub-item-title"]
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticClass: ["industry-title"],
 	      attrs: {
 	        "href": item.industryUrl
 	      }
-	    }, [_vm._s(item.industryTitle)]), _h('text', {
+	    }, [_vm._v(_vm._s(item.industryTitle))]), _c('text', {
 	      staticClass: ["industry-benefit"],
 	      attrs: {
 	        "href": item.industryUrl
 	      }
-	    }, [_vm._s(item.industryBenefit)])])])
-	  })])])
+	    }, [_vm._v(_vm._s(item.industryBenefit))])])])
+	  }))])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 514:
+/***/ 538:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(515)
+	__vue_styles__.push(__webpack_require__(539)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(516)
+	__vue_exports__ = __webpack_require__(540)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(517)
+	var __vue_template__ = __webpack_require__(541)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -1922,22 +1943,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/coupon.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/coupon.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-f32ef712"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 515:
+/***/ 539:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -1985,7 +2010,7 @@
 
 /***/ },
 
-/***/ 516:
+/***/ 540:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -2051,7 +2076,7 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
+	var modal = weex.requireModule('modal');
 	module.exports = {
 	  props: {
 	    ds: {
@@ -2077,33 +2102,33 @@
 
 /***/ },
 
-/***/ 517:
+/***/ 541:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [(_vm.ds.floorTitle) ? _h('image', {
+	  return _c('div', [(_vm.ds.floorTitle) ? _c('image', {
 	    staticClass: ["title"],
 	    attrs: {
 	      "src": _vm.ds.floorTitle
 	    }
-	  }) : _vm._e(), _h('div', {
+	  }) : _vm._e(), _c('div', {
 	    staticClass: ["wrapper"]
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["img"],
 	    attrs: {
 	      "src": _vm.currentStatus
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticClass: ["my-coupon"],
 	    on: {
 	      "click": _vm.handleClick
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticClass: ["guides"],
 	    on: {
 	      "click": _vm.handleClick
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticClass: ["lottery"],
 	    on: {
 	      "click": _vm.handleClick
@@ -2114,21 +2139,21 @@
 
 /***/ },
 
-/***/ 518:
+/***/ 542:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(519)
+	__vue_styles__.push(__webpack_require__(543)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(520)
+	__vue_exports__ = __webpack_require__(544)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(521)
+	var __vue_template__ = __webpack_require__(545)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -2140,22 +2165,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/goods.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/goods.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-3ac791d6"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 519:
+/***/ 543:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2181,7 +2210,7 @@
 
 /***/ },
 
-/***/ 520:
+/***/ 544:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -2236,7 +2265,7 @@
 
 	module.exports = {
 	  components: {
-	    banner: __webpack_require__(505)
+	    banner: __webpack_require__(529)
 	  },
 	  props: {
 	    ds: {
@@ -2257,26 +2286,26 @@
 
 /***/ },
 
-/***/ 521:
+/***/ 545:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return (!_vm.ds.isHide) ? _h('div', [(_vm.ds.floorTitle) ? _h('image', {
+	  return (!_vm.ds.isHide) ? _c('div', [(_vm.ds.floorTitle) ? _c('image', {
 	    staticClass: ["title"],
 	    attrs: {
 	      "src": _vm.ds.floorTitle
 	    }
-	  }) : _vm._e(), _h('slider', {
+	  }) : _vm._e(), _c('slider', {
 	    staticClass: ["slider"],
 	    attrs: {
-	      "show-indicators": "true",
-	      "auto-play": "true",
+	      "showIndicators": "true",
+	      "autoPlay": "true",
 	      "interval": "3000"
 	    }
 	  }, [_vm._l((_vm.ds.bannerItems), function(item) {
-	    return _h('div', {
+	    return _c('div', {
 	      staticClass: ["pannel"]
-	    }, [_h('div', [_h('banner', {
+	    }, [_c('div', [_c('banner', {
 	      staticStyle: {
 	        marginBottom: "4"
 	      },
@@ -2286,23 +2315,23 @@
 	        "src": item.img1,
 	        "href": item.url1
 	      }
-	    }), _h('banner', {
+	    }), _c('banner', {
 	      attrs: {
 	        "width": _vm.NUMBER_251,
 	        "height": _vm.NUMBER_292,
 	        "src": item.img2,
 	        "href": item.url2
 	      }
-	    })]), _h('div', {
+	    })], 1), _c('div', {
 	      staticClass: ["middle-col"]
-	    }, [_h('banner', {
+	    }, [_c('banner', {
 	      attrs: {
 	        "width": _vm.NUMBER_240,
 	        "height": _vm.NUMBER_588,
 	        "src": item.img3,
 	        "href": item.url3
 	      }
-	    })]), _h('div', [_h('banner', {
+	    })], 1), _c('div', [_c('banner', {
 	      staticStyle: {
 	        marginBottom: "4"
 	      },
@@ -2312,15 +2341,15 @@
 	        "src": item.img4,
 	        "href": item.url4
 	      }
-	    }), _h('banner', {
+	    }), _c('banner', {
 	      attrs: {
 	        "width": _vm.NUMBER_251,
 	        "height": _vm.NUMBER_292,
 	        "src": item.img5,
 	        "href": item.url5
 	      }
-	    })])])
-	  }), _h('indicator', {
+	    })], 1)])
+	  }), _c('indicator', {
 	    staticStyle: {
 	      position: "absolute",
 	      width: "714",
@@ -2331,27 +2360,27 @@
 	      itemColor: "#999999",
 	      itemSelectedColor: "#000000"
 	    }
-	  })])]) : _vm._e()
+	  })], 2)]) : _vm._e()
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 522:
+/***/ 546:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(523)
+	__vue_styles__.push(__webpack_require__(547)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(524)
+	__vue_exports__ = __webpack_require__(548)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(525)
+	var __vue_template__ = __webpack_require__(549)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -2363,22 +2392,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/resource.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/resource.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-503cf21f"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 523:
+/***/ 547:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2393,7 +2426,7 @@
 
 /***/ },
 
-/***/ 524:
+/***/ 548:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -2420,8 +2453,8 @@
 
 	module.exports = {
 	  components: {
-	    banners: __webpack_require__(503),
-	    banner: __webpack_require__(505)
+	    banners: __webpack_require__(527),
+	    banner: __webpack_require__(529)
 	  },
 	  props: {
 	    ds: {
@@ -2443,20 +2476,20 @@
 
 /***/ },
 
-/***/ 525:
+/***/ 549:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return (!_vm.ds.isHide) ? _h('div', [_h('div', {
+	  return (!_vm.ds.isHide) ? _c('div', [_c('div', {
 	    staticClass: ["big-banner-container"]
-	  }, [_h('banner', {
+	  }, [_c('banner', {
 	    attrs: {
 	      "width": _vm.NUMBER_750,
 	      "height": _vm.NUMBER_200,
 	      "src": _vm.ds.bigBannerImg,
 	      "href": _vm.ds.bigBannerUrl
 	    }
-	  })]), _h('banners', {
+	  })], 1), _c('banners', {
 	    attrs: {
 	      "direction": "row",
 	      "ds": _vm.ds.smallBannerItems,
@@ -2464,27 +2497,27 @@
 	      "height": _vm.NUMBER_224,
 	      "space": _vm.NUMBER_4
 	    }
-	  })]) : _vm._e()
+	  })], 1) : _vm._e()
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 526:
+/***/ 550:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(527)
+	__vue_styles__.push(__webpack_require__(551)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(528)
+	__vue_exports__ = __webpack_require__(552)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(529)
+	var __vue_template__ = __webpack_require__(553)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -2496,22 +2529,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/scene.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/scene.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-12dfa56a"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 527:
+/***/ 551:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2571,7 +2608,7 @@
 
 /***/ },
 
-/***/ 528:
+/***/ 552:
 /***/ function(module, exports, __webpack_require__) {
 
 	"use strict";
@@ -2815,7 +2852,7 @@
 
 	module.exports = {
 	  components: {
-	    banner: __webpack_require__(505)
+	    banner: __webpack_require__(529)
 	  },
 	  props: {
 	    ds: {
@@ -2857,72 +2894,72 @@
 
 /***/ },
 
-/***/ 529:
+/***/ 553:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [(_vm.ds.floorTitle) ? _h('image', {
+	  return _c('div', [(_vm.ds.floorTitle) ? _c('image', {
 	    staticClass: ["title"],
 	    attrs: {
 	      "src": _vm.ds.floorTitle
 	    }
-	  }) : _vm._e(), _h('div', {
+	  }) : _vm._e(), _c('div', {
 	    staticClass: ["small-item-container"],
 	    style: {
 	      height: Math.round(_vm.smallItems.length / 2) * 234
 	    }
-	  }, [_vm._l((_vm.smallItems), function(i, item) {
-	    return _h('div', {
+	  }, _vm._l((_vm.smallItems), function(i, item) {
+	    return _c('div', {
 	      staticClass: ["small-item"],
 	      style: {
 	        top: _vm.getItemTop(i),
 	        left: _vm.getItemLeft(i)
 	      }
-	    }, [_h('div', [_h('image', {
+	    }, [_c('div', [_c('image', {
 	      staticClass: ["small-item-bg"],
 	      attrs: {
 	        "src": _vm.smallItemBg
 	      }
-	    })]), _h('div', {
+	    })]), _c('div', {
 	      staticClass: ["small-item-img"]
-	    }, [_h('banner', {
+	    }, [_c('banner', {
 	      attrs: {
 	        "width": _vm.NUMBER_186,
 	        "height": _vm.NUMBER_206,
 	        "src": item.itemImg,
 	        "href": item.sceneUrl
 	      }
-	    })]), _h('div', {
+	    })], 1), _c('div', {
 	      staticClass: ["small-benifit-img"]
-	    }, [_h('banner', {
+	    }, [_c('banner', {
 	      attrs: {
 	        "width": _vm.NUMBER_170,
 	        "height": _vm.NUMBER_100,
 	        "src": item.benefitImg,
 	        "href": item.sceneUrl
 	      }
-	    })])])
-	  })])])
+	    })], 1)])
+	  }))])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 530:
+/***/ 554:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(531)
+	__vue_styles__.push(__webpack_require__(555)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(532)
+	__vue_exports__ = __webpack_require__(556)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(533)
+	var __vue_template__ = __webpack_require__(557)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -2934,22 +2971,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/match.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/match.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-97d4abf8"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 531:
+/***/ 555:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2964,7 +3005,7 @@
 
 /***/ },
 
-/***/ 532:
+/***/ 556:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -2999,7 +3040,7 @@
 
 	module.exports = {
 	  components: {
-	    banner: __webpack_require__(505)
+	    banner: __webpack_require__(529)
 	  },
 	  props: {
 	    ds: {
@@ -3021,70 +3062,70 @@
 
 /***/ },
 
-/***/ 533:
+/***/ 557:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [(_vm.ds.floorTitle) ? _h('image', {
+	  return _c('div', [(_vm.ds.floorTitle) ? _c('image', {
 	    staticClass: ["title"],
 	    attrs: {
 	      "src": _vm.ds.floorTitle
 	    }
-	  }) : _vm._e(), (_vm.ds.isShowTmSpecBanner && _vm.ds.tmSpecBanner) ? _h('div', {
+	  }) : _vm._e(), (_vm.ds.isShowTmSpecBanner && _vm.ds.tmSpecBanner) ? _c('div', {
 	    staticClass: ["tm-banner"]
-	  }, [_h('banner', {
+	  }, [_c('banner', {
 	    attrs: {
 	      "width": _vm.NUMBER_750,
 	      "height": _vm.NUMBER_200,
 	      "src": _vm.ds.tmSpecBanner.img,
 	      "href": _vm.ds.tmSpecBanner.url
 	    }
-	  })]) : _vm._e(), _vm._l((_vm.ds.bannerItems), function(item) {
-	    return _h('div', {
+	  })], 1) : _vm._e(), _vm._l((_vm.ds.bannerItems), function(item) {
+	    return _c('div', {
 	      style: {
 	        flexDirection: 'row',
 	        marginBottom: _vm.NUMBER_4
 	      }
-	    }, [_h('div', {
+	    }, [_c('div', {
 	      style: {
 	        marginRight: _vm.NUMBER_4
 	      }
-	    }, [_h('banner', {
+	    }, [_c('banner', {
 	      attrs: {
 	        "width": _vm.NUMBER_373,
 	        "height": _vm.NUMBER_240,
 	        "src": item.leftImg,
 	        "href": item.leftUrl
 	      }
-	    })]), _h('div', [_h('banner', {
+	    })], 1), _c('div', [_c('banner', {
 	      attrs: {
 	        "width": _vm.NUMBER_373,
 	        "height": _vm.NUMBER_240,
 	        "src": item.rightImg,
 	        "href": item.rightUrl
 	      }
-	    })])])
-	  })])
+	    })], 1)])
+	  })], 2)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 534:
+/***/ 558:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(535)
+	__vue_styles__.push(__webpack_require__(559)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(536)
+	__vue_exports__ = __webpack_require__(560)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(537)
+	var __vue_template__ = __webpack_require__(561)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -3096,22 +3137,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/include/brand.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/include/brand.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-608f6ac6"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 535:
+/***/ 559:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3127,7 +3172,7 @@
 
 /***/ },
 
-/***/ 536:
+/***/ 560:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -3154,7 +3199,7 @@
 
 	module.exports = {
 	  components: {
-	    banners: __webpack_require__(503)
+	    banners: __webpack_require__(527)
 	  },
 	  props: {
 	    ds: {
@@ -3197,23 +3242,23 @@
 
 /***/ },
 
-/***/ 537:
+/***/ 561:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["container"]
-	  }, [(_vm.ds.floorTitle) ? _h('image', {
+	  }, [(_vm.ds.floorTitle) ? _c('image', {
 	    staticClass: ["title"],
 	    attrs: {
 	      "src": _vm.ds.floorTitle
 	    }
-	  }) : _vm._e(), _h('div', {
+	  }) : _vm._e(), _c('div', {
 	    staticStyle: {
 	      marginLeft: "4",
 	      marginRight: "4"
 	    }
-	  }, [_h('banners', {
+	  }, [_c('banners', {
 	    attrs: {
 	      "direction": "column",
 	      "ds": _vm.bannerItems,
@@ -3221,19 +3266,19 @@
 	      "height": _vm.NUMBER_230,
 	      "space": _vm.NUMBER_4
 	    }
-	  })])])
+	  })], 1)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 538:
+/***/ 562:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', {
+	  return _c('scroller', {
 	    staticClass: ["content"]
-	  }, [_h('refresh', {
+	  }, [_c('refresh', {
 	    staticClass: ["refresh"],
 	    staticStyle: {
 	      flexDirection: "row"
@@ -3244,44 +3289,44 @@
 	    on: {
 	      "refresh": _vm.handleRefresh
 	    }
-	  }, [_h('loading-indicator'), _h('text', {
+	  }, [_c('loading-indicator'), _c('text', {
 	    staticStyle: {
 	      marginLeft: "36px",
 	      color: "#eee"
 	    }
-	  }, ["\u4e0b\u62c9\u5237\u65b0..."])]), (_vm.show0) ? _h('headlines', {
+	  }, [_vm._v("\u4e0b\u62c9\u5237\u65b0...")])], 1), (_vm.show0) ? _c('headlines', {
 	    attrs: {
 	      "ds": _vm.showData.header
 	    }
-	  }) : _vm._e(), (_vm.show0) ? _h('category', {
+	  }) : _vm._e(), (_vm.show0) ? _c('category', {
 	    attrs: {
 	      "ds": _vm.showData.category
 	    }
-	  }) : _vm._e(), (_vm.show1) ? _h('coupon', {
+	  }) : _vm._e(), (_vm.show1) ? _c('coupon', {
 	    attrs: {
 	      "ds": _vm.showData.coupon
 	    }
-	  }) : _vm._e(), (_vm.show1) ? _h('goods', {
+	  }) : _vm._e(), (_vm.show1) ? _c('goods', {
 	    attrs: {
 	      "ds": _vm.showData.goods
 	    }
-	  }) : _vm._e(), (_vm.show1) ? _h('resource', {
+	  }) : _vm._e(), (_vm.show1) ? _c('resource', {
 	    attrs: {
 	      "ds": _vm.showData.resource
 	    }
-	  }) : _vm._e(), (_vm.show1) ? _h('scene', {
+	  }) : _vm._e(), (_vm.show1) ? _c('scene', {
 	    attrs: {
 	      "ds": _vm.showData.scene
 	    }
-	  }) : _vm._e(), (_vm.show2) ? _h('match', {
+	  }) : _vm._e(), (_vm.show2) ? _c('match', {
 	    attrs: {
 	      "ds": _vm.showData.match
 	    }
-	  }) : _vm._e(), (_vm.show2) ? _h('brand', {
+	  }) : _vm._e(), (_vm.show2) ? _c('brand', {
 	    attrs: {
 	      "ds": _vm.showData.brand
 	    }
-	  }) : _vm._e(), _h('loading', {
+	  }) : _vm._e(), _c('loading', {
 	    staticClass: ["loading"],
 	    attrs: {
 	      "display": _vm.displayLoading
@@ -3289,11 +3334,11 @@
 	    on: {
 	      "loading": _vm.handleLoading
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticStyle: {
 	      color: "#eee"
 	    }
-	  }, ["\u52a0\u8f7d\u66f4\u591a..."])])])
+	  }, [_vm._v("\u52a0\u8f7d\u66f4\u591a...")])])], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 



[37/50] [abbrv] incubator-weex git commit: Merge branch 'html5-feature-vue-render' of https://github.com/MrRaindrop/weex into html5-feature-vue-render

Posted by so...@apache.org.
Merge branch 'html5-feature-vue-render' of https://github.com/MrRaindrop/weex into html5-feature-vue-render


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

Branch: refs/heads/dev
Commit: 15f10e65c840f832f5aea9a19c3b4f291cb8f8e2
Parents: 85041f5 2784187
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Mar 30 15:40:04 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Mar 30 15:40:04 2017 +0800

----------------------------------------------------------------------

----------------------------------------------------------------------



[13/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/countdown.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/countdown.js b/ios/playground/bundlejs/vue/components/countdown.js
index db16c98..028c02c 100644
--- a/ios/playground/bundlejs/vue/components/countdown.js
+++ b/ios/playground/bundlejs/vue/components/countdown.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(396)
+	__vue_styles__.push(__webpack_require__(414)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(397)
+	__vue_exports__ = __webpack_require__(415)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(402)
+	var __vue_template__ = __webpack_require__(420)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/countdown.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/countdown.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-58fe9bc0"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,21 +91,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -113,22 +117,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -182,7 +190,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -227,16 +235,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -244,7 +252,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -252,13 +260,13 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 396:
+/***/ 414:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -288,7 +296,7 @@
 
 /***/ },
 
-/***/ 397:
+/***/ 415:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -371,8 +379,8 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    countdown: __webpack_require__(398)
+	    panel: __webpack_require__(399),
+	    countdown: __webpack_require__(416)
 	  },
 	  methods: {
 	    tick: function tick(e, k) {
@@ -383,21 +391,21 @@
 
 /***/ },
 
-/***/ 398:
+/***/ 416:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(399)
+	__vue_styles__.push(__webpack_require__(417)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(400)
+	__vue_exports__ = __webpack_require__(418)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(401)
+	var __vue_template__ = __webpack_require__(419)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -409,22 +417,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/countdown.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/countdown.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-20c26e72"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 399:
+/***/ 417:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -435,7 +447,7 @@
 
 /***/ },
 
-/***/ 400:
+/***/ 418:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -535,11 +547,11 @@
 
 /***/ },
 
-/***/ 401:
+/***/ 419:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticStyle: {
 	      overflow: "hidden",
 	      flexDirection: "row"
@@ -548,22 +560,22 @@
 	      "appear": _vm.appeared,
 	      "disappear": _vm.disappeared
 	    }
-	  }, [_vm._t("default")])
+	  }, [_vm._t("default")], 2)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 402:
+/***/ 420:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "Countdown",
 	      "type": "primary"
 	    }
-	  }, [_h('countdown', {
+	  }, [_c('countdown', {
 	    staticStyle: {
 	      width: "750",
 	      marginTop: "20",
@@ -577,39 +589,39 @@
 	        _vm.tick($event, 'countdown1')
 	      }
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["ctno1"]
-	  }, [_vm._s(_vm.countdown1.time.D)]), _h('text', {
+	  }, [_vm._v(_vm._s(_vm.countdown1.time.D))]), _c('text', {
 	    staticClass: ["ctno1"],
 	    staticStyle: {
 	      backgroundColor: "#FFFFFF",
 	      color: "#AAAAAA"
 	    }
-	  }, ["day(s)"]), _h('text', {
+	  }, [_vm._v("day(s)")]), _c('text', {
 	    staticClass: ["ctno1"]
-	  }, [_vm._s(_vm.countdown1.time.hh)]), _h('text', {
+	  }, [_vm._v(_vm._s(_vm.countdown1.time.hh))]), _c('text', {
 	    staticClass: ["ctno1"],
 	    staticStyle: {
 	      backgroundColor: "#FFFFFF",
 	      color: "#AAAAAA"
 	    }
-	  }, ["hour(s)"]), _h('text', {
+	  }, [_vm._v("hour(s)")]), _c('text', {
 	    staticClass: ["ctno1"]
-	  }, [_vm._s(_vm.countdown1.time.mm)]), _h('text', {
+	  }, [_vm._v(_vm._s(_vm.countdown1.time.mm))]), _c('text', {
 	    staticClass: ["ctno1"],
 	    staticStyle: {
 	      backgroundColor: "#FFFFFF",
 	      color: "#AAAAAA"
 	    }
-	  }, ["minute(s)"]), _h('text', {
+	  }, [_vm._v("minute(s)")]), _c('text', {
 	    staticClass: ["ctno1"]
-	  }, [_vm._s(_vm.countdown1.time.ss)]), _h('text', {
+	  }, [_vm._v(_vm._s(_vm.countdown1.time.ss))]), _c('text', {
 	    staticClass: ["ctno1"],
 	    staticStyle: {
 	      backgroundColor: "#FFFFFF",
 	      color: "#AAAAAA"
 	    }
-	  }, ["second(s)"])]), _h('countdown', {
+	  }, [_vm._v("second(s)")])]), _c('countdown', {
 	    staticStyle: {
 	      width: "600"
 	    },
@@ -621,17 +633,17 @@
 	        _vm.tick($event, 'countdown2')
 	      }
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["ctno2"]
-	  }, [_vm._s(_vm.countdown2.time.MM)]), _h('text', {
+	  }, [_vm._v(_vm._s(_vm.countdown2.time.MM))]), _c('text', {
 	    staticClass: ["ctno2"],
 	    staticStyle: {
 	      backgroundColor: "#FFFFFF",
 	      color: "#AAAAAA"
 	    }
-	  }, [":"]), _h('text', {
+	  }, [_vm._v(":")]), _c('text', {
 	    staticClass: ["ctno2"]
-	  }, [_vm._s(_vm.countdown2.time.ss)])])])])
+	  }, [_vm._v(_vm._s(_vm.countdown2.time.ss))])])], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/image.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/image.js b/ios/playground/bundlejs/vue/components/image.js
index 01095ba..f37010e 100644
--- a/ios/playground/bundlejs/vue/components/image.js
+++ b/ios/playground/bundlejs/vue/components/image.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(403)
+	__vue_styles__.push(__webpack_require__(421)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(404)
+	__vue_exports__ = __webpack_require__(422)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(405)
+	var __vue_template__ = __webpack_require__(423)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/image.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/image.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-27589d6a"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,21 +91,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -113,22 +117,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -182,7 +190,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -227,16 +235,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -244,7 +252,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -252,27 +260,27 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 391:
+/***/ 409:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(392)
+	__vue_styles__.push(__webpack_require__(410)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(393)
+	__vue_exports__ = __webpack_require__(411)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(394)
+	var __vue_template__ = __webpack_require__(412)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -284,22 +292,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/tip.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/tip.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-6ec9a69c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 392:
+/***/ 410:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -345,7 +357,7 @@
 
 /***/ },
 
-/***/ 393:
+/***/ 411:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -367,21 +379,21 @@
 
 /***/ },
 
-/***/ 394:
+/***/ 412:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['tip', 'tip-' + _vm.type]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['tip-txt', 'tip-txt-' + _vm.type]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 403:
+/***/ 421:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -392,7 +404,7 @@
 
 /***/ },
 
-/***/ 404:
+/***/ 422:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -449,23 +461,23 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    tip: __webpack_require__(391)
+	    panel: __webpack_require__(399),
+	    tip: __webpack_require__(409)
 	  }
 	};
 
 /***/ },
 
-/***/ 405:
+/***/ 423:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "width x height",
 	      "type": "primary"
 	    }
-	  }, [_h('tip', {
+	  }, [_c('tip', {
 	    staticStyle: {
 	      marginBottom: "20px"
 	    },
@@ -473,11 +485,11 @@
 	      "type": "warning",
 	      "value": "Weex screen width is 750"
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "300px",
@@ -486,7 +498,7 @@
 	    attrs: {
 	      "src": _vm.img
 	    }
-	  }), _h('image', {
+	  }), _c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "200px",
@@ -495,7 +507,7 @@
 	    attrs: {
 	      "src": _vm.img
 	    }
-	  }), _h('image', {
+	  }), _c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "50px",
@@ -504,12 +516,12 @@
 	    attrs: {
 	      "src": _vm.img
 	    }
-	  })])]), _h('panel', {
+	  })])], 1), _c('panel', {
 	    attrs: {
 	      "title": "GIF Animation",
 	      "type": "primary"
 	    }
-	  }, [_h('tip', {
+	  }, [_c('tip', {
 	    staticStyle: {
 	      marginBottom: "20px"
 	    },
@@ -517,11 +529,11 @@
 	      "type": "warning",
 	      "value": "Depanding on Native ImageSDK"
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "96px",
@@ -530,7 +542,7 @@
 	    attrs: {
 	      "src": "https://gtd.alicdn.com/tps/i4/T1HcvHXd4nXXb6ROYh-48-48.gif"
 	    }
-	  }), _h('image', {
+	  }), _c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "68px",
@@ -540,12 +552,12 @@
 	    attrs: {
 	      "src": "https://gw.alicdn.com/tps/TB1El.mKXXXXXXyapXXXXXXXXXX-34-34.gif"
 	    }
-	  })])]), _h('panel', {
+	  })])], 1), _c('panel', {
 	    attrs: {
 	      "title": "Base64",
 	      "type": "primary"
 	    }
-	  }, [_h('tip', {
+	  }, [_c('tip', {
 	    staticStyle: {
 	      marginBottom: "20px"
 	    },
@@ -553,11 +565,11 @@
 	      "type": "warning",
 	      "value": "Depanding on Native ImageSDK"
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "96px",
@@ -566,7 +578,7 @@
 	    attrs: {
 	      "src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAMAAABgOjJdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1QTFRFhomSb3J8XGBrdnqDgYWNlJefV1tmfoGKU1diT1NfgISNgoWOYmZwio2Vi4+Wc3eAkJObZGhzUlZiaGt2U1djfYCKZGdyhYiQeHyFio6VgYWOVVllbHB6XWFsY2ZxaWx3jZCYXmFsfYCJcnZ/UVVham54V1tng4aPb3N8WV1pX2JtZWl0YWVvVlpmiYyUWVxohomRd3uEdHiBeX2GZ2t1hIeQVFhkf4OMbnJ8fYGKdnqEb3N9kJScY2dycnaAjpKZdHeBjpKajI+Yc3eBhYiRf4KLXmFtio6Wi4+XjZCZkJSbkZScjI+XlJifTlJe+rAZcwAAAZBJREFUeNp0lOeWgjAQhSdUBQRRbFjX7tpW3XUt23tL3v9xNigJIHh/zRk+5iR3ZgIkULWmwgv+A7VWDWWBR/nSt2gLUzIVbLH1lo8RRW1wEfqxPtCKUaKTMUhURuUhTIi6Q07l6LuAEFdpEld6tWNEx00CKKJ3jsR1xSHJcj4bB+LmkpxT49Yj8mqQUVBBciUk8ITepESJ+5AqY1+uwny5IjDPcADoN0BIwjLOsjKZOewtbi/9fvi338a44CetIai2H/cokPLj9tfEj2wVzD4rIWMlfpu+CXc5Pw4qh5X7AUw4gZIswUENGT8lAN1fMBVeAxIIxYR3Nin0imOe52emdxkyP8aY+0S9Y2d63cNoxvACRTaeI70slst+cjYCAnXmuuS1RKKmy1hKBX0hzaC3KOsxsmz2Ir2NzMcEbVCo+cf5oDOWOzNAucpxxoglnZlT1+KzXk4kymKwL4ttN+73dhHeuWV85zLL073Vw3v7MdDuE3a/JRrCmqwFQ2yV8gmvg/d+aPCMH0GLvB//
 AgwAo1MTpxsaxVoAAAAASUVORK5CYII="
 	    }
-	  }), _h('image', {
+	  }), _c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "68px",
@@ -576,16 +588,16 @@
 	    attrs: {
 	      "src": "data:image/gif;base64,R0lGODlhIgAiANU7AMvLy83Nzdra2srKysnJyejo6MbGxtzc3M7Ozuzs7NTU1N3d3fz8/NfX1/j4+Ovr6+/v79DQ0Obm5v39/d/f3/f398/Pz9vb2+np6fn5+f7+/tXV1fX19dnZ2erq6tHR0fb29sjIyMfHx+Li4vLy8u7u7ufn5/r6+uPj49bW1tPT09LS0sTExPT09ODg4O3t7eHh4eTk5MXFxd7e3vHx8fPz8/Dw8OXl5djY2P///8zMzP///wAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlp
 ZDo0Q0QxODlDNENEOEQxMUUzOEIzM0I1ODVGNjU1MjBBQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Q0QxODlDNUNEOEQxMUUzOEIzM0I1ODVGNjU1MjBBQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDRDE4OUMyQ0Q4RDExRTM4QjMzQjU4NUY2NTUyMEFCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDRDE4OUMzQ0Q4RDExRTM4QjMzQjU4NUY2NTUyMEFCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQAAOwAsAAAAACIAIgAABv/AnXBIFDIEnxmoyGw6hw6LTrdKPK9PhmI6lWC/xQN3agWDMWNdhDTJmZ+gS1oXUDUoD8dbOHk05oAIHS8aYDRbgIlTDTVXGiiKkVwFTgwdkpg6GE1ymZIRJUUjnpkURBCkmQJDDBueAQGJACEAOqtCCaQhBgOAAxEAAAtCGQKeBAAIyGkiFzk3Ii64UpghCg45EstTAAYQOS0DMUKjmLMPOTkVAQRc3d8cA
 ZQ7YpgDAzbpHDrt3AYlOTggeCDEmL0B3wLyc+ctBwgEHgpmupdwXz8dAGTAC2BCCIWJBACqYzfGwIEcHkSM21EgFiYRC9I9uDcm2IoAAGAIaYFIEgBkAh8UBJvTbUCAYUIkkDLAwiggWLagREiF6ZaQAlQlIR3SKeucAJuITLjkNc2CE0yOlOWiIsOTAgjKNnB7pYKLuKQimJhgxkEBJC7nWFBwwAPaPTs0kJBwIMWGDSkaHECRoMKTIAAh+QQFAAA7ACwPAA0AEgAJAAAGRMCdUKcTGo3E4jF5RDKHSaUzCdtFn9ar5IrVBUQsA+JBDBkMISuSIJAsdgkAgFIojHaDpm3nOJKEFQFpTTsgUi+EiUJBACH5BAUAADsALA8AEQASAAgAAAYfQJ1wSCzqEA+jcmh5LZeWxFOJ8EyVkqsRpi0uukRBEAAh+QQFAAA7ACwPABEAEgAIAAAGWcCdcEgUBkQsAzFkMISKO4JAskAkAABKoTDaDYYAgy3nQHgGA1IuVwk8hQAZJAfSmQaE17pNIBoOOR4iMTsiC2sPaERYKwEAcAQfClhQYQMBfiyXUDsBmDtBACH5BAUAADsALA8ADQASAAkAAAZRwJ1wSBwCAMVdYJkMhGSiYYDAYhmSIVyJQnDtCApTYXY0yiC51iAGCD1yucrUaEBzAoXBwAbnfOklOX4PemiCf0QQOyCJQhw6BEk7d0MlkpdBACH5BAUAADsALBAADQAQAAQAAAYmwN0uEBAajyGAMWQYHIW6QQQA0O0ACILyKLrkbqLQzpGTEJ6GYxAAIfkEBQAAOwAsEAANABAABAAABiTA3U6nExqPgKIwQDwuQzKRLrBjsQxKYwhXohAIO9ODAnDKjkEAIfkEBQAAOwAsDwANABIACQAABkPAnXBIHOp0xR0yqTwum86k8wiDTo1TnSQbFeoCIpYB8TiGDIaQ0kgQSBa7BABAKRRGu0HRtnMQSUIVAWpJIE8vTIlBACH5BA
 UAADsALA8AEQASAAgAAAYfQJ1wSCzqEA+jcmh5LZeWxFOJ8EyVkqsRpi0uukRBEAAh+QQFAAA7ACwPABEAEgAIAAAGWcCdcEgUBkQsAzFkMISKO4JAskAkAABKoTDaDYYAgy3nQHgGA1IuVwk8hQAZJAfSmQaE17pNIBoOOR4iMTsiC2sPaERYKwEAcAQfClhQYQMBfiyXUDsBmDtBACH5BAUAADsALA8ADQASAAkAAAZQwJ1wSBwCAMVdICkMhGSiYYDAYhmSIVyJQnDtCArTg3I0yiC51iAGCD1yucrUaEBzAoXBwAbnfOklOX4PemiCf0QQOyCJQhw6BEx3QyVMlkEAIfkEBWQAOwAsEAANABAABAAABibA3S4QEBqPIYAxZBgchbpBBADQ7QAIgvIouuRuotDOkZMQnoZjEAA7"
 	    }
-	  })])]), _h('panel', {
+	  })])], 1), _c('panel', {
 	    attrs: {
 	      "title": "resize",
 	      "type": "primary"
 	    }
-	  }, [_h('panel', {
+	  }, [_c('panel', {
 	    attrs: {
 	      "title": "resize=stretch(default) 600 x 200 "
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "600px",
@@ -598,11 +610,11 @@
 	      "src": _vm.img,
 	      "resize": "stretch"
 	    }
-	  })]), _h('panel', {
+	  })]), _c('panel', {
 	    attrs: {
 	      "title": "resize=contain 600 x 200 "
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "600px",
@@ -615,11 +627,11 @@
 	      "src": _vm.img,
 	      "resize": "contain"
 	    }
-	  })]), _h('panel', {
+	  })]), _c('panel', {
 	    attrs: {
 	      "title": "resize=cover 600 x 200"
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "600px",
@@ -632,7 +644,7 @@
 	      "src": _vm.img,
 	      "resize": "cover"
 	    }
-	  })])])])
+	  })])], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/input.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/input.js b/ios/playground/bundlejs/vue/components/input.js
index e627c56..3bf2e5b 100644
--- a/ios/playground/bundlejs/vue/components/input.js
+++ b/ios/playground/bundlejs/vue/components/input.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(406)
+	__vue_styles__.push(__webpack_require__(424)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(407)
+	__vue_exports__ = __webpack_require__(425)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(408)
+	var __vue_template__ = __webpack_require__(426)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/input.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/input.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-7d23074e"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,102 +91,33 @@
 
 /***/ },
 
-/***/ 381:
-/***/ function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
-	)
-
-	/* script */
-	__vue_exports__ = __webpack_require__(383)
-
-	/* template */
-	var __vue_template__ = __webpack_require__(384)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
-	})
-
-	module.exports = __vue_exports__
-
-
-/***/ },
-
-/***/ 382:
+/***/ 424:
 /***/ function(module, exports) {
 
 	module.exports = {
-	  "panel": {
-	    "marginBottom": 20,
-	    "backgroundColor": "#ffffff",
-	    "borderColor": "#dddddd",
-	    "borderWidth": 1
-	  },
-	  "panel-primary": {
-	    "borderColor": "rgb(40,96,144)"
-	  },
-	  "panel-success": {
-	    "borderColor": "rgb(76,174,76)"
-	  },
-	  "panel-info": {
-	    "borderColor": "rgb(70,184,218)"
-	  },
-	  "panel-warning": {
-	    "borderColor": "rgb(238,162,54)"
-	  },
-	  "panel-danger": {
-	    "borderColor": "rgb(212,63,58)"
-	  },
-	  "panel-header": {
-	    "backgroundColor": "#f5f5f5",
-	    "fontSize": 40,
-	    "color": "#333333"
-	  },
-	  "panel-header-primary": {
-	    "backgroundColor": "rgb(40,96,144)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-success": {
-	    "backgroundColor": "rgb(92,184,92)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-info": {
-	    "backgroundColor": "rgb(91,192,222)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-warning": {
-	    "backgroundColor": "rgb(240,173,78)",
-	    "color": "#ffffff"
+	  "input": {
+	    "fontSize": 60,
+	    "height": 80,
+	    "width": 750
 	  },
-	  "panel-header-danger": {
-	    "backgroundColor": "rgb(217,83,79)",
-	    "color": "#ffffff"
+	  "button": {
+	    "fontSize": 36,
+	    "width": 200,
+	    "color": "#41B883",
+	    "textAlign": "center",
+	    "paddingTop": 10,
+	    "paddingBottom": 10,
+	    "borderWidth": 2,
+	    "borderStyle": "solid",
+	    "marginRight": 20,
+	    "borderColor": "rgb(162,217,192)",
+	    "backgroundColor": "rgba(162,217,192,0.2)"
 	  }
 	}
 
 /***/ },
 
-/***/ 383:
+/***/ 425:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -213,69 +148,104 @@
 	//
 	//
 	//
-
-	module.exports = {
-	  props: {
-	    type: { default: 'default' },
-	    title: { default: '' },
-	    paddingBody: { default: 20 },
-	    paddingHead: { default: 20 },
-	    dataClass: { default: '' }, // FIXME transfer class
-	    border: { default: 0 }
-	  }
-	};
-
-/***/ },
-
-/***/ 384:
-/***/ function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
-	    class: ['panel', 'panel-' + _vm.type],
-	    style: {
-	      borderWidth: _vm.border
-	    }
-	  }, [_h('text', {
-	    class: ['panel-header', 'panel-header-' + _vm.type],
-	    style: {
-	      paddingTop: _vm.paddingHead,
-	      paddingBottom: _vm.paddingHead,
-	      paddingLeft: _vm.paddingHead * 1.5,
-	      paddingRight: _vm.paddingHead * 1.5
-	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
-	    class: ['panel-body', 'panel-body-' + _vm.type],
-	    style: {
-	      paddingTop: _vm.paddingBody,
-	      paddingBottom: _vm.paddingBody,
-	      paddingLeft: _vm.paddingBody * 1.5,
-	      paddingRight: _vm.paddingBody * 1.5
-	    }
-	  }, [_vm._t("default")])])
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
-
-/***/ },
-
-/***/ 406:
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "input": {
-	    "fontSize": 60,
-	    "height": 80,
-	    "width": 400
-	  }
-	}
-
-/***/ },
-
-/***/ 407:
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
 	//
 	//
 	//
@@ -303,60 +273,469 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
 	module.exports = {
 	  data: function data() {
 	    return {
 	      txtInput: '',
-	      txtChange: ''
+	      txtChange: '',
+	      txtReturnType: '',
+	      txtSelection: '',
+	      autofocus: false
 	    };
 	  },
-	  components: {
-	    panel: __webpack_require__(381)
-	  },
 	  methods: {
+	    ready: function ready() {
+	      var self = this;
+	      setTimeout(function () {
+	        self.autofocus = true;
+	      }, 1000);
+	    },
 	    onchange: function onchange(event) {
 	      this.txtChange = event.value;
-	      modal.toast({
-	        message: 'onchange: ' + event.value,
-	        duration: 2
-	      });
+	      console.log('onchange', event.value);
+	    },
+	    onreturn: function onreturn(event) {
+	      this.txtReturnType = event.returnKeyType;
+	      console.log('onreturn', event.type);
 	    },
 	    oninput: function oninput(event) {
 	      this.txtInput = event.value;
-	      modal.toast({
-	        message: 'onitput: ' + event.value,
-	        duration: 1
-	      });
+	      console.log('oninput', event.value);
+	    },
+	    focus: function focus() {
+	      this.$refs['input1'].focus();
+	    },
+	    blur: function blur() {
+	      this.$refs['input1'].blur();
+	    },
+	    setRange: function setRange() {
+	      console.log(this.$refs["inputselection"]);
+	      this.$refs["inputselection"].setSelectionRange(2, 6);
 	    }
 	  }
 	};
 
 /***/ },
 
-/***/ 408:
+/***/ 426:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('div', [_c('div', [_c('text', {
+	    staticStyle: {
+	      fontSize: "40px"
+	    }
+	  }, [_vm._v("oninput: " + _vm._s(_vm.txtInput))]), _c('text', {
+	    staticStyle: {
+	      fontSize: "40px"
+	    }
+	  }, [_vm._v("onchange: " + _vm._s(_vm.txtChange))]), _c('text', {
+	    staticStyle: {
+	      fontSize: "40px"
+	    }
+	  }, [_vm._v("onreturntype: " + _vm._s(_vm.txtReturnType))])]), _c('scroller', [_c('div', [_vm._m(0), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "text",
+	      "placeholder": "Input Text",
+	      "autofocus": _vm.autofocus,
+	      "value": ""
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(1), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "password",
+	      "placeholder": "Input Password"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(2), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "url",
+	      "placeholder": "Input URL"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(3), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "email",
+	      "placeholder": "Input Email"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(4), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "tel",
+	      "placeholder": "Input Tel"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(5), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "time",
+	      "placeholder": "Input Time"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(6), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "date",
+	      "placeholder": "Input Date",
+	      "max": "2017-12-12",
+	      "min": "2015-01-01"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(7), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "text",
+	      "placeholder": "please input",
+	      "returnKeyType": "default"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "return": _vm.onreturn,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(8), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "text",
+	      "placeholder": "please input",
+	      "returnKeyType": "go"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "return": _vm.onreturn,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(9), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "text",
+	      "placeholder": "please input",
+	      "returnKeyType": "next"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "return": _vm.onreturn,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(10), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "text",
+	      "placeholder": "please input",
+	      "returnKeyType": "search"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "return": _vm.onreturn,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(11), _c('input', {
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "text",
+	      "placeholder": "please input",
+	      "returnKeyType": "send"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "return": _vm.onreturn,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(12), _c('input', {
+	    staticClass: ["input"],
 	    attrs: {
-	      "title": "input",
+	      "type": "text",
+	      "placeholder": "please input",
+	      "returnKeyType": "done"
+	    },
+	    on: {
+	      "change": _vm.onchange,
+	      "return": _vm.onreturn,
+	      "input": _vm.oninput
+	    }
+	  })]), _c('div', [_vm._m(13), _c('div', {
+	    staticStyle: {
+	      flexDirection: "row",
+	      marginBottom: "16px",
+	      justifyContent: "space-between"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["button"],
+	    attrs: {
+	      "value": "Focus",
 	      "type": "primary"
+	    },
+	    on: {
+	      "click": _vm.focus
 	    }
-	  }, [_h('input', {
+	  }), _c('text', {
+	    staticClass: ["button"],
+	    attrs: {
+	      "value": "Blur",
+	      "type": "primary"
+	    },
+	    on: {
+	      "click": _vm.blur
+	    }
+	  })]), _c('input', {
+	    ref: "input1",
 	    staticClass: ["input"],
 	    attrs: {
 	      "type": "text",
-	      "placeholder": "Text Input",
-	      "autofocus": "true",
+	      "placeholder": "Input1",
 	      "value": ""
+	    }
+	  })]), _c('div', [_vm._m(14), _c('div', {
+	    staticStyle: {
+	      flexDirection: "row",
+	      marginBottom: "16px",
+	      justifyContent: "space-between"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["button"],
+	    attrs: {
+	      "value": "setRange",
+	      "type": "primary"
+	    },
+	    on: {
+	      "click": _vm.setRange
+	    }
+	  })]), _c('input', {
+	    ref: "inputselection",
+	    staticClass: ["input"],
+	    attrs: {
+	      "type": "text",
+	      "placeholder": "please input",
+	      "value": "123456789"
 	    },
 	    on: {
 	      "change": _vm.onchange,
+	      "return": _vm.onreturn,
 	      "input": _vm.oninput
 	    }
-	  }), _h('text', ["oninput: " + _vm._s(_vm.txtInput)]), _h('text', ["onchange: " + _vm._s(_vm.txtChange)])])])
-	},staticRenderFns: []}
+	  })])])])
+	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input type = text")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input type = password")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input type = url")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input type = email")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input type = tel")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input type = time")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input type = date")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input keyboard = default")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input keyboard = go")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input keyboard = next")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input keyboard = search")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input keyboard = send")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input keyboard = done")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("function focus() & blur()")])])
+	},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('div', {
+	    staticStyle: {
+	      backgroundColor: "#286090"
+	    }
+	  }, [_c('text', {
+	    staticClass: ["title"],
+	    staticStyle: {
+	      height: "80",
+	      padding: "20",
+	      color: "#FFFFFF"
+	    }
+	  }, [_vm._v("input selection")])])
+	}]}
 	module.exports.render._withStripped = true
 
 /***/ }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/list.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/list.js b/ios/playground/bundlejs/vue/components/list.js
index 8725170..4c25e16 100644
--- a/ios/playground/bundlejs/vue/components/list.js
+++ b/ios/playground/bundlejs/vue/components/list.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(409)
+	__vue_styles__.push(__webpack_require__(427)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(410)
+	__vue_exports__ = __webpack_require__(428)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(411)
+	var __vue_template__ = __webpack_require__(429)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/list.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/list.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-b4a37b42"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 409:
+/***/ 427:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -111,13 +115,14 @@
 	    "borderBottomWidth": 2,
 	    "borderBottomColor": "#c0c0c0",
 	    "height": 100,
-	    "padding": 20
+	    "padding": 20,
+	    "backgroundColor:active": "#00BDFF"
 	  }
 	}
 
 /***/ },
 
-/***/ 410:
+/***/ 428:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -168,6 +173,9 @@
 	//
 	//
 	//
+	//
+	//
+	//
 
 	module.exports = {
 	  methods: {
@@ -209,14 +217,14 @@
 
 /***/ },
 
-/***/ 411:
+/***/ 429:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('list', {
+	  return _c('div', [_c('list', {
 	    staticClass: ["list"]
-	  }, [_vm._l((_vm.rows), function(v, i) {
-	    return _h('cell', {
+	  }, _vm._l((_vm.rows), function(v, i) {
+	    return _c('cell', {
 	      staticClass: ["row"],
 	      appendAsTree: true,
 	      attrs: {
@@ -227,12 +235,12 @@
 	        "appear": _vm.onappear,
 	        "disappear": _vm.ondisappear
 	      }
-	    }, [_h('div', {
+	    }, [_c('div', {
 	      staticClass: ["item"]
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticClass: ["item-title"]
-	    }, ["row " + _vm._s(v.id)])])])
-	  })]), _h('text', {
+	    }, [_vm._v("row " + _vm._s(v.id))])])])
+	  })), _c('text', {
 	    staticClass: ["count"],
 	    attrs: {
 	      "value": 'Appear items: ' + _vm.appearMin + ' ~ ' + _vm.appearMax

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/marquee.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/marquee.js b/ios/playground/bundlejs/vue/components/marquee.js
index 27a0e9d..777f14b 100644
--- a/ios/playground/bundlejs/vue/components/marquee.js
+++ b/ios/playground/bundlejs/vue/components/marquee.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(412)
+	__vue_exports__ = __webpack_require__(430)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(417)
+	var __vue_template__ = __webpack_require__(435)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/marquee.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/marquee.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,13 +255,13 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 412:
+/***/ 430:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -309,8 +316,8 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    marquee: __webpack_require__(413)
+	    panel: __webpack_require__(399),
+	    marquee: __webpack_require__(431)
 	  },
 	  methods: {
 	    marqueeChange: function marqueeChange(e) {
@@ -321,21 +328,21 @@
 
 /***/ },
 
-/***/ 413:
+/***/ 431:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(414)
+	__vue_styles__.push(__webpack_require__(432)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(415)
+	__vue_exports__ = __webpack_require__(433)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(416)
+	var __vue_template__ = __webpack_require__(434)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -347,22 +354,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/marquee.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/marquee.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-61eb1623"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 414:
+/***/ 432:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -379,7 +390,7 @@
 
 /***/ },
 
-/***/ 415:
+/***/ 433:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -410,7 +421,7 @@
 	//
 	//
 
-	var _animation = __weex_require_module__('animation');
+	var _animation = weex.requireModule('animation');
 
 	module.exports = {
 	  props: {
@@ -464,35 +475,35 @@
 
 /***/ },
 
-/***/ 416:
+/***/ 434:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["wrap"],
 	    on: {
 	      "appear": _vm.appeared,
 	      "disappear": _vm.disappeared
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    ref: "anim",
 	    staticClass: ["anim"]
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 417:
+/***/ 435:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "Marquee",
 	      "type": "primary"
 	    }
-	  }, [_h('marquee', {
+	  }, [_c('marquee', {
 	    style: {
 	      width: 700,
 	      height: _vm.marquee.height * 2,
@@ -510,22 +521,22 @@
 	    on: {
 	      "change": _vm.marqueeChange
 	    }
-	  }, [_vm._l((_vm.marquee.list), function(item) {
-	    return _h('div', {
+	  }, _vm._l((_vm.marquee.list), function(item) {
+	    return _c('div', {
 	      style: {
 	        height: _vm.marquee.height * _vm.marquee.length,
 	        paddingTop: _vm.marquee.height * 0.5,
 	        paddingBottom: _vm.marquee.height * 0.5,
 	        overflow: 'hidden'
 	      }
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      style: {
 	        height: _vm.marquee.height,
 	        color: 'rgb(60, 118, 61)',
 	        fontSize: 28
 	      }
-	    }, [_vm._s(item.text)])])
-	  })])])])
+	    }, [_vm._v(_vm._s(item.text))])])
+	  }))], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/navigator.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/navigator.js b/ios/playground/bundlejs/vue/components/navigator.js
index 4c50282..116cf01 100644
--- a/ios/playground/bundlejs/vue/components/navigator.js
+++ b/ios/playground/bundlejs/vue/components/navigator.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(418)
+	__vue_exports__ = __webpack_require__(436)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(428)
+	var __vue_template__ = __webpack_require__(446)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/navigator.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/navigator.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,27 +255,27 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 385:
+/***/ 403:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(386)
+	__vue_styles__.push(__webpack_require__(404)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(387)
+	__vue_exports__ = __webpack_require__(405)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(388)
+	var __vue_template__ = __webpack_require__(406)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -280,22 +287,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/button.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/button.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4c6be341"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 386:
+/***/ 404:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -395,7 +406,7 @@
 
 /***/ },
 
-/***/ 387:
+/***/ 405:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -418,21 +429,21 @@
 
 /***/ },
 
-/***/ 388:
+/***/ 406:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 418:
+/***/ 436:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -459,8 +470,8 @@
 	//
 	//
 
-	var navigator = __weex_require_module__('navigator');
-	var getBaseURL = __webpack_require__(419).getBaseURL;
+	var navigator = weex.requireModule('navigator');
+	var getBaseURL = __webpack_require__(437).getBaseURL;
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -471,9 +482,9 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    navpage: __webpack_require__(420),
-	    button: __webpack_require__(385)
+	    panel: __webpack_require__(399),
+	    navpage: __webpack_require__(438),
+	    button: __webpack_require__(403)
 	  },
 	  created: function created() {
 	    this.$getConfig(function (config) {
@@ -512,7 +523,7 @@
 
 /***/ },
 
-/***/ 419:
+/***/ 437:
 /***/ function(module, exports) {
 
 	exports.getBaseURL = function (vm) {
@@ -536,7 +547,7 @@
 	    }
 	    nativeBase = 'http://' + host + '/' + vm.dir + '/build/';
 	  }
-	  var h5Base = './index.html?page=./' + vm.dir + '/build/';
+	  var h5Base = './vue.html?page=./' + vm.dir + '/build/';
 	  // in Native
 	  var base = nativeBase;
 	  if (typeof window === 'object') {
@@ -549,21 +560,21 @@
 
 /***/ },
 
-/***/ 420:
+/***/ 438:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(421)
+	__vue_styles__.push(__webpack_require__(439)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(422)
+	__vue_exports__ = __webpack_require__(440)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(427)
+	var __vue_template__ = __webpack_require__(445)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -575,22 +586,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/navpage.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/navpage.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-7d252f9a"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 421:
+/***/ 439:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -606,7 +621,7 @@
 
 /***/ },
 
-/***/ 422:
+/***/ 440:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -648,7 +663,7 @@
 
 	module.exports = {
 	  components: {
-	    navbar: __webpack_require__(423)
+	    navbar: __webpack_require__(441)
 	  },
 	  props: {
 	    dataRole: { default: 'navbar' },
@@ -675,21 +690,21 @@
 
 /***/ },
 
-/***/ 423:
+/***/ 441:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(424)
+	__vue_styles__.push(__webpack_require__(442)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(425)
+	__vue_exports__ = __webpack_require__(443)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(426)
+	var __vue_template__ = __webpack_require__(444)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -701,22 +716,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/navbar.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/navbar.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-2a6b391f"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 424:
+/***/ 442:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -771,7 +790,7 @@
 
 /***/ },
 
-/***/ 425:
+/***/ 443:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -899,11 +918,11 @@
 
 /***/ },
 
-/***/ 426:
+/***/ 444:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["container"],
 	    style: {
 	      height: _vm.height,
@@ -912,7 +931,7 @@
 	    attrs: {
 	      "dataRole": _vm.dataRole
 	    }
-	  }, [(!_vm.rightItemSrc) ? _h('text', {
+	  }, [(!_vm.rightItemSrc) ? _c('text', {
 	    staticClass: ["right-text"],
 	    style: {
 	      color: _vm.rightItemColor
@@ -923,7 +942,7 @@
 	    on: {
 	      "click": _vm.onclickrightitem
 	    }
-	  }, [_vm._s(_vm.rightItemTitle)]) : _vm._e(), (_vm.rightItemSrc) ? _h('image', {
+	  }, [_vm._v(_vm._s(_vm.rightItemTitle))]) : _vm._e(), (_vm.rightItemSrc) ? _c('image', {
 	    staticClass: ["right-image"],
 	    attrs: {
 	      "naviItemPosition": "right",
@@ -932,7 +951,7 @@
 	    on: {
 	      "click": _vm.onclickrightitem
 	    }
-	  }) : _vm._e(), (!_vm.leftItemSrc) ? _h('text', {
+	  }) : _vm._e(), (!_vm.leftItemSrc) ? _c('text', {
 	    staticClass: ["left-text"],
 	    style: {
 	      color: _vm.leftItemColor
@@ -943,7 +962,7 @@
 	    on: {
 	      "click": _vm.onclickleftitem
 	    }
-	  }, [_vm._s(_vm.leftItemTitle)]) : _vm._e(), (_vm.leftItemSrc) ? _h('image', {
+	  }, [_vm._v(_vm._s(_vm.leftItemTitle))]) : _vm._e(), (_vm.leftItemSrc) ? _c('image', {
 	    staticClass: ["left-image"],
 	    attrs: {
 	      "naviItemPosition": "left",
@@ -952,7 +971,7 @@
 	    on: {
 	      "click": _vm.onclickleftitem
 	    }
-	  }) : _vm._e(), _h('text', {
+	  }) : _vm._e(), _c('text', {
 	    staticClass: ["center-text"],
 	    style: {
 	      color: _vm.titleColor
@@ -960,19 +979,19 @@
 	    attrs: {
 	      "naviItemPosition": "center"
 	    }
-	  }, [_vm._s(_vm.title)])])
+	  }, [_vm._v(_vm._s(_vm.title))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 427:
+/***/ 445:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["wrapper"]
-	  }, [_h('navbar', {
+	  }, [_c('navbar', {
 	    attrs: {
 	      "dataRole": _vm.dataRole,
 	      "height": _vm.height,
@@ -990,22 +1009,22 @@
 	      "naviBarRightItemClick": _vm.naviBarRightItemClick,
 	      "naviBarLeftItemClick": _vm.naviBarLeftItemClick
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticClass: ["wrapper"],
 	    style: {
 	      marginTop: _vm.height
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 428:
+/***/ 446:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('navpage', {
+	  return _c('navpage', {
 	    attrs: {
 	      "dataRole": "none",
 	      "height": _vm.navBarHeight,
@@ -1020,11 +1039,11 @@
 	      "naviBarLeftItemClick": _vm.naviBarLeftItemClick,
 	      "naviBarRightItemClick": _vm.naviBarRightItemClick
 	    }
-	  }, [_h('panel', {
+	  }, [_c('panel', {
 	    attrs: {
 	      "title": "push a new page"
 	    }
-	  }, [_h('button', {
+	  }, [_c('button', {
 	    attrs: {
 	      "type": "primary",
 	      "size": "small",
@@ -1035,11 +1054,11 @@
 	        _vm.push($event)
 	      }
 	    }
-	  })]), _h('panel', {
+	  })], 1), _c('panel', {
 	    attrs: {
 	      "title": "pop to the last page"
 	    }
-	  }, [_h('button', {
+	  }, [_c('button', {
 	    attrs: {
 	      "type": "success",
 	      "size": "small",
@@ -1050,7 +1069,7 @@
 	        _vm.pop($event)
 	      }
 	    }
-	  })])])
+	  })], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/components/scroller.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/components/scroller.js b/ios/playground/bundlejs/vue/components/scroller.js
index f1225a8..8544127 100644
--- a/ios/playground/bundlejs/vue/components/scroller.js
+++ b/ios/playground/bundlejs/vue/components/scroller.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(429)
+	__vue_styles__.push(__webpack_require__(447)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(430)
+	__vue_exports__ = __webpack_require__(448)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(431)
+	var __vue_template__ = __webpack_require__(449)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/components/scroller.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/components/scroller.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-bc3ac90a"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 429:
+/***/ 447:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -136,7 +140,7 @@
 
 /***/ },
 
-/***/ 430:
+/***/ 448:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -260,42 +264,42 @@
 
 /***/ },
 
-/***/ 431:
+/***/ 449:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', {
+	  return _c('scroller', {
 	    staticClass: ["list"],
 	    appendAsTree: true,
 	    attrs: {
 	      "append": "tree"
 	    }
 	  }, [_vm._l((_vm.sections), function(sec) {
-	    return _h('div', {
+	    return _c('div', {
 	      staticClass: ["section"]
-	    }, [_h('div', {
+	    }, [_c('div', {
 	      staticClass: ["header"]
-	    }, [_h('text', {
+	    }, [_c('text', {
 	      staticClass: ["header-title"]
-	    }, [_vm._s(sec.title)])]), _vm._l((sec.items), function(item) {
-	      return _h('div', {
+	    }, [_vm._v(_vm._s(sec.title))])]), _vm._l((sec.items), function(item) {
+	      return _c('div', {
 	        staticClass: ["item"]
-	      }, [_h('text', {
+	      }, [_c('text', {
 	        staticClass: ["item-title"]
-	      }, ["row " + _vm._s(item.id)])])
-	    })])
-	  }), _h('loading', {
+	      }, [_vm._v("row " + _vm._s(item.id))])])
+	    })], 2)
+	  }), _c('loading', {
 	    staticClass: ["loading-view"],
 	    attrs: {
 	      "display": _vm.loading_display,
 	      "onloading": "onloading"
 	    }
-	  }, [_h('loading-indicator', {
+	  }, [_c('loading-indicator', {
 	    staticStyle: {
 	      height: "60",
 	      width: "60"
 	    }
-	  })])])
+	  })], 1)], 2)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 


[02/50] [abbrv] incubator-weex git commit: * [ios] fix issue that recycle will crash if header height is zero (no layout attribute but has header will cause crash)

Posted by so...@apache.org.
* [ios] fix issue that recycle will crash if header height is zero (no layout attribute but has header will cause crash)


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

Branch: refs/heads/dev
Commit: 0dc2daadcc252cd3be890361cd052640e76ac3a8
Parents: 014cfc1
Author: \u9690\u98ce <cx...@apache.org>
Authored: Tue Mar 28 00:36:55 2017 +0800
Committer: \u9690\u98ce <cx...@apache.org>
Committed: Tue Mar 28 00:36:55 2017 +0800

----------------------------------------------------------------------
 .../WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.h   | 2 ++
 .../WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.m   | 5 +++--
 .../WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m   | 5 +++++
 .../Sources/Component/Recycler/WXRecyclerDataController.h      | 2 ++
 .../Sources/Component/Recycler/WXRecyclerDataController.m      | 6 ++++++
 5 files changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0dc2daad/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.h b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.h
index f107db0..34b1f6a 100644
--- a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.h
+++ b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.h
@@ -21,6 +21,8 @@ extern NSString * const kCollectionSupplementaryViewKindHeader;
 
 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout heightForHeaderInSection:(NSInteger)section;
 
+- (BOOL)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout hasHeaderInSection:(NSInteger)section;
+
 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout isNeedStickyForHeaderInSection:(NSInteger)section;
 
 @end

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0dc2daad/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.m b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.m
index a959ddc..9a56502 100644
--- a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.m
+++ b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXMultiColumnLayout.m
@@ -156,9 +156,10 @@ NSString * const kMultiColumnLayoutCell = @"WXMultiColumnLayoutCell";
     }
     
     for (NSInteger section = 0; section < numberOfSections; section++) {
-        CGFloat headerHeight = [self.delegate collectionView:self.collectionView layout:self heightForHeaderInSection:section];
+        BOOL hasHeader = [self.delegate collectionView:self.collectionView layout:self hasHeaderInSection:section];
         // header
-        if (headerHeight > 0) {
+        if (hasHeader) {
+            CGFloat headerHeight = [self.delegate collectionView:self.collectionView layout:self heightForHeaderInSection:section];
             WXMultiColumnLayoutHeaderAttributes *headerAttributes = [WXMultiColumnLayoutHeaderAttributes layoutAttributesForSupplementaryViewOfKind:kCollectionSupplementaryViewKindHeader withIndexPath:[NSIndexPath indexPathForItem:0 inSection:section]];
             headerAttributes.frame = CGRectMake(insets.left, currentHeight, self.contentWidth - (insets.left + insets.right), headerHeight);
             headerAttributes.isSticky = [self.delegate collectionView:self.collectionView layout:self isNeedStickyForHeaderInSection:section];

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0dc2daad/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
index 91f3d12..b5b5ac8 100644
--- a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
@@ -406,6 +406,11 @@ typedef enum : NSUInteger {
     return headerSize.height;
 }
 
+- (BOOL)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout hasHeaderInSection:(NSInteger)section
+{
+    return [self.dataController hasHeaderInSection:section];
+}
+
 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout isNeedStickyForHeaderInSection:(NSInteger)section
 {
     return [self.dataController isStickyForHeaderAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:section]];

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0dc2daad/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.h b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.h
index 34e8a10..63391d1 100644
--- a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.h
+++ b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.h
@@ -29,6 +29,8 @@
 
 - (BOOL)isStickyForHeaderAtIndexPath:(NSIndexPath *)indexPath;
 
+- (BOOL)hasHeaderInSection:(NSInteger)section;
+
 - (NSIndexPath *)indexPathForCell:(WXCellComponent *)cell;
 
 - (NSUInteger)indexForHeader:(WXHeaderComponent *)header;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0dc2daad/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.m b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.m
index 2031837..92875ce 100644
--- a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.m
+++ b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerDataController.m
@@ -92,6 +92,12 @@
     return [sectionController sizeForHeaderAtIndex:indexPath.item];
 }
 
+- (BOOL)hasHeaderInSection:(NSInteger)section
+{
+    WXSectionDataController *sectionController = [self dataControllerForSection:section];
+    return sectionController.headerComponent != nil;
+}
+
 - (BOOL)isStickyForHeaderAtIndexPath:(NSIndexPath *)indexPath
 {
     WXSectionDataController *sectionController = [self dataControllerForSection:indexPath.section];


[25/50] [abbrv] incubator-weex git commit: * [html5] add flow-type supported.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/webpack_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/webpack_vx.x.x.js b/flow-typed/npm/webpack_vx.x.x.js
new file mode 100644
index 0000000..3d12a68
--- /dev/null
+++ b/flow-typed/npm/webpack_vx.x.x.js
@@ -0,0 +1,1523 @@
+// flow-typed signature: 8e146dea52794d287a37416ec3386c72
+// flow-typed version: <<STUB>>/webpack_v^1.13.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'webpack'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'webpack' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'webpack/bin/config-optimist' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/bin/convert-argv' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/bin/webpack' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/buildin/amd-define' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/buildin/amd-options' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/buildin/module' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/buildin/return-require' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/hot/dev-server' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/hot/log-apply-result' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/hot/only-dev-server' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/hot/poll' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/hot/signal' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/AbstractPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/AmdMainTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/APIPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ArrayMap' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/AsyncDependenciesBlock' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/AutomaticPrefetchPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/BannerPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/BasicEvaluatedExpression' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/CachePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/CaseSensitiveModulesWarning' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/Chunk' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ChunkRenderError' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ChunkTemplate' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/CompatibilityPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/Compilation' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/Compiler' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ConcatSource' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ConstPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ContextModule' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ContextModuleFactory' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ContextReplacementPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/CriticalDependenciesWarning' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DefinePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DelegatedModule' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DelegatedModuleFactoryPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DelegatedPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/AMDDefineDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/AMDDefineDependencyParserPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/AMDPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/AMDRequireArrayDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/AMDRequireContextDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/AMDRequireDependenciesBlock' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/AMDRequireDependenciesBlockParserPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/AMDRequireDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/AMDRequireItemDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/CommonJsPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/CommonJsRequireContextDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/CommonJsRequireDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/CommonJsRequireDependencyParserPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ConstDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ContextDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ContextDependencyHelpers' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ContextDependencyTemplateAsId' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ContextDependencyTemplateAsRequireCall' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ContextElementDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/DelegatedSourceDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/DepBlockHelpers' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/DllEntryDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/getFunctionExpression' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/LabeledExportsDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/LabeledModuleDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/LabeledModuleDependencyParserPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/LabeledModulesPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/LoaderDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/LoaderPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/LocalModule' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/LocalModuleDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/LocalModulesHelpers' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ModuleDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ModuleDependencyTemplateAsId' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ModuleDependencyTemplateAsRequireId' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ModuleHotAcceptDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/ModuleHotDeclineDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/MultiEntryDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/NullDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/NullDependencyTemplate' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/PrefetchDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireContextDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireContextDependencyParserPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireContextPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireEnsureDependenciesBlock' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireEnsureDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireEnsureItemDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireEnsurePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireHeaderDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireIncludeDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireIncludeDependencyParserPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireIncludePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireResolveContextDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireResolveDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireResolveDependencyParserPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/RequireResolveHeaderDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/SingleEntryDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/TemplateArgumentDependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/dependencies/WebpackMissingModule' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DependenciesBlock' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DependenciesBlockVariable' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/Dependency' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DllEntryPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DllModule' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DllModuleFactory' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DllPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/DllReferencePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/EntryModuleNotFoundError' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/EntryOptionPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/EnvironmentPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/EvalDevToolModulePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/EvalDevToolModuleTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/EvalSourceMapDevToolModuleTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/EvalSourceMapDevToolPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ExtendedAPIPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ExternalModule' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ExternalModuleFactoryPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ExternalsPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/FunctionModulePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/FunctionModuleTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/HotModuleReplacement.runtime' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/HotModuleReplacementPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/HotUpdateChunkTemplate' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/IgnorePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/JsonpChunkTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/JsonpExportMainTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/JsonpHotUpdateChunkTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/JsonpMainTemplate.runtime' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/JsonpMainTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/JsonpTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/LibManifestPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/LibraryTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/LoaderTargetPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/MainTemplate' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/MemoryOutputFileSystem' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/Module' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ModuleFilenameHelpers' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ModuleNotFoundError' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ModuleParseError' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ModuleParserHelpers' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ModuleReason' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ModuleTemplate' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/MovedToPluginWarningPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/MultiCompiler' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/MultiEntryPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/MultiModule' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/MultiModuleFactory' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/NamedModulesPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/NewWatchingPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeChunkTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeEnvironmentPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeHotUpdateChunkTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeMainTemplate.runtime' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeMainTemplateAsync.runtime' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeMainTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeOutputFileSystem' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeSourcePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeTargetPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/NodeWatchFileSystem' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/node/OldNodeWatchFileSystem' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/NodeStuffPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/NoErrorsPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/NormalModule' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/NormalModuleFactory' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/NormalModuleReplacementPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/NullFactory' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/OldWatchingPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/AggressiveMergingPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/CommonsChunkPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/DedupePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/FlagIncludedChunksPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/LimitChunkCountPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/MergeDuplicateChunksPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/MinChunkSizePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/OccurenceOrderPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/OccurrenceOrderPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/RemoveEmptyChunksPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/RemoveParentModulesPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/optimize/UglifyJsPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/OptionsApply' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/OriginalSource' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/Parser' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/PrefetchPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ProgressPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ProvidePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/RawModule' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/RawSource' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/RecordIdsPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/removeAndDo' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/RequestShortener' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/RequireJsStuffPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/ResolverPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/SetVarMainTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/SingleEntryPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/Source' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/SourceMapDevToolModuleOptionsPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/SourceMapDevToolPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/SourceMapSource' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/Stats' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/Template' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/TemplatedPathPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/UmdMainTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/UnsupportedFeatureWarning' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/WarnCaseSensitiveModulesPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/WatchIgnorePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/web/WebEnvironmentPlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/webpack' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/webpack.web' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/WebpackOptionsApply' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/WebpackOptionsDefaulter' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/webworker/WebWorkerChunkTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/webworker/WebWorkerMainTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/lib/webworker/WebWorkerTemplatePlugin' {
+  declare module.exports: any;
+}
+
+declare module 'webpack/web_modules/node-libs-browser' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'webpack/bin/config-optimist.js' {
+  declare module.exports: $Exports<'webpack/bin/config-optimist'>;
+}
+declare module 'webpack/bin/convert-argv.js' {
+  declare module.exports: $Exports<'webpack/bin/convert-argv'>;
+}
+declare module 'webpack/bin/webpack.js' {
+  declare module.exports: $Exports<'webpack/bin/webpack'>;
+}
+declare module 'webpack/buildin/amd-define.js' {
+  declare module.exports: $Exports<'webpack/buildin/amd-define'>;
+}
+declare module 'webpack/buildin/amd-options.js' {
+  declare module.exports: $Exports<'webpack/buildin/amd-options'>;
+}
+declare module 'webpack/buildin/module.js' {
+  declare module.exports: $Exports<'webpack/buildin/module'>;
+}
+declare module 'webpack/buildin/return-require.js' {
+  declare module.exports: $Exports<'webpack/buildin/return-require'>;
+}
+declare module 'webpack/hot/dev-server.js' {
+  declare module.exports: $Exports<'webpack/hot/dev-server'>;
+}
+declare module 'webpack/hot/log-apply-result.js' {
+  declare module.exports: $Exports<'webpack/hot/log-apply-result'>;
+}
+declare module 'webpack/hot/only-dev-server.js' {
+  declare module.exports: $Exports<'webpack/hot/only-dev-server'>;
+}
+declare module 'webpack/hot/poll.js' {
+  declare module.exports: $Exports<'webpack/hot/poll'>;
+}
+declare module 'webpack/hot/signal.js' {
+  declare module.exports: $Exports<'webpack/hot/signal'>;
+}
+declare module 'webpack/lib/AbstractPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/AbstractPlugin'>;
+}
+declare module 'webpack/lib/AmdMainTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/AmdMainTemplatePlugin'>;
+}
+declare module 'webpack/lib/APIPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/APIPlugin'>;
+}
+declare module 'webpack/lib/ArrayMap.js' {
+  declare module.exports: $Exports<'webpack/lib/ArrayMap'>;
+}
+declare module 'webpack/lib/AsyncDependenciesBlock.js' {
+  declare module.exports: $Exports<'webpack/lib/AsyncDependenciesBlock'>;
+}
+declare module 'webpack/lib/AutomaticPrefetchPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/AutomaticPrefetchPlugin'>;
+}
+declare module 'webpack/lib/BannerPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/BannerPlugin'>;
+}
+declare module 'webpack/lib/BasicEvaluatedExpression.js' {
+  declare module.exports: $Exports<'webpack/lib/BasicEvaluatedExpression'>;
+}
+declare module 'webpack/lib/CachePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/CachePlugin'>;
+}
+declare module 'webpack/lib/CaseSensitiveModulesWarning.js' {
+  declare module.exports: $Exports<'webpack/lib/CaseSensitiveModulesWarning'>;
+}
+declare module 'webpack/lib/Chunk.js' {
+  declare module.exports: $Exports<'webpack/lib/Chunk'>;
+}
+declare module 'webpack/lib/ChunkRenderError.js' {
+  declare module.exports: $Exports<'webpack/lib/ChunkRenderError'>;
+}
+declare module 'webpack/lib/ChunkTemplate.js' {
+  declare module.exports: $Exports<'webpack/lib/ChunkTemplate'>;
+}
+declare module 'webpack/lib/CompatibilityPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/CompatibilityPlugin'>;
+}
+declare module 'webpack/lib/Compilation.js' {
+  declare module.exports: $Exports<'webpack/lib/Compilation'>;
+}
+declare module 'webpack/lib/Compiler.js' {
+  declare module.exports: $Exports<'webpack/lib/Compiler'>;
+}
+declare module 'webpack/lib/ConcatSource.js' {
+  declare module.exports: $Exports<'webpack/lib/ConcatSource'>;
+}
+declare module 'webpack/lib/ConstPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/ConstPlugin'>;
+}
+declare module 'webpack/lib/ContextModule.js' {
+  declare module.exports: $Exports<'webpack/lib/ContextModule'>;
+}
+declare module 'webpack/lib/ContextModuleFactory.js' {
+  declare module.exports: $Exports<'webpack/lib/ContextModuleFactory'>;
+}
+declare module 'webpack/lib/ContextReplacementPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/ContextReplacementPlugin'>;
+}
+declare module 'webpack/lib/CriticalDependenciesWarning.js' {
+  declare module.exports: $Exports<'webpack/lib/CriticalDependenciesWarning'>;
+}
+declare module 'webpack/lib/DefinePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/DefinePlugin'>;
+}
+declare module 'webpack/lib/DelegatedModule.js' {
+  declare module.exports: $Exports<'webpack/lib/DelegatedModule'>;
+}
+declare module 'webpack/lib/DelegatedModuleFactoryPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/DelegatedModuleFactoryPlugin'>;
+}
+declare module 'webpack/lib/DelegatedPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/DelegatedPlugin'>;
+}
+declare module 'webpack/lib/dependencies/AMDDefineDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/AMDDefineDependency'>;
+}
+declare module 'webpack/lib/dependencies/AMDDefineDependencyParserPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/AMDDefineDependencyParserPlugin'>;
+}
+declare module 'webpack/lib/dependencies/AMDPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/AMDPlugin'>;
+}
+declare module 'webpack/lib/dependencies/AMDRequireArrayDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/AMDRequireArrayDependency'>;
+}
+declare module 'webpack/lib/dependencies/AMDRequireContextDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/AMDRequireContextDependency'>;
+}
+declare module 'webpack/lib/dependencies/AMDRequireDependenciesBlock.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/AMDRequireDependenciesBlock'>;
+}
+declare module 'webpack/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/AMDRequireDependenciesBlockParserPlugin'>;
+}
+declare module 'webpack/lib/dependencies/AMDRequireDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/AMDRequireDependency'>;
+}
+declare module 'webpack/lib/dependencies/AMDRequireItemDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/AMDRequireItemDependency'>;
+}
+declare module 'webpack/lib/dependencies/CommonJsPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/CommonJsPlugin'>;
+}
+declare module 'webpack/lib/dependencies/CommonJsRequireContextDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/CommonJsRequireContextDependency'>;
+}
+declare module 'webpack/lib/dependencies/CommonJsRequireDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/CommonJsRequireDependency'>;
+}
+declare module 'webpack/lib/dependencies/CommonJsRequireDependencyParserPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/CommonJsRequireDependencyParserPlugin'>;
+}
+declare module 'webpack/lib/dependencies/ConstDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ConstDependency'>;
+}
+declare module 'webpack/lib/dependencies/ContextDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ContextDependency'>;
+}
+declare module 'webpack/lib/dependencies/ContextDependencyHelpers.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ContextDependencyHelpers'>;
+}
+declare module 'webpack/lib/dependencies/ContextDependencyTemplateAsId.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ContextDependencyTemplateAsId'>;
+}
+declare module 'webpack/lib/dependencies/ContextDependencyTemplateAsRequireCall.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ContextDependencyTemplateAsRequireCall'>;
+}
+declare module 'webpack/lib/dependencies/ContextElementDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ContextElementDependency'>;
+}
+declare module 'webpack/lib/dependencies/DelegatedSourceDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/DelegatedSourceDependency'>;
+}
+declare module 'webpack/lib/dependencies/DepBlockHelpers.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/DepBlockHelpers'>;
+}
+declare module 'webpack/lib/dependencies/DllEntryDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/DllEntryDependency'>;
+}
+declare module 'webpack/lib/dependencies/getFunctionExpression.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/getFunctionExpression'>;
+}
+declare module 'webpack/lib/dependencies/LabeledExportsDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/LabeledExportsDependency'>;
+}
+declare module 'webpack/lib/dependencies/LabeledModuleDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/LabeledModuleDependency'>;
+}
+declare module 'webpack/lib/dependencies/LabeledModuleDependencyParserPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/LabeledModuleDependencyParserPlugin'>;
+}
+declare module 'webpack/lib/dependencies/LabeledModulesPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/LabeledModulesPlugin'>;
+}
+declare module 'webpack/lib/dependencies/LoaderDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/LoaderDependency'>;
+}
+declare module 'webpack/lib/dependencies/LoaderPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/LoaderPlugin'>;
+}
+declare module 'webpack/lib/dependencies/LocalModule.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/LocalModule'>;
+}
+declare module 'webpack/lib/dependencies/LocalModuleDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/LocalModuleDependency'>;
+}
+declare module 'webpack/lib/dependencies/LocalModulesHelpers.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/LocalModulesHelpers'>;
+}
+declare module 'webpack/lib/dependencies/ModuleDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ModuleDependency'>;
+}
+declare module 'webpack/lib/dependencies/ModuleDependencyTemplateAsId.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ModuleDependencyTemplateAsId'>;
+}
+declare module 'webpack/lib/dependencies/ModuleDependencyTemplateAsRequireId.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ModuleDependencyTemplateAsRequireId'>;
+}
+declare module 'webpack/lib/dependencies/ModuleHotAcceptDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ModuleHotAcceptDependency'>;
+}
+declare module 'webpack/lib/dependencies/ModuleHotDeclineDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/ModuleHotDeclineDependency'>;
+}
+declare module 'webpack/lib/dependencies/MultiEntryDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/MultiEntryDependency'>;
+}
+declare module 'webpack/lib/dependencies/NullDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/NullDependency'>;
+}
+declare module 'webpack/lib/dependencies/NullDependencyTemplate.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/NullDependencyTemplate'>;
+}
+declare module 'webpack/lib/dependencies/PrefetchDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/PrefetchDependency'>;
+}
+declare module 'webpack/lib/dependencies/RequireContextDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireContextDependency'>;
+}
+declare module 'webpack/lib/dependencies/RequireContextDependencyParserPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireContextDependencyParserPlugin'>;
+}
+declare module 'webpack/lib/dependencies/RequireContextPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireContextPlugin'>;
+}
+declare module 'webpack/lib/dependencies/RequireEnsureDependenciesBlock.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireEnsureDependenciesBlock'>;
+}
+declare module 'webpack/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin'>;
+}
+declare module 'webpack/lib/dependencies/RequireEnsureDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireEnsureDependency'>;
+}
+declare module 'webpack/lib/dependencies/RequireEnsureItemDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireEnsureItemDependency'>;
+}
+declare module 'webpack/lib/dependencies/RequireEnsurePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireEnsurePlugin'>;
+}
+declare module 'webpack/lib/dependencies/RequireHeaderDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireHeaderDependency'>;
+}
+declare module 'webpack/lib/dependencies/RequireIncludeDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireIncludeDependency'>;
+}
+declare module 'webpack/lib/dependencies/RequireIncludeDependencyParserPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireIncludeDependencyParserPlugin'>;
+}
+declare module 'webpack/lib/dependencies/RequireIncludePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireIncludePlugin'>;
+}
+declare module 'webpack/lib/dependencies/RequireResolveContextDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireResolveContextDependency'>;
+}
+declare module 'webpack/lib/dependencies/RequireResolveDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireResolveDependency'>;
+}
+declare module 'webpack/lib/dependencies/RequireResolveDependencyParserPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireResolveDependencyParserPlugin'>;
+}
+declare module 'webpack/lib/dependencies/RequireResolveHeaderDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/RequireResolveHeaderDependency'>;
+}
+declare module 'webpack/lib/dependencies/SingleEntryDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/SingleEntryDependency'>;
+}
+declare module 'webpack/lib/dependencies/TemplateArgumentDependency.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/TemplateArgumentDependency'>;
+}
+declare module 'webpack/lib/dependencies/WebpackMissingModule.js' {
+  declare module.exports: $Exports<'webpack/lib/dependencies/WebpackMissingModule'>;
+}
+declare module 'webpack/lib/DependenciesBlock.js' {
+  declare module.exports: $Exports<'webpack/lib/DependenciesBlock'>;
+}
+declare module 'webpack/lib/DependenciesBlockVariable.js' {
+  declare module.exports: $Exports<'webpack/lib/DependenciesBlockVariable'>;
+}
+declare module 'webpack/lib/Dependency.js' {
+  declare module.exports: $Exports<'webpack/lib/Dependency'>;
+}
+declare module 'webpack/lib/DllEntryPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/DllEntryPlugin'>;
+}
+declare module 'webpack/lib/DllModule.js' {
+  declare module.exports: $Exports<'webpack/lib/DllModule'>;
+}
+declare module 'webpack/lib/DllModuleFactory.js' {
+  declare module.exports: $Exports<'webpack/lib/DllModuleFactory'>;
+}
+declare module 'webpack/lib/DllPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/DllPlugin'>;
+}
+declare module 'webpack/lib/DllReferencePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/DllReferencePlugin'>;
+}
+declare module 'webpack/lib/EntryModuleNotFoundError.js' {
+  declare module.exports: $Exports<'webpack/lib/EntryModuleNotFoundError'>;
+}
+declare module 'webpack/lib/EntryOptionPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/EntryOptionPlugin'>;
+}
+declare module 'webpack/lib/EnvironmentPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/EnvironmentPlugin'>;
+}
+declare module 'webpack/lib/EvalDevToolModulePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/EvalDevToolModulePlugin'>;
+}
+declare module 'webpack/lib/EvalDevToolModuleTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/EvalDevToolModuleTemplatePlugin'>;
+}
+declare module 'webpack/lib/EvalSourceMapDevToolModuleTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/EvalSourceMapDevToolModuleTemplatePlugin'>;
+}
+declare module 'webpack/lib/EvalSourceMapDevToolPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/EvalSourceMapDevToolPlugin'>;
+}
+declare module 'webpack/lib/ExtendedAPIPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/ExtendedAPIPlugin'>;
+}
+declare module 'webpack/lib/ExternalModule.js' {
+  declare module.exports: $Exports<'webpack/lib/ExternalModule'>;
+}
+declare module 'webpack/lib/ExternalModuleFactoryPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/ExternalModuleFactoryPlugin'>;
+}
+declare module 'webpack/lib/ExternalsPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/ExternalsPlugin'>;
+}
+declare module 'webpack/lib/FunctionModulePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/FunctionModulePlugin'>;
+}
+declare module 'webpack/lib/FunctionModuleTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/FunctionModuleTemplatePlugin'>;
+}
+declare module 'webpack/lib/HotModuleReplacement.runtime.js' {
+  declare module.exports: $Exports<'webpack/lib/HotModuleReplacement.runtime'>;
+}
+declare module 'webpack/lib/HotModuleReplacementPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/HotModuleReplacementPlugin'>;
+}
+declare module 'webpack/lib/HotUpdateChunkTemplate.js' {
+  declare module.exports: $Exports<'webpack/lib/HotUpdateChunkTemplate'>;
+}
+declare module 'webpack/lib/IgnorePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/IgnorePlugin'>;
+}
+declare module 'webpack/lib/JsonpChunkTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/JsonpChunkTemplatePlugin'>;
+}
+declare module 'webpack/lib/JsonpExportMainTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/JsonpExportMainTemplatePlugin'>;
+}
+declare module 'webpack/lib/JsonpHotUpdateChunkTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/JsonpHotUpdateChunkTemplatePlugin'>;
+}
+declare module 'webpack/lib/JsonpMainTemplate.runtime.js' {
+  declare module.exports: $Exports<'webpack/lib/JsonpMainTemplate.runtime'>;
+}
+declare module 'webpack/lib/JsonpMainTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/JsonpMainTemplatePlugin'>;
+}
+declare module 'webpack/lib/JsonpTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/JsonpTemplatePlugin'>;
+}
+declare module 'webpack/lib/LibManifestPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/LibManifestPlugin'>;
+}
+declare module 'webpack/lib/LibraryTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/LibraryTemplatePlugin'>;
+}
+declare module 'webpack/lib/LoaderTargetPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/LoaderTargetPlugin'>;
+}
+declare module 'webpack/lib/MainTemplate.js' {
+  declare module.exports: $Exports<'webpack/lib/MainTemplate'>;
+}
+declare module 'webpack/lib/MemoryOutputFileSystem.js' {
+  declare module.exports: $Exports<'webpack/lib/MemoryOutputFileSystem'>;
+}
+declare module 'webpack/lib/Module.js' {
+  declare module.exports: $Exports<'webpack/lib/Module'>;
+}
+declare module 'webpack/lib/ModuleFilenameHelpers.js' {
+  declare module.exports: $Exports<'webpack/lib/ModuleFilenameHelpers'>;
+}
+declare module 'webpack/lib/ModuleNotFoundError.js' {
+  declare module.exports: $Exports<'webpack/lib/ModuleNotFoundError'>;
+}
+declare module 'webpack/lib/ModuleParseError.js' {
+  declare module.exports: $Exports<'webpack/lib/ModuleParseError'>;
+}
+declare module 'webpack/lib/ModuleParserHelpers.js' {
+  declare module.exports: $Exports<'webpack/lib/ModuleParserHelpers'>;
+}
+declare module 'webpack/lib/ModuleReason.js' {
+  declare module.exports: $Exports<'webpack/lib/ModuleReason'>;
+}
+declare module 'webpack/lib/ModuleTemplate.js' {
+  declare module.exports: $Exports<'webpack/lib/ModuleTemplate'>;
+}
+declare module 'webpack/lib/MovedToPluginWarningPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/MovedToPluginWarningPlugin'>;
+}
+declare module 'webpack/lib/MultiCompiler.js' {
+  declare module.exports: $Exports<'webpack/lib/MultiCompiler'>;
+}
+declare module 'webpack/lib/MultiEntryPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/MultiEntryPlugin'>;
+}
+declare module 'webpack/lib/MultiModule.js' {
+  declare module.exports: $Exports<'webpack/lib/MultiModule'>;
+}
+declare module 'webpack/lib/MultiModuleFactory.js' {
+  declare module.exports: $Exports<'webpack/lib/MultiModuleFactory'>;
+}
+declare module 'webpack/lib/NamedModulesPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/NamedModulesPlugin'>;
+}
+declare module 'webpack/lib/NewWatchingPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/NewWatchingPlugin'>;
+}
+declare module 'webpack/lib/node/NodeChunkTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeChunkTemplatePlugin'>;
+}
+declare module 'webpack/lib/node/NodeEnvironmentPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeEnvironmentPlugin'>;
+}
+declare module 'webpack/lib/node/NodeHotUpdateChunkTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeHotUpdateChunkTemplatePlugin'>;
+}
+declare module 'webpack/lib/node/NodeMainTemplate.runtime.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeMainTemplate.runtime'>;
+}
+declare module 'webpack/lib/node/NodeMainTemplateAsync.runtime.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeMainTemplateAsync.runtime'>;
+}
+declare module 'webpack/lib/node/NodeMainTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeMainTemplatePlugin'>;
+}
+declare module 'webpack/lib/node/NodeOutputFileSystem.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeOutputFileSystem'>;
+}
+declare module 'webpack/lib/node/NodeSourcePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeSourcePlugin'>;
+}
+declare module 'webpack/lib/node/NodeTargetPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeTargetPlugin'>;
+}
+declare module 'webpack/lib/node/NodeTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeTemplatePlugin'>;
+}
+declare module 'webpack/lib/node/NodeWatchFileSystem.js' {
+  declare module.exports: $Exports<'webpack/lib/node/NodeWatchFileSystem'>;
+}
+declare module 'webpack/lib/node/OldNodeWatchFileSystem.js' {
+  declare module.exports: $Exports<'webpack/lib/node/OldNodeWatchFileSystem'>;
+}
+declare module 'webpack/lib/NodeStuffPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/NodeStuffPlugin'>;
+}
+declare module 'webpack/lib/NoErrorsPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/NoErrorsPlugin'>;
+}
+declare module 'webpack/lib/NormalModule.js' {
+  declare module.exports: $Exports<'webpack/lib/NormalModule'>;
+}
+declare module 'webpack/lib/NormalModuleFactory.js' {
+  declare module.exports: $Exports<'webpack/lib/NormalModuleFactory'>;
+}
+declare module 'webpack/lib/NormalModuleReplacementPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/NormalModuleReplacementPlugin'>;
+}
+declare module 'webpack/lib/NullFactory.js' {
+  declare module.exports: $Exports<'webpack/lib/NullFactory'>;
+}
+declare module 'webpack/lib/OldWatchingPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/OldWatchingPlugin'>;
+}
+declare module 'webpack/lib/optimize/AggressiveMergingPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/AggressiveMergingPlugin'>;
+}
+declare module 'webpack/lib/optimize/CommonsChunkPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/CommonsChunkPlugin'>;
+}
+declare module 'webpack/lib/optimize/DedupePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/DedupePlugin'>;
+}
+declare module 'webpack/lib/optimize/FlagIncludedChunksPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/FlagIncludedChunksPlugin'>;
+}
+declare module 'webpack/lib/optimize/LimitChunkCountPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/LimitChunkCountPlugin'>;
+}
+declare module 'webpack/lib/optimize/MergeDuplicateChunksPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/MergeDuplicateChunksPlugin'>;
+}
+declare module 'webpack/lib/optimize/MinChunkSizePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/MinChunkSizePlugin'>;
+}
+declare module 'webpack/lib/optimize/OccurenceOrderPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/OccurenceOrderPlugin'>;
+}
+declare module 'webpack/lib/optimize/OccurrenceOrderPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/OccurrenceOrderPlugin'>;
+}
+declare module 'webpack/lib/optimize/RemoveEmptyChunksPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/RemoveEmptyChunksPlugin'>;
+}
+declare module 'webpack/lib/optimize/RemoveParentModulesPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/RemoveParentModulesPlugin'>;
+}
+declare module 'webpack/lib/optimize/UglifyJsPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/optimize/UglifyJsPlugin'>;
+}
+declare module 'webpack/lib/OptionsApply.js' {
+  declare module.exports: $Exports<'webpack/lib/OptionsApply'>;
+}
+declare module 'webpack/lib/OriginalSource.js' {
+  declare module.exports: $Exports<'webpack/lib/OriginalSource'>;
+}
+declare module 'webpack/lib/Parser.js' {
+  declare module.exports: $Exports<'webpack/lib/Parser'>;
+}
+declare module 'webpack/lib/PrefetchPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/PrefetchPlugin'>;
+}
+declare module 'webpack/lib/ProgressPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/ProgressPlugin'>;
+}
+declare module 'webpack/lib/ProvidePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/ProvidePlugin'>;
+}
+declare module 'webpack/lib/RawModule.js' {
+  declare module.exports: $Exports<'webpack/lib/RawModule'>;
+}
+declare module 'webpack/lib/RawSource.js' {
+  declare module.exports: $Exports<'webpack/lib/RawSource'>;
+}
+declare module 'webpack/lib/RecordIdsPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/RecordIdsPlugin'>;
+}
+declare module 'webpack/lib/removeAndDo.js' {
+  declare module.exports: $Exports<'webpack/lib/removeAndDo'>;
+}
+declare module 'webpack/lib/RequestShortener.js' {
+  declare module.exports: $Exports<'webpack/lib/RequestShortener'>;
+}
+declare module 'webpack/lib/RequireJsStuffPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/RequireJsStuffPlugin'>;
+}
+declare module 'webpack/lib/ResolverPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/ResolverPlugin'>;
+}
+declare module 'webpack/lib/SetVarMainTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/SetVarMainTemplatePlugin'>;
+}
+declare module 'webpack/lib/SingleEntryPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/SingleEntryPlugin'>;
+}
+declare module 'webpack/lib/Source.js' {
+  declare module.exports: $Exports<'webpack/lib/Source'>;
+}
+declare module 'webpack/lib/SourceMapDevToolModuleOptionsPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/SourceMapDevToolModuleOptionsPlugin'>;
+}
+declare module 'webpack/lib/SourceMapDevToolPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/SourceMapDevToolPlugin'>;
+}
+declare module 'webpack/lib/SourceMapSource.js' {
+  declare module.exports: $Exports<'webpack/lib/SourceMapSource'>;
+}
+declare module 'webpack/lib/Stats.js' {
+  declare module.exports: $Exports<'webpack/lib/Stats'>;
+}
+declare module 'webpack/lib/Template.js' {
+  declare module.exports: $Exports<'webpack/lib/Template'>;
+}
+declare module 'webpack/lib/TemplatedPathPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/TemplatedPathPlugin'>;
+}
+declare module 'webpack/lib/UmdMainTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/UmdMainTemplatePlugin'>;
+}
+declare module 'webpack/lib/UnsupportedFeatureWarning.js' {
+  declare module.exports: $Exports<'webpack/lib/UnsupportedFeatureWarning'>;
+}
+declare module 'webpack/lib/WarnCaseSensitiveModulesPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/WarnCaseSensitiveModulesPlugin'>;
+}
+declare module 'webpack/lib/WatchIgnorePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/WatchIgnorePlugin'>;
+}
+declare module 'webpack/lib/web/WebEnvironmentPlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/web/WebEnvironmentPlugin'>;
+}
+declare module 'webpack/lib/webpack.js' {
+  declare module.exports: $Exports<'webpack/lib/webpack'>;
+}
+declare module 'webpack/lib/webpack.web.js' {
+  declare module.exports: $Exports<'webpack/lib/webpack.web'>;
+}
+declare module 'webpack/lib/WebpackOptionsApply.js' {
+  declare module.exports: $Exports<'webpack/lib/WebpackOptionsApply'>;
+}
+declare module 'webpack/lib/WebpackOptionsDefaulter.js' {
+  declare module.exports: $Exports<'webpack/lib/WebpackOptionsDefaulter'>;
+}
+declare module 'webpack/lib/webworker/WebWorkerChunkTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/webworker/WebWorkerChunkTemplatePlugin'>;
+}
+declare module 'webpack/lib/webworker/WebWorkerMainTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/webworker/WebWorkerMainTemplatePlugin'>;
+}
+declare module 'webpack/lib/webworker/WebWorkerTemplatePlugin.js' {
+  declare module.exports: $Exports<'webpack/lib/webworker/WebWorkerTemplatePlugin'>;
+}
+declare module 'webpack/web_modules/node-libs-browser.js' {
+  declare module.exports: $Exports<'webpack/web_modules/node-libs-browser'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/weex-components_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/weex-components_vx.x.x.js b/flow-typed/npm/weex-components_vx.x.x.js
new file mode 100644
index 0000000..b4615a5
--- /dev/null
+++ b/flow-typed/npm/weex-components_vx.x.x.js
@@ -0,0 +1,33 @@
+// flow-typed signature: 0abd8b99a8e00c7edae8e51805dfb2ab
+// flow-typed version: <<STUB>>/weex-components_v^0.2.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'weex-components'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'weex-components' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+
+
+// Filename aliases
+declare module 'weex-components/index' {
+  declare module.exports: $Exports<'weex-components'>;
+}
+declare module 'weex-components/index.js' {
+  declare module.exports: $Exports<'weex-components'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/weex-loader_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/weex-loader_vx.x.x.js b/flow-typed/npm/weex-loader_vx.x.x.js
new file mode 100644
index 0000000..6289da2
--- /dev/null
+++ b/flow-typed/npm/weex-loader_vx.x.x.js
@@ -0,0 +1,108 @@
+// flow-typed signature: 5a371aa0242b941a1b424a58cfca1821
+// flow-typed version: <<STUB>>/weex-loader_v^0.4.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'weex-loader'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'weex-loader' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'weex-loader/lib/config' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/element' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/extract' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/json' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/legacy' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/loader' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/parser' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/script' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/style' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/template' {
+  declare module.exports: any;
+}
+
+declare module 'weex-loader/lib/util' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'weex-loader/index' {
+  declare module.exports: $Exports<'weex-loader'>;
+}
+declare module 'weex-loader/index.js' {
+  declare module.exports: $Exports<'weex-loader'>;
+}
+declare module 'weex-loader/lib/config.js' {
+  declare module.exports: $Exports<'weex-loader/lib/config'>;
+}
+declare module 'weex-loader/lib/element.js' {
+  declare module.exports: $Exports<'weex-loader/lib/element'>;
+}
+declare module 'weex-loader/lib/extract.js' {
+  declare module.exports: $Exports<'weex-loader/lib/extract'>;
+}
+declare module 'weex-loader/lib/json.js' {
+  declare module.exports: $Exports<'weex-loader/lib/json'>;
+}
+declare module 'weex-loader/lib/legacy.js' {
+  declare module.exports: $Exports<'weex-loader/lib/legacy'>;
+}
+declare module 'weex-loader/lib/loader.js' {
+  declare module.exports: $Exports<'weex-loader/lib/loader'>;
+}
+declare module 'weex-loader/lib/parser.js' {
+  declare module.exports: $Exports<'weex-loader/lib/parser'>;
+}
+declare module 'weex-loader/lib/script.js' {
+  declare module.exports: $Exports<'weex-loader/lib/script'>;
+}
+declare module 'weex-loader/lib/style.js' {
+  declare module.exports: $Exports<'weex-loader/lib/style'>;
+}
+declare module 'weex-loader/lib/template.js' {
+  declare module.exports: $Exports<'weex-loader/lib/template'>;
+}
+declare module 'weex-loader/lib/util.js' {
+  declare module.exports: $Exports<'weex-loader/lib/util'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/weex-picker_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/weex-picker_vx.x.x.js b/flow-typed/npm/weex-picker_vx.x.x.js
new file mode 100644
index 0000000..c608439
--- /dev/null
+++ b/flow-typed/npm/weex-picker_vx.x.x.js
@@ -0,0 +1,81 @@
+// flow-typed signature: 3483cf46c238a8ded0b47931a93cec11
+// flow-typed version: <<STUB>>/weex-picker_v^0.1.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'weex-picker'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'weex-picker' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'weex-picker/dist/index' {
+  declare module.exports: any;
+}
+
+declare module 'weex-picker/examples/build/index' {
+  declare module.exports: any;
+}
+
+declare module 'weex-picker/examples/build/main' {
+  declare module.exports: any;
+}
+
+declare module 'weex-picker/rollup.config' {
+  declare module.exports: any;
+}
+
+declare module 'weex-picker/src/index' {
+  declare module.exports: any;
+}
+
+declare module 'weex-picker/src/Picker' {
+  declare module.exports: any;
+}
+
+declare module 'weex-picker/src/TimePicker' {
+  declare module.exports: any;
+}
+
+declare module 'weex-picker/webpack.examples.config' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'weex-picker/dist/index.js' {
+  declare module.exports: $Exports<'weex-picker/dist/index'>;
+}
+declare module 'weex-picker/examples/build/index.js' {
+  declare module.exports: $Exports<'weex-picker/examples/build/index'>;
+}
+declare module 'weex-picker/examples/build/main.js' {
+  declare module.exports: $Exports<'weex-picker/examples/build/main'>;
+}
+declare module 'weex-picker/rollup.config.js' {
+  declare module.exports: $Exports<'weex-picker/rollup.config'>;
+}
+declare module 'weex-picker/src/index.js' {
+  declare module.exports: $Exports<'weex-picker/src/index'>;
+}
+declare module 'weex-picker/src/Picker.js' {
+  declare module.exports: $Exports<'weex-picker/src/Picker'>;
+}
+declare module 'weex-picker/src/TimePicker.js' {
+  declare module.exports: $Exports<'weex-picker/src/TimePicker'>;
+}
+declare module 'weex-picker/webpack.examples.config.js' {
+  declare module.exports: $Exports<'weex-picker/webpack.examples.config'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/weex-rax-framework_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/weex-rax-framework_vx.x.x.js b/flow-typed/npm/weex-rax-framework_vx.x.x.js
new file mode 100644
index 0000000..62ca293
--- /dev/null
+++ b/flow-typed/npm/weex-rax-framework_vx.x.x.js
@@ -0,0 +1,165 @@
+// flow-typed signature: 4392dc560809ad144be63641bda4cc97
+// flow-typed version: <<STUB>>/weex-rax-framework_v0.1.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'weex-rax-framework'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'weex-rax-framework' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'weex-rax-framework/dist/framework.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/lib/builtin' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/lib/define.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/lib/downgrade.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/lib/emitter' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/lib/fetch.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/lib/index' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/lib/require.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/lib/semver' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/lib/timer.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/__tests__/index' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/builtin' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/define.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/downgrade.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/emitter' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/fetch.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/index' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/require.weex' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/semver' {
+  declare module.exports: any;
+}
+
+declare module 'weex-rax-framework/src/timer.weex' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'weex-rax-framework/dist/framework.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/dist/framework.weex'>;
+}
+declare module 'weex-rax-framework/lib/builtin.js' {
+  declare module.exports: $Exports<'weex-rax-framework/lib/builtin'>;
+}
+declare module 'weex-rax-framework/lib/define.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/lib/define.weex'>;
+}
+declare module 'weex-rax-framework/lib/downgrade.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/lib/downgrade.weex'>;
+}
+declare module 'weex-rax-framework/lib/emitter.js' {
+  declare module.exports: $Exports<'weex-rax-framework/lib/emitter'>;
+}
+declare module 'weex-rax-framework/lib/fetch.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/lib/fetch.weex'>;
+}
+declare module 'weex-rax-framework/lib/index.js' {
+  declare module.exports: $Exports<'weex-rax-framework/lib/index'>;
+}
+declare module 'weex-rax-framework/lib/require.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/lib/require.weex'>;
+}
+declare module 'weex-rax-framework/lib/semver.js' {
+  declare module.exports: $Exports<'weex-rax-framework/lib/semver'>;
+}
+declare module 'weex-rax-framework/lib/timer.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/lib/timer.weex'>;
+}
+declare module 'weex-rax-framework/src/__tests__/index.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/__tests__/index'>;
+}
+declare module 'weex-rax-framework/src/builtin.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/builtin'>;
+}
+declare module 'weex-rax-framework/src/define.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/define.weex'>;
+}
+declare module 'weex-rax-framework/src/downgrade.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/downgrade.weex'>;
+}
+declare module 'weex-rax-framework/src/emitter.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/emitter'>;
+}
+declare module 'weex-rax-framework/src/fetch.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/fetch.weex'>;
+}
+declare module 'weex-rax-framework/src/index.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/index'>;
+}
+declare module 'weex-rax-framework/src/require.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/require.weex'>;
+}
+declare module 'weex-rax-framework/src/semver.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/semver'>;
+}
+declare module 'weex-rax-framework/src/timer.weex.js' {
+  declare module.exports: $Exports<'weex-rax-framework/src/timer.weex'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/weex-styler_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/weex-styler_vx.x.x.js b/flow-typed/npm/weex-styler_vx.x.x.js
new file mode 100644
index 0000000..aa35de2
--- /dev/null
+++ b/flow-typed/npm/weex-styler_vx.x.x.js
@@ -0,0 +1,66 @@
+// flow-typed signature: 79823ba3c787ac106412b241663bcbe4
+// flow-typed version: <<STUB>>/weex-styler_v0.1.9/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'weex-styler'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'weex-styler' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'weex-styler/gulpfile' {
+  declare module.exports: any;
+}
+
+declare module 'weex-styler/lib/util' {
+  declare module.exports: any;
+}
+
+declare module 'weex-styler/lib/validator' {
+  declare module.exports: any;
+}
+
+declare module 'weex-styler/test/parse' {
+  declare module.exports: any;
+}
+
+declare module 'weex-styler/test/validate' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'weex-styler/gulpfile.js' {
+  declare module.exports: $Exports<'weex-styler/gulpfile'>;
+}
+declare module 'weex-styler/index' {
+  declare module.exports: $Exports<'weex-styler'>;
+}
+declare module 'weex-styler/index.js' {
+  declare module.exports: $Exports<'weex-styler'>;
+}
+declare module 'weex-styler/lib/util.js' {
+  declare module.exports: $Exports<'weex-styler/lib/util'>;
+}
+declare module 'weex-styler/lib/validator.js' {
+  declare module.exports: $Exports<'weex-styler/lib/validator'>;
+}
+declare module 'weex-styler/test/parse.js' {
+  declare module.exports: $Exports<'weex-styler/test/parse'>;
+}
+declare module 'weex-styler/test/validate.js' {
+  declare module.exports: $Exports<'weex-styler/test/validate'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/weex-vdom-tester_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/weex-vdom-tester_vx.x.x.js b/flow-typed/npm/weex-vdom-tester_vx.x.x.js
new file mode 100644
index 0000000..791c4fc
--- /dev/null
+++ b/flow-typed/npm/weex-vdom-tester_vx.x.x.js
@@ -0,0 +1,108 @@
+// flow-typed signature: f905b3d333ecfc2f63f26be6398f5726
+// flow-typed version: <<STUB>>/weex-vdom-tester_v^0.2.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'weex-vdom-tester'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'weex-vdom-tester' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'weex-vdom-tester/lib/document' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/env/default' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/instance' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/modules/dom' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/modules/index' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/modules/modal' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/modules/storage' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/modules/stream' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/modules/timer' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/runtime' {
+  declare module.exports: any;
+}
+
+declare module 'weex-vdom-tester/lib/util' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'weex-vdom-tester/index' {
+  declare module.exports: $Exports<'weex-vdom-tester'>;
+}
+declare module 'weex-vdom-tester/index.js' {
+  declare module.exports: $Exports<'weex-vdom-tester'>;
+}
+declare module 'weex-vdom-tester/lib/document.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/document'>;
+}
+declare module 'weex-vdom-tester/lib/env/default.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/env/default'>;
+}
+declare module 'weex-vdom-tester/lib/instance.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/instance'>;
+}
+declare module 'weex-vdom-tester/lib/modules/dom.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/modules/dom'>;
+}
+declare module 'weex-vdom-tester/lib/modules/index.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/modules/index'>;
+}
+declare module 'weex-vdom-tester/lib/modules/modal.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/modules/modal'>;
+}
+declare module 'weex-vdom-tester/lib/modules/storage.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/modules/storage'>;
+}
+declare module 'weex-vdom-tester/lib/modules/stream.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/modules/stream'>;
+}
+declare module 'weex-vdom-tester/lib/modules/timer.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/modules/timer'>;
+}
+declare module 'weex-vdom-tester/lib/runtime.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/runtime'>;
+}
+declare module 'weex-vdom-tester/lib/util.js' {
+  declare module.exports: $Exports<'weex-vdom-tester/lib/util'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/weex-vue-framework_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/weex-vue-framework_vx.x.x.js b/flow-typed/npm/weex-vue-framework_vx.x.x.js
new file mode 100644
index 0000000..2ce63fe
--- /dev/null
+++ b/flow-typed/npm/weex-vue-framework_vx.x.x.js
@@ -0,0 +1,33 @@
+// flow-typed signature: 0edb1cf34a48fa865c4438f2e1545b18
+// flow-typed version: <<STUB>>/weex-vue-framework_v2.2.1-weex.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'weex-vue-framework'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'weex-vue-framework' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+
+
+// Filename aliases
+declare module 'weex-vue-framework/index' {
+  declare module.exports: $Exports<'weex-vue-framework'>;
+}
+declare module 'weex-vue-framework/index.js' {
+  declare module.exports: $Exports<'weex-vue-framework'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/weex-wd_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/weex-wd_vx.x.x.js b/flow-typed/npm/weex-wd_vx.x.x.js
new file mode 100644
index 0000000..f6b109b
--- /dev/null
+++ b/flow-typed/npm/weex-wd_vx.x.x.js
@@ -0,0 +1,38 @@
+// flow-typed signature: 8dc478a9fcb63f6a98329f141880527e
+// flow-typed version: <<STUB>>/weex-wd_v^1.0.14/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'weex-wd'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'weex-wd' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'weex-wd/test/index' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'weex-wd/index' {
+  declare module.exports: $Exports<'weex-wd'>;
+}
+declare module 'weex-wd/index.js' {
+  declare module.exports: $Exports<'weex-wd'>;
+}
+declare module 'weex-wd/test/index.js' {
+  declare module.exports: $Exports<'weex-wd/test/index'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/wwp_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/wwp_vx.x.x.js b/flow-typed/npm/wwp_vx.x.x.js
new file mode 100644
index 0000000..46487f3
--- /dev/null
+++ b/flow-typed/npm/wwp_vx.x.x.js
@@ -0,0 +1,39 @@
+// flow-typed signature: bb6805e77c077ed3ae6a0e2af1b8ea56
+// flow-typed version: <<STUB>>/wwp_v^0.3.5/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'wwp'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'wwp' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'wwp/lib/index' {
+  declare module.exports: any;
+}
+
+declare module 'wwp/lib/log' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'wwp/lib/index.js' {
+  declare module.exports: $Exports<'wwp/lib/index'>;
+}
+declare module 'wwp/lib/log.js' {
+  declare module.exports: $Exports<'wwp/lib/log'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/xml2map_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/xml2map_vx.x.x.js b/flow-typed/npm/xml2map_vx.x.x.js
new file mode 100644
index 0000000..c663a82
--- /dev/null
+++ b/flow-typed/npm/xml2map_vx.x.x.js
@@ -0,0 +1,45 @@
+// flow-typed signature: 75b2ed78c4960551e737e2f3c49b68b2
+// flow-typed version: <<STUB>>/xml2map_v^1.0.2/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'xml2map'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'xml2map' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'xml2map/lib/xml2map' {
+  declare module.exports: any;
+}
+
+declare module 'xml2map/test/xml2map.test' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'xml2map/index' {
+  declare module.exports: $Exports<'xml2map'>;
+}
+declare module 'xml2map/index.js' {
+  declare module.exports: $Exports<'xml2map'>;
+}
+declare module 'xml2map/lib/xml2map.js' {
+  declare module.exports: $Exports<'xml2map/lib/xml2map'>;
+}
+declare module 'xml2map/test/xml2map.test.js' {
+  declare module.exports: $Exports<'xml2map/test/xml2map.test'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/html5/render/vue/mixins/input-common.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/mixins/input-common.js b/html5/render/vue/mixins/input-common.js
index b2d34eb..067c8ad 100644
--- a/html5/render/vue/mixins/input-common.js
+++ b/html5/render/vue/mixins/input-common.js
@@ -1,7 +1,9 @@
+// @flow
+
 // input and textare has some common api and event
 import { extend } from '../utils'
 
-const findEnterKeyType = function (key) {
+const findEnterKeyType = function (key: string) : string {
   const keys = ['default', 'go', 'next', 'search', 'send']
   if (keys.indexOf(key) > -1) {
     return key
@@ -17,8 +19,8 @@ export default {
     blur () {
       this.$el && this.$el.blur()
     },
-    // support enter key envent
-    createKeyboardEvent (events) {
+    // support enter key event
+    createKeyboardEvent (events: {}) {
       const customKeyType = this.returnKeyType
       const self = this
       if (this._events['return']) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/html5/render/vue/utils/event.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/event.js b/html5/render/vue/utils/event.js
index ef9904b..a69d070 100644
--- a/html5/render/vue/utils/event.js
+++ b/html5/render/vue/utils/event.js
@@ -1,4 +1,15 @@
-import { extend } from './func'
+// import { extend } from './func'
+
+function extend (to, ...args) {
+  if (!args || args.length <= 0) { return to }
+  args.forEach(from => {
+    if (typeof from !== 'object') { return }
+    for (const key in from) {
+      to[key] = from[key]
+    }
+  })
+  return to
+}
 
 /**
  * Create Event.
@@ -65,3 +76,7 @@ export function mapFormEvents (context) {
   })
   return eventMap
 }
+
+export default {
+  mapFormEvents
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/html5/render/vue/utils/func.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/func.js b/html5/render/vue/utils/func.js
index 005f1ca..0a89378 100644
--- a/html5/render/vue/utils/func.js
+++ b/html5/render/vue/utils/func.js
@@ -1,8 +1,10 @@
+// @flow
+
 /**
  * Mix properties into target object.
  * the rightest object's value has the highest priority.
  */
-export function extend (to, ...args) {
+export function extend (to: {}, ...args: Array<{}>): {} {
   if (!args || args.length <= 0) { return to }
   args.forEach(from => {
     if (typeof from !== 'object') { return }
@@ -16,10 +18,9 @@ export function extend (to, ...args) {
 /**
  * Mix specified properties into target object.
  */
-export function extendKeys (to, from, keys) {
-  if (!from) { return to }
+export function extendKeys (to: {}, from: {} = {}, keys: Array<string>): {} {
   (keys || []).forEach(key => {
-    to[key] = from[key]
+    from && (to[key] = from[key])
   })
   return to
 }
@@ -27,11 +28,11 @@ export function extendKeys (to, from, keys) {
 /**
  * Extract specified properties from src to target object.
  */
-export function extractKeys (to, from, keys) {
+export function extractKeys (to: {}, from: {} = {}, keys: Array<string>) {
   if (!from) { return to }
   (keys || []).forEach(key => {
-    to[key] = from[key]
-    delete from[key]
+    from && (to[key] = from[key])
+    from && (delete from[key])
   })
   return to
 }
@@ -43,8 +44,8 @@ export function extractKeys (to, from, keys) {
  * @param {Object} ctx
  * @return {Function}
  */
-export function bind (fn, ctx) {
-  return function (a) {
+export function bind (fn: Function, ctx: mixed) {
+  return function (a: mixed) {
     const l = arguments.length
     return l
       ? l > 1
@@ -57,7 +58,7 @@ export function bind (fn, ctx) {
 /**
  * Only call the func the last time before it's not that frequently called.
  */
-export function debounce (func, wait) {
+export function debounce (func: Function, wait: number) {
   let timerId
   function later () {
     timerId = null
@@ -72,7 +73,7 @@ export function debounce (func, wait) {
 /**
  * Only call the func the first time before a series frequently function calls happen.
  */
-export function depress (func, wait) {
+export function depress (func: Function, wait: number) {
   let timerId
   function later () {
     timerId = null
@@ -89,11 +90,11 @@ export function depress (func, wait) {
 /**
  * Only call the func every time after a wait milliseconds if it's too frequently called.
  */
-export function throttle (func, wait, callLastTime, tag) {
+export function throttle (func: Function, wait: number, callLastTime: boolean) {
   let last = 0
   let lastTimer = null
   const lastTimeDuration = wait + (wait > 25 ? wait : 25)  // plus half wait time.
-  return function (...args) {
+  return function (...args: Array<mixed>) {
     const context = this
     const time = new Date().getTime()
     if (time - last > wait) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/html5/render/vue/utils/lazyload.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/lazyload.js b/html5/render/vue/utils/lazyload.js
index e770def..db3d48e 100644
--- a/html5/render/vue/utils/lazyload.js
+++ b/html5/render/vue/utils/lazyload.js
@@ -1,3 +1,5 @@
+// @flow
+
 import { isElementVisible } from './component'
 import { createEvent, dispatchEvent } from './event'
 import { throttle } from './func'
@@ -7,14 +9,16 @@ import { tagImg } from './perf'
 const SCREEN_REC_LIMIT = 3  // just record the first 3 times for screen-render finishing.
 let doRecord = true
 
-function preLoadImg (src, loadCallback, errorCallback) {
-  const img = new Image()
-  img.onload = loadCallback ? loadCallback.bind(img) : null
-  img.onerror = errorCallback ? errorCallback.bind(img) : null
-  img.src = src
+function preLoadImg (src: string,
+  loadCallback: ?(Event) => void,
+  errorCallback: ?(Event) => void): void {
+    const img = new Image()
+    img.onload = loadCallback ? loadCallback.bind(img) : null
+    img.onerror = errorCallback ? errorCallback.bind(img) : null
+    img.src = src
 }
 
-export function applySrc (item, src, placeholderSrc) {
+export function applySrc (item: HTMLElement, src: ?string, placeholderSrc: ?string): void {
   if (!src) { return }
   function finallCb () {
     item.removeAttribute('img-src')
@@ -27,28 +31,30 @@ export function applySrc (item, src, placeholderSrc) {
       }
     }
   }
-  preLoadImg(src, function () {
-    item.style.backgroundImage = `url(${src})`
+  preLoadImg(src, function (evt) {
+    item.style.backgroundImage = `url(${src || ''})`
     const { width: naturalWidth, height: naturalHeight } = this
     dispatchEvent(item, createEvent(item, 'load', { naturalWidth, naturalHeight }))
     finallCb()
-  }, function () {
+  }, function (evt) {
     dispatchEvent(item, createEvent(item, 'error'))
     if (placeholderSrc) {
       preLoadImg(placeholderSrc, function () {
-        item.style.backgroundImage = `url(${placeholderSrc})`
+        item.style.backgroundImage = `url(${placeholderSrc || ''})`
       })
     }
     finallCb()
   })
 }
 
-export function fireLazyload (el, ignoreVisibility) {
-  if (isArray(el)) {
+export function fireLazyload (el: Array<HTMLElement> | HTMLElement | null, ignoreVisibility: ?boolean): void {
+  if (Array.isArray(el)) {
     return el.forEach(ct => fireLazyload(ct))
   }
-  const imgs = (el || document.body).querySelectorAll('[img-src]')
-  for (let i = 0; i < imgs.length; i++) {
+  el = el || document.body
+  if (!el) { return }
+  const imgs: NodeList = (el || document.body).querySelectorAll('[img-src]')
+  for (let i: number = 0; i < imgs.length; i++) {
     const img = imgs[i]
     if (typeof ignoreVisibility === 'boolean' && ignoreVisibility) {
       applySrc(img, img.getAttribute('img-src'), img.getAttribute('img-placeholder'))
@@ -76,12 +82,12 @@ export function fireLazyload (el, ignoreVisibility) {
  *      }
  */
 const cache = {}
-let _uid = 0
-export function getThrottleLazyload (wait = 16, el = document.body) {
-  let id = el.dataset.throttleId
-  if (!id) {
+let _uid: number = 1
+export function getThrottleLazyload (wait: number = 16, el: HTMLElement | null = document.body) {
+  let id: number = +(el && el.dataset.throttleId)
+  if (isNaN(id) || id <= 0) {
     id = _uid++
-    el.setAttribute('data-throttle-id', id)
+    el && el.setAttribute('data-throttle-id', id + '')
   }
 
   !cache[id] && (cache[id] = {})

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/html5/render/vue/utils/perf.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/perf.js b/html5/render/vue/utils/perf.js
index 4a3a3eb..4597d97 100644
--- a/html5/render/vue/utils/perf.js
+++ b/html5/render/vue/utils/perf.js
@@ -1,3 +1,4 @@
+// @flow
 /**
  * @fileOverview: perf data recorder.
  */
@@ -5,34 +6,47 @@
 import { debounce, depress } from './func'
 
 // performance tracker for weex.
-const perf = window._weex_perf = {
+const perf: {
+  earliestBeforeCreates: Array<number>,
+  latestMounts: Array<number>,
+  earliestBeforeUpdates: Array<number>,
+  latestUpdates: Array<number>,
+  latestRenderFinishes: Array<number>,
+  // createTime: earliest beforeCreate -> latest mounted.
+  createTime: Array<{ start: number, end: number, duration: number }>,
+  // updateTime: earliest beforeUpdate -> latest updated.
+  updateTime: Array<{ start: number, end: number, duration: number }>,
+  // renderTime: earliest beforeCreate/beforeUpdate -> latest img loaded.
+  renderTime: Array<{ start: number, end: number, duration: number }>,
+  entries: Array<{ requestStart: number, responseEnd: number }>,
+  time: {},
+  firstAllMountedTime: ?number
+} = window._weex_perf = {
   earliestBeforeCreates: [],
   latestMounts: [],
   earliestBeforeUpdates: [],
   latestUpdates: [],
   latestRenderFinishes: [],
-  // createTime: earliest beforeCreate -> latest mounted.
   createTime: [],
-  // updateTime: earliest beforeUpdate -> latest updated.
   updateTime: [],
-  // renderTime: earliest beforeCreate/beforeUpdate -> latest img loaded.
   renderTime: [],
   entries: [],
-  time: {}
+  time: {},
+  firstAllMountedTime: null
 }
 
 const tmp = {}
 
-const IMG_REC_INDENT = 500  // record loading events after 500ms towards last recording.
+const IMG_REC_INDENT: number = 500  // record loading events after 500ms towards last recording.
 
-let earliestBeforeUpdateTime = 0
-let earliestBeforeCreateTime = 0
+let earliestBeforeUpdateTime: number = 0
+let earliestBeforeCreateTime: number = 0
 
-function getNow () {
+function getNow (): number {
   return performance.now ? performance.now() : new Date().getTime()
 }
 
-function getEntries () {
+function getEntries (): Array<any> {
   return performance.getEntries
     ? performance.getEntries()
     : [{ responseEnd: getNow() - IMG_REC_INDENT }]
@@ -65,14 +79,14 @@ const debouncedTagImg = debounce(function () {
 
   const num = perf.renderTime.length
   perf[`screenTime${num}`] = end
-  weex.emit('renderfinish', end)
+  window.weex.emit('renderfinish', end)
   if (process.env.NODE_ENV === 'development') {
     console.log(`screenTime[${num}]: ${end} ms.`)
     console.log('_weex_perf:', window._weex_perf)
   }
 }, IMG_REC_INDENT)
 
-export function tagImg () {
+export function tagImg (): void {
   debouncedTagImg()
 }
 
@@ -85,7 +99,7 @@ const depressedTagBeforeCreate = depress(function () {
   perf.earliestBeforeCreates.push(now)
 }, 25)
 
-export function tagBeforeCreate () {
+export function tagBeforeCreate (): void {
   depressedTagBeforeCreate()
 }
 
@@ -109,7 +123,7 @@ const debouncedTagMounted = debounce(function () {
   }
 }, 25)
 
-export function tagMounted () {
+export function tagMounted (): void {
   debouncedTagMounted()
 }
 
@@ -122,7 +136,7 @@ const depressedTagBeforeUpdate = depress(function () {
   perf.earliestBeforeUpdates.push(now)
 }, 25)
 
-export function tagBeforeUpdate () {
+export function tagBeforeUpdate (): void {
   depressedTagBeforeUpdate()
 }
 
@@ -139,15 +153,15 @@ const debouncedTagUpdated = debounce(function () {
   })
 }, 25)
 
-export function tagUpdated () {
+export function tagUpdated (): void {
   debouncedTagUpdated()
 }
 
-export function tagBegin (name) {
+export function tagBegin (name: string): void {
   tmp[name] = getNow()
 }
 
-export function tagEnd (name) {
+export function tagEnd (name: string): void {
   let pre = perf.time[name]
   if (!pre) {
     pre = 0

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/html5/render/vue/utils/style.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/style.js b/html5/render/vue/utils/style.js
index cc7f8e4..c7b5fe6 100644
--- a/html5/render/vue/utils/style.js
+++ b/html5/render/vue/utils/style.js
@@ -1,13 +1,15 @@
+// @flow
+
 /**
  * remove comments from a cssText.
  */
-export function trimComment (cssText) {
+export function trimComment (cssText: string): string {
   return cssText.replace(/(?:\/\*)[^*]*\*\//g, '')
 }
 
-let support = null
+let support: boolean | null = null
 
-export function supportSticky () {
+export function supportSticky (): boolean {
   if (support !== null) {
     return support
   }



[17/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/lengthunitwx-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/lengthunitwx-demo.js b/ios/playground/bundlejs/component/lengthunitwx-demo.js
new file mode 100644
index 0000000..eabc4ec
--- /dev/null
+++ b/ios/playground/bundlejs/component/lengthunitwx-demo.js
@@ -0,0 +1,329 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId])
+/******/ 			return installedModules[moduleId].exports;
+
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			exports: {},
+/******/ 			id: moduleId,
+/******/ 			loaded: false
+/******/ 		};
+
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ 		// Flag the module as loaded
+/******/ 		module.loaded = true;
+
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+
+
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 0:
+/***/ function(module, exports, __webpack_require__) {
+
+	var __weex_template__ = __webpack_require__(97)
+	var __weex_style__ = __webpack_require__(98)
+	var __weex_script__ = __webpack_require__(99)
+
+	__weex_define__('@weex-component/1cedab9e17186432a3ad57749557d3a0', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+
+	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
+	    if (__weex_exports__.__esModule && __weex_exports__.default) {
+	      __weex_module__.exports = __weex_exports__.default
+	    }
+
+	    __weex_module__.exports.template = __weex_template__
+
+	    __weex_module__.exports.style = __weex_style__
+
+	})
+
+	__weex_bootstrap__('@weex-component/1cedab9e17186432a3ad57749557d3a0',undefined,undefined)
+
+/***/ },
+
+/***/ 34:
+/***/ function(module, exports) {
+
+	var core = module.exports = {version: '2.4.0'};
+	if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+
+/***/ },
+
+/***/ 97:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "type": "div",
+	  "children": [
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": 100
+	      },
+	      "attr": {
+	        "value": "width:100"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": 200
+	      },
+	      "attr": {
+	        "value": "width:200"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": 300
+	      },
+	      "attr": {
+	        "value": "width:300"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": 400
+	      },
+	      "attr": {
+	        "value": "width:400"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": 700
+	      },
+	      "attr": {
+	        "value": "width:700"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": 750
+	      },
+	      "attr": {
+	        "value": "width:750"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": "50wx"
+	      },
+	      "attr": {
+	        "value": "width:50wx"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": "100wx"
+	      },
+	      "attr": {
+	        "value": "width:100wx"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": "200wx"
+	      },
+	      "attr": {
+	        "value": "width:200wx"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": "300wx"
+	      },
+	      "attr": {
+	        "value": "width:300wx"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": "320wx"
+	      },
+	      "attr": {
+	        "value": "width:320wx"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": "360wx"
+	      },
+	      "attr": {
+	        "value": "width:360wx"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "style": {
+	        "fontSize": 20,
+	        "backgroundColor": "#ff0000",
+	        "marginTop": 10,
+	        "width": "375wx"
+	      },
+	      "attr": {
+	        "value": "width:375wx"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "id": "theText",
+	      "classList": [
+	        "unitwx"
+	      ],
+	      "attr": {
+	        "value": "hello world"
+	      }
+	    }
+	  ]
+	}
+
+/***/ },
+
+/***/ 98:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "unitwx": {
+	    "width": "200wx",
+	    "height": "130wx",
+	    "marginTop": 80,
+	    "backgroundColor": "#00ff00",
+	    "color": "#FFFFFF"
+	  }
+	}
+
+/***/ },
+
+/***/ 99:
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = function(module, exports, __weex_require__){'use strict';
+
+	var _stringify = __webpack_require__(100);
+
+	var _stringify2 = _interopRequireDefault(_stringify);
+
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+	module.exports = {
+	  data: function () {return {
+	    theWidth: 100
+	  }},
+	  methods: {
+	    ready: function ready() {
+	      console.log('in ready ' + (0, _stringify2.default)(WXEnvironment));
+
+	      var me = this;
+	      setTimeout(function () {
+	        me.theWidth = 200;
+	      }, 2000);
+
+	      setTimeout(function () {
+	        me.theWidth = '200wx';
+	      }, 4000);
+	    },
+
+	    setTo200: function setTo200() {
+	      this.theWidth = '200';
+	    },
+	    setTo200wx: function setTo200wx() {
+	      this.theWidth = '200wx';
+	    }
+	  }
+	};}
+	/* generated by weex-loader */
+
+
+/***/ },
+
+/***/ 100:
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
+
+/***/ },
+
+/***/ 101:
+/***/ function(module, exports, __webpack_require__) {
+
+	var core  = __webpack_require__(34)
+	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
+	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
+	  return $JSON.stringify.apply($JSON, arguments);
+	};
+
+/***/ }
+
+/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/list/list-basic.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/list/list-basic.js b/ios/playground/bundlejs/component/list/list-basic.js
index f059d98..174c140 100644
--- a/ios/playground/bundlejs/component/list/list-basic.js
+++ b/ios/playground/bundlejs/component/list/list-basic.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(97)
-	var __weex_style__ = __webpack_require__(98)
-	var __weex_script__ = __webpack_require__(99)
+	var __weex_template__ = __webpack_require__(102)
+	var __weex_style__ = __webpack_require__(103)
+	var __weex_script__ = __webpack_require__(104)
 
 	__weex_define__('@weex-component/e4cde146096cc51ec5ab930a518ea157', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,17 +66,97 @@
 
 /***/ },
 
-/***/ 97:
+/***/ 34:
+/***/ function(module, exports) {
+
+	var core = module.exports = {version: '2.4.0'};
+	if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+
+/***/ },
+
+/***/ 100:
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
+
+/***/ },
+
+/***/ 101:
+/***/ function(module, exports, __webpack_require__) {
+
+	var core  = __webpack_require__(34)
+	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
+	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
+	  return $JSON.stringify.apply($JSON, arguments);
+	};
+
+/***/ },
+
+/***/ 102:
 /***/ function(module, exports) {
 
 	module.exports = {
 	  "type": "div",
 	  "children": [
 	    {
+	      "type": "div",
+	      "style": {
+	        "backgroundColor": "#eeeeee"
+	      },
+	      "children": [
+	        {
+	          "type": "text",
+	          "classList": [
+	            "count"
+	          ],
+	          "attr": {
+	            "value": function () {return 'Appear items:' + (this.appearMin) + ' - ' + (this.appearMax)}
+	          }
+	        },
+	        {
+	          "type": "div",
+	          "style": {
+	            "height": 20,
+	            "width": 750,
+	            "borderColor": "#000000",
+	            "borderWidth": 2,
+	            "justifyContent": "center"
+	          },
+	          "children": [
+	            {
+	              "type": "div",
+	              "style": {
+	                "height": 14,
+	                "width": function () {return this.progress_width},
+	                "marginLeft": function () {return this.progress},
+	                "backgroundColor": "#808080"
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "text",
+	          "style": {
+	            "width": 750
+	          },
+	          "attr": {
+	            "value": function () {return this.event}
+	          }
+	        }
+	      ]
+	    },
+	    {
 	      "type": "list",
+	      "id": "list",
 	      "classList": [
 	        "list"
 	      ],
+	      "events": {
+	        "scroll": "onScroll"
+	      },
+	      "attr": {
+	        "offsetAccuracy": "5"
+	      },
 	      "children": [
 	        {
 	          "type": "refresh",
@@ -167,22 +247,13 @@
 	          ]
 	        }
 	      ]
-	    },
-	    {
-	      "type": "text",
-	      "classList": [
-	        "count"
-	      ],
-	      "attr": {
-	        "value": function () {return 'Appear items:' + (this.appearMin) + ' - ' + (this.appearMax)}
-	      }
 	    }
 	  ]
 	}
 
 /***/ },
 
-/***/ 98:
+/***/ 103:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -210,7 +281,8 @@
 	    "borderBottomWidth": 2,
 	    "borderBottomColor": "#c0c0c0",
 	    "height": 100,
-	    "padding": 20
+	    "padding": 20,
+	    "backgroundColor:active": "#00BFFF"
 	  },
 	  "refresh-view": {
 	    "width": 750,
@@ -234,11 +306,19 @@
 
 /***/ },
 
-/***/ 99:
-/***/ function(module, exports) {
+/***/ 104:
+/***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
+	var _stringify = __webpack_require__(100);
+
+	var _stringify2 = _interopRequireDefault(_stringify);
+
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+	var dom = weex.requireModule('dom');
+	var isFirst = true;
 	module.exports = {
 	  methods: {
 	    onappear: function onappear(e) {
@@ -291,9 +371,27 @@
 	        }
 	        self.loading_display = 'hide';
 	      }, 3000);
+	    },
+
+	    onScroll: function onScroll(e) {
+	      var self = this;
+	      this.event = 'contentOffset: ' + (0, _stringify2.default)(e.contentOffset) + '\ncontentSize: ' + (0, _stringify2.default)(e.contentSize);
+	      dom.getComponentRect(this.$el('list'), function (ret) {
+	        if (e.contentOffset.x == 0 && e.contentOffset.y == 0 && isFirst) {
+	          isFirst = false;
+	          return;
+	        }
+	        var listHeight = ret.size.height;
+	        self.progress_width = listHeight / e.contentSize.height * 750;
+	        var offsetY = e.contentOffset.y > 0 ? 0 : Math.abs(e.contentOffset.y);
+	        self.progress = offsetY / (e.contentSize.height - listHeight) * (750 - self.progress_width);
+	      });
 	    }
 	  },
 	  data: function () {return {
+	    progress_width: 0,
+	    progress: 0,
+	    event: '-',
 	    refresh_display: 'hide',
 	    loading_display: 'hide',
 	    appearMin: 1,

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/list/list-demo-horizon.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/list/list-demo-horizon.js b/ios/playground/bundlejs/component/list/list-demo-horizon.js
index ab83a04..056d26d 100644
--- a/ios/playground/bundlejs/component/list/list-demo-horizon.js
+++ b/ios/playground/bundlejs/component/list/list-demo-horizon.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(103)
-	var __weex_style__ = __webpack_require__(104)
-	var __weex_script__ = __webpack_require__(105)
+	var __weex_template__ = __webpack_require__(108)
+	var __weex_style__ = __webpack_require__(109)
+	var __weex_script__ = __webpack_require__(110)
 
 	__weex_define__('@weex-component/a089a89d3221f94935162af3aa4db1af', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 103:
+/***/ 108:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -853,7 +853,7 @@
 
 /***/ },
 
-/***/ 104:
+/***/ 109:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -929,7 +929,7 @@
 
 /***/ },
 
-/***/ 105:
+/***/ 110:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/list/list-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/list/list-demo.js b/ios/playground/bundlejs/component/list/list-demo.js
index af38db0..559552a 100644
--- a/ios/playground/bundlejs/component/list/list-demo.js
+++ b/ios/playground/bundlejs/component/list/list-demo.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(100)
-	var __weex_style__ = __webpack_require__(101)
-	var __weex_script__ = __webpack_require__(102)
+	var __weex_template__ = __webpack_require__(105)
+	var __weex_style__ = __webpack_require__(106)
+	var __weex_script__ = __webpack_require__(107)
 
 	__weex_define__('@weex-component/3226d5b3a8f5b1ae43875db22de0785e', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 100:
+/***/ 105:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -810,7 +810,7 @@
 
 /***/ },
 
-/***/ 101:
+/***/ 106:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -888,7 +888,7 @@
 
 /***/ },
 
-/***/ 102:
+/***/ 107:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/list/waterfall.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/list/waterfall.js b/ios/playground/bundlejs/component/list/waterfall.js
new file mode 100644
index 0000000..9cfa83b
--- /dev/null
+++ b/ios/playground/bundlejs/component/list/waterfall.js
@@ -0,0 +1,877 @@
+// { "framework": "Vue" }
+
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId])
+/******/ 			return installedModules[moduleId].exports;
+
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			exports: {},
+/******/ 			id: moduleId,
+/******/ 			loaded: false
+/******/ 		};
+
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ 		// Flag the module as loaded
+/******/ 		module.loaded = true;
+
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+
+
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 0:
+/***/ function(module, exports, __webpack_require__) {
+
+	var __vue_exports__, __vue_options__
+	var __vue_styles__ = []
+
+	/* styles */
+	__vue_styles__.push(__webpack_require__(464)
+	)
+
+	/* script */
+	__vue_exports__ = __webpack_require__(465)
+
+	/* template */
+	var __vue_template__ = __webpack_require__(466)
+	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
+	if (
+	  typeof __vue_exports__.default === "object" ||
+	  typeof __vue_exports__.default === "function"
+	) {
+	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
+	__vue_options__ = __vue_exports__ = __vue_exports__.default
+	}
+	if (typeof __vue_options__ === "function") {
+	  __vue_options__ = __vue_options__.options
+	}
+	__vue_options__.__file = "/Users/admin/Workspace/incubator-weex/examples/vue/components/waterfall.vue"
+	__vue_options__.render = __vue_template__.render
+	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-388ea278"
+	__vue_options__.style = __vue_options__.style || {}
+	__vue_styles__.forEach(function (module) {
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
+	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
+
+	module.exports = __vue_exports__
+	module.exports.el = 'true'
+	new Vue(module.exports)
+
+
+/***/ },
+
+/***/ 464:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "page": {
+	    "backgroundColor": "#EFEFEF"
+	  },
+	  "refresh": {
+	    "height": 128,
+	    "width": 750,
+	    "flexDirection": "row",
+	    "alignItems": "center",
+	    "justifyContent": "center"
+	  },
+	  "refreshText": {
+	    "color": "#888888",
+	    "fontWeight": "bold"
+	  },
+	  "indicator": {
+	    "color": "#888888",
+	    "height": 40,
+	    "width": 40,
+	    "marginRight": 30
+	  },
+	  "banner": {
+	    "height": 377,
+	    "flexDirection": "row"
+	  },
+	  "bannerInfo": {
+	    "width": 270,
+	    "alignItems": "center",
+	    "justifyContent": "center"
+	  },
+	  "avatar": {
+	    "width": 148,
+	    "height": 108,
+	    "borderRadius": 54,
+	    "borderWidth": 4,
+	    "borderColor": "#FFFFFF",
+	    "marginBottom": 14
+	  },
+	  "name": {
+	    "fontWeight": "bold",
+	    "fontSize": 32,
+	    "color": "#ffffff",
+	    "lineHeight": 32,
+	    "textAlign": "center",
+	    "marginBottom": 16
+	  },
+	  "titleWrap": {
+	    "width": 100,
+	    "height": 24,
+	    "marginBottom": 10,
+	    "backgroundColor": "rgba(255,255,255,0.8)",
+	    "borderRadius": 12,
+	    "justifyContent": "center",
+	    "alignItems": "center"
+	  },
+	  "title": {
+	    "fontSize": 20,
+	    "color": "#000000"
+	  },
+	  "bannerPhotoWrap": {
+	    "width": 449,
+	    "height": 305,
+	    "backgroundColor": "#FFFFFF",
+	    "borderRadius": 12,
+	    "marginTop": 35,
+	    "padding": 12,
+	    "flexDirection": "row",
+	    "justifyContent": "space-between",
+	    "flexWrap": "wrap"
+	  },
+	  "bannerPhoto": {
+	    "width": 137,
+	    "height": 137,
+	    "marginBottom": 6
+	  },
+	  "stickyHeader": {
+	    "position": "sticky",
+	    "height": 94,
+	    "flexDirection": "row",
+	    "paddingBottom": 6
+	  },
+	  "stickyWrapper": {
+	    "flexDirection": "row",
+	    "backgroundColor": "#00cc99",
+	    "justifyContent": "center",
+	    "alignItems": "center",
+	    "flex": 1
+	  },
+	  "stickyTextImageWrapper": {
+	    "flex": 1,
+	    "justifyContent": "center",
+	    "alignItems": "center",
+	    "flexDirection": "row"
+	  },
+	  "stickyText": {
+	    "color": "#FFFFFF",
+	    "fontWeight": "bold",
+	    "fontSize": 32,
+	    "marginRight": 12
+	  },
+	  "stickyImage": {
+	    "width": 64,
+	    "height": 64,
+	    "borderRadius": 32
+	  },
+	  "cell": {
+	    "paddingTop": 6,
+	    "paddingBottom": 6
+	  },
+	  "item": {
+	    "backgroundColor": "#FFFFFF",
+	    "alignItems": "center"
+	  },
+	  "itemName": {
+	    "fontSize": 28,
+	    "color": "#333333",
+	    "lineHeight": 42,
+	    "textAlign": "left",
+	    "marginTop": 24
+	  },
+	  "itemPhoto": {
+	    "marginTop": 18,
+	    "width": 220,
+	    "height": 220,
+	    "marginBottom": 18
+	  },
+	  "itemDesc": {
+	    "fontSize": 24,
+	    "margin": 12,
+	    "color": "#999999",
+	    "lineHeight": 36,
+	    "textAlign": "left"
+	  },
+	  "itemClickBehaviour": {
+	    "fontSize": 36,
+	    "color": "#00cc99",
+	    "lineHeight": 36,
+	    "textAlign": "center",
+	    "marginTop": 6,
+	    "marginLeft": 24,
+	    "marginRight": 24,
+	    "marginBottom": 30
+	  },
+	  "footer": {
+	    "height": 94,
+	    "justifyContent": "center",
+	    "alignItems": "center",
+	    "backgroundColor": "#00cc99"
+	  },
+	  "fixedItem": {
+	    "position": "fixed",
+	    "width": 78,
+	    "height": 78,
+	    "backgroundColor": "#00cc99",
+	    "right": 32,
+	    "bottom": 32,
+	    "borderRadius": 39,
+	    "alignItems": "center",
+	    "justifyContent": "center"
+	  },
+	  "fixedText": {
+	    "fontSize": 36,
+	    "color": "#FFFFFF",
+	    "lineHeight": 36
+	  }
+	}
+
+/***/ },
+
+/***/ 465:
+/***/ function(module, exports) {
+
+	'use strict';
+
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+	//
+
+	exports.default = {
+	  data: function data() {
+	    var items = [{
+	      src: 'https://gw.alicdn.com/tps/TB1Jl1CPFXXXXcJXXXXXXXXXXXX-370-370.jpg',
+	      name: 'Thomas Carlyle',
+	      desc: 'Genius only means hard-working all one\'s life',
+	      behaviourName: 'Change count',
+	      behaviour: 'changeColumnCount'
+	    }, {
+	      src: 'https://gw.alicdn.com/tps/TB1Hv1JPFXXXXa3XXXXXXXXXXXX-370-370.jpg',
+	      desc: 'The man who has made up his mind to win will never say "impossible "',
+	      behaviourName: 'Change gap',
+	      behaviour: 'changeColumnGap'
+	    }, {
+	      src: 'https://gw.alicdn.com/tps/TB1eNKuPFXXXXc_XpXXXXXXXXXX-370-370.jpg',
+	      desc: 'There is no such thing as a great talent without great will - power',
+	      behaviourName: 'Show scrollbar',
+	      behaviour: 'showScrollbar'
+	    }, {
+	      src: 'https://gw.alicdn.com/tps/TB1DCh8PFXXXXX7aXXXXXXXXXXX-370-370.jpg',
+	      name: 'Addison',
+	      desc: 'Cease to struggle and you cease to live',
+	      behaviourName: 'Change width',
+	      behaviour: 'changeColumnWidth'
+	    }, {
+	      src: 'https://gw.alicdn.com/tps/TB1ACygPFXXXXXwXVXXXXXXXXXX-370-370.jpg',
+	      desc: 'A strong man will struggle with the storms of fate',
+	      behaviourName: 'Listen appear',
+	      behaviour: 'listenAppear'
+	    }, {
+	      src: 'https://gw.alicdn.com/tps/TB1IGShPFXXXXaqXVXXXXXXXXXX-370-370.jpg',
+	      name: 'Ruskin',
+	      desc: 'Living without an aim is like sailing without a compass',
+	      behaviourName: 'Set scrollable',
+	      behaviour: 'setScrollable'
+	    }, {
+	      src: 'https://gw.alicdn.com/tps/TB1xU93PFXXXXXHaXXXXXXXXXXX-240-240.jpg',
+	      behaviourName: 'waterfall padding',
+	      behaviour: 'setPadding'
+	    }, {
+	      src: 'https://gw.alicdn.com/tps/TB19hu0PFXXXXaXaXXXXXXXXXXX-240-240.jpg',
+	      name: 'Balzac',
+	      desc: 'There is no such thing as a great talent without great will - power',
+	      behaviourName: 'listen scroll',
+	      behaviour: 'listenScroll'
+	    }, {
+	      src: 'https://gw.alicdn.com/tps/TB1ux2vPFXXXXbkXXXXXXXXXXXX-240-240.jpg',
+	      behaviourName: 'Remove cell',
+	      behaviour: 'removeCell'
+	    }, {
+	      src: 'https://gw.alicdn.com/tps/TB1tCCWPFXXXXa7aXXXXXXXXXXX-240-240.jpg',
+	      behaviourName: 'Move cell',
+	      behaviour: 'moveCell'
+	    }];
+
+	    var repeatItems = [];
+	    for (var i = 0; i < 3; i++) {
+	      repeatItems.push.apply(repeatItems, items);
+	    }
+
+	    return {
+	      padding: 0,
+	      refreshing: false,
+	      refreshText: '\u2193   pull to refresh...',
+	      columnCount: 2,
+	      columnGap: 12,
+	      columnWidth: 'auto',
+	      contentOffset: '0',
+	      showHeader: true,
+	      showScrollbar: false,
+	      scrollable: true,
+	      showStickyHeader: false,
+	      appearImage: null,
+	      disappearImage: null,
+	      stickyHeaderType: 'none',
+	      banner: {
+	        photos: [{ src: 'https://gw.alicdn.com/tps/TB1JyaCPFXXXXc9XXXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB1MwSFPFXXXXbdXXXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB1U8avPFXXXXaDXpXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB17Xh8PFXXXXbkaXXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB1cTmLPFXXXXXRXXXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB1oCefPFXXXXbVXVXXXXXXXXXX-140-140.jpg' }]
+	      },
+	      items: repeatItems
+	    };
+	  },
+
+	  methods: {
+	    recylerScroll: function recylerScroll(e) {
+	      this.contentOffset = e.contentOffset.y;
+	    },
+	    loadmore: function loadmore(e) {
+	      console.log('receive loadmore event');
+	      // this.$refs.waterfall.resetLoadmore()
+	    },
+	    showOrRemoveHeader: function showOrRemoveHeader() {
+	      this.showHeader = !this.showHeader;
+	    },
+	    onItemclick: function onItemclick(behaviour, index) {
+	      console.log('click...' + behaviour + ' at index ' + index);
+	      switch (behaviour) {
+	        case 'changeColumnCount':
+	          this.changeColumnCount();
+	          break;
+	        case 'changeColumnGap':
+	          this.changeColumnGap();
+	          break;
+	        case 'changeColumnWidth':
+	          this.changeColumnWidth();
+	          break;
+	        case 'showScrollbar':
+	          this.showOrHideScrollbar();
+	          break;
+	        case 'listenAppear':
+	          this.listenAppearAndDisappear();
+	          break;
+	        case 'setScrollable':
+	          this.setScrollable();
+	          break;
+	        case 'setPadding':
+	          this.setRecyclerPadding();
+	          break;
+	        case 'listenScroll':
+	          this.listenScrollEvent();
+	          break;
+	        case 'removeCell':
+	          this.removeCell(index);
+	          break;
+	        case 'moveCell':
+	          this.moveCell(index);
+	          break;
+	      }
+	    },
+
+	    itemAppear: function itemAppear(src) {
+	      this.appearImage = src;
+	    },
+
+	    itemDisappear: function itemDisappear(src) {
+	      this.disappearImage = src;
+	    },
+
+	    changeColumnCount: function changeColumnCount() {
+	      if (this.columnCount === 2) {
+	        this.columnCount = 3;
+	      } else {
+	        this.columnCount = 2;
+	      }
+	    },
+
+	    changeColumnGap: function changeColumnGap() {
+	      if (this.columnGap === 12) {
+	        this.columnGap = 'normal';
+	      } else {
+	        this.columnGap = 12;
+	      }
+	    },
+
+	    changeColumnWidth: function changeColumnWidth() {
+	      if (this.columnWidth === 'auto') {
+	        this.columnWidth = 600;
+	      } else {
+	        this.columnWidth = 'auto';
+	      }
+	    },
+
+	    showOrHideScrollbar: function showOrHideScrollbar() {
+	      this.showScrollbar = !this.showScrollbar;
+	    },
+
+	    setScrollable: function setScrollable() {
+	      this.scrollable = !this.scrollable;
+	    },
+
+	    listenAppearAndDisappear: function listenAppearAndDisappear() {
+	      this.stickyHeaderType = this.stickyHeaderType === 'appear' ? 'none' : 'appear';
+	    },
+
+	    listenScrollEvent: function listenScrollEvent() {
+	      this.stickyHeaderType = this.stickyHeaderType === 'scroll' ? 'none' : 'scroll';
+	    },
+
+	    scrollToTop: function scrollToTop() {
+	      weex.requireModule('dom').scrollToElement(this.$refs.header);
+	    },
+
+	    setRecyclerPadding: function setRecyclerPadding() {
+	      this.padding = this.padding == 0 ? 12 : 0;
+	    },
+
+	    removeCell: function removeCell(index) {
+	      this.items.splice(index, 1);
+	    },
+
+	    moveCell: function moveCell(index) {
+	      if (index == 0) {
+	        this.items.splice(this.items.length - 1, 0, this.items.splice(index, 1)[0]);
+	      } else {
+	        this.items.splice(0, 0, this.items.splice(index, 1)[0]);
+	      }
+	    },
+
+	    onrefresh: function onrefresh(event) {
+	      var _this = this;
+
+	      this.refreshing = true;
+	      this.refreshText = "loading...";
+	      setTimeout(function () {
+	        _this.refreshing = false;
+	        _this.refreshText = '\u2193   pull to refresh...';
+	      }, 2000);
+	    },
+	    onpullingdown: function onpullingdown(event) {
+	      // console.log(`${event.pullingDistance}`)
+	      if (event.pullingDistance < -64) {
+	        this.refreshText = '\u2191   release to refresh...';
+	      } else {
+	        this.refreshText = '\u2193   pull to refresh...';
+	      }
+	    }
+	  }
+	};
+
+/***/ },
+
+/***/ 466:
+/***/ function(module, exports) {
+
+	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+	  return _c('waterfall', {
+	    ref: "waterfall",
+	    staticClass: ["page"],
+	    style: {
+	      padding: _vm.padding
+	    },
+	    attrs: {
+	      "columnWidth": _vm.columnWidth,
+	      "columnCount": _vm.columnCount,
+	      "columnGap": _vm.columnGap,
+	      "showScrollbar": _vm.showScrollbar,
+	      "scrollable": _vm.scrollable,
+	      "loadmoreoffset": "3000"
+	    },
+	    on: {
+	      "scroll": _vm.recylerScroll,
+	      "loadmore": _vm.loadmore
+	    }
+	  }, [_c('refresh', {
+	    staticClass: ["refresh"],
+	    attrs: {
+	      "display": _vm.refreshing ? 'show' : 'hide'
+	    },
+	    on: {
+	      "refresh": _vm.onrefresh,
+	      "pullingdown": _vm.onpullingdown
+	    }
+	  }, [_c('loading-indicator', {
+	    staticClass: ["indicator"]
+	  }), _c('text', {
+	    staticClass: ["refreshText"]
+	  }, [_vm._v(_vm._s(_vm.refreshText))])], 1), (_vm.showHeader) ? _c('header', {
+	    ref: "header",
+	    staticClass: ["header"]
+	  }, [_c('image', {
+	    staticClass: ["banner"],
+	    attrs: {
+	      "src": "https://gw.alicdn.com/tps/TB1ESN1PFXXXXX1apXXXXXXXXXX-1000-600.jpg",
+	      "resize": "cover"
+	    }
+	  }, [_c('div', {
+	    staticClass: ["bannerInfo"]
+	  }, [_c('image', {
+	    staticClass: ["avatar"],
+	    attrs: {
+	      "src": "https://gw.alicdn.com/tps/TB1EP9bPFXXXXbpXVXXXXXXXXXX-150-110.jpg",
+	      "resize": "cover"
+	    }
+	  }), _c('text', {
+	    staticClass: ["name"]
+	  }, [_vm._v("Adam Cat")]), _c('div', {
+	    staticClass: ["titleWrap"]
+	  }, [_c('text', {
+	    staticClass: ["title"]
+	  }, [_vm._v("Genius")])])]), _c('div', {
+	    staticClass: ["bannerPhotoWrap"]
+	  }, _vm._l((_vm.banner.photos), function(photo) {
+	    return _c('image', {
+	      staticClass: ["bannerPhoto"],
+	      attrs: {
+	        "src": photo.src
+	      }
+	    })
+	  }))])]) : _vm._e(), _c('header', {
+	    staticClass: ["stickyHeader"],
+	    on: {
+	      "click": _vm.showOrRemoveHeader
+	    }
+	  }, [(_vm.stickyHeaderType === 'none') ? _c('div', {
+	    staticClass: ["stickyWrapper"]
+	  }, [_c('text', {
+	    staticClass: ["stickyText"]
+	  }, [_vm._v("Sticky Header")])]) : _vm._e(), (_vm.stickyHeaderType === 'appear') ? _c('div', {
+	    staticClass: ["stickyWrapper"]
+	  }, [_c('div', {
+	    staticClass: ["stickyTextImageWrapper"]
+	  }, [_c('text', {
+	    staticClass: ["stickyText"]
+	  }, [_vm._v("Last Appear:")]), _c('image', {
+	    staticClass: ["stickyImage"],
+	    attrs: {
+	      "src": _vm.appearImage
+	    }
+	  })]), _c('div', {
+	    staticClass: ["stickyTextImageWrapper"]
+	  }, [_c('text', {
+	    staticClass: ["stickyText"]
+	  }, [_vm._v("Last Disappear:")]), _c('image', {
+	    staticClass: ["stickyImage"],
+	    attrs: {
+	      "src": _vm.disappearImage
+	    }
+	  })])]) : _vm._e(), (_vm.stickyHeaderType === 'scroll') ? _c('div', {
+	    staticClass: ["stickyWrapper"]
+	  }, [_c('text', {
+	    staticClass: ["stickyText"]
+	  }, [_vm._v("Content Offset:" + _vm._s(_vm.contentOffset))])]) : _vm._e()]), _vm._l((_vm.items), function(item, index) {
+	    return _c('cell', {
+	      key: item.src,
+	      staticClass: ["cell"],
+	      appendAsTree: true,
+	      attrs: {
+	        "append": "tree"
+	      }
+	    }, [_c('div', {
+	      staticClass: ["item"],
+	      on: {
+	        "click": function($event) {
+	          _vm.onItemclick(item.behaviour, index)
+	        },
+	        "appear": function($event) {
+	          _vm.itemAppear(item.src)
+	        },
+	        "disappear": function($event) {
+	          _vm.itemDisappear(item.src)
+	        }
+	      }
+	    }, [(item.name) ? _c('text', {
+	      staticClass: ["itemName"]
+	    }, [_vm._v(_vm._s(item.name))]) : _vm._e(), _c('image', {
+	      staticClass: ["itemPhoto"],
+	      attrs: {
+	        "src": item.src
+	      }
+	    }), (item.desc) ? _c('text', {
+	      staticClass: ["itemDesc"]
+	    }, [_vm._v(_vm._s(item.desc))]) : _vm._e(), (item.behaviourName) ? _c('text', {
+	      staticClass: ["itemClickBehaviour"]
+	    }, [_vm._v(" " + _vm._s(item.behaviourName))]) : _vm._e()])])
+	  }), _c('header', {
+	    staticClass: ["footer"]
+	  }, [_c('text', {
+	    staticClass: ["stickyText"]
+	  }, [_vm._v("Footer")])]), _c('div', {
+	    staticClass: ["fixedItem"],
+	    on: {
+	      "click": _vm.scrollToTop
+	    }
+	  }, [_c('text', {
+	    staticClass: ["fixedText"]
+	  }, [_vm._v("Top")])])], 2)
+	},staticRenderFns: []}
+	module.exports.render._withStripped = true
+
+/***/ }
+
+/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/marquee-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/marquee-demo.js b/ios/playground/bundlejs/component/marquee-demo.js
index 0cde2dc..1998ed5 100644
--- a/ios/playground/bundlejs/component/marquee-demo.js
+++ b/ios/playground/bundlejs/component/marquee-demo.js
@@ -44,8 +44,8 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(106)
-	var __weex_script__ = __webpack_require__(107)
+	var __weex_template__ = __webpack_require__(111)
+	var __weex_script__ = __webpack_require__(112)
 
 	__weex_define__('@weex-component/eeaccd3d9c9113871c5ec6aa21c1c2cd', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2044,7 +2044,12 @@
 /* 103 */,
 /* 104 */,
 /* 105 */,
-/* 106 */
+/* 106 */,
+/* 107 */,
+/* 108 */,
+/* 109 */,
+/* 110 */,
+/* 111 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2106,7 +2111,7 @@
 	}
 
 /***/ },
-/* 107 */
+/* 112 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/process-bar-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/process-bar-demo.js b/ios/playground/bundlejs/component/process-bar-demo.js
index f0ece8f..5f63bc4 100644
--- a/ios/playground/bundlejs/component/process-bar-demo.js
+++ b/ios/playground/bundlejs/component/process-bar-demo.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(145)
-	var __weex_style__ = __webpack_require__(146)
-	var __weex_script__ = __webpack_require__(147)
+	var __weex_template__ = __webpack_require__(150)
+	var __weex_style__ = __webpack_require__(151)
+	var __weex_script__ = __webpack_require__(152)
 
 	__weex_define__('@weex-component/0a82ae39306363e81eeac009d30abc0a', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2086,7 +2086,12 @@
 /* 142 */,
 /* 143 */,
 /* 144 */,
-/* 145 */
+/* 145 */,
+/* 146 */,
+/* 147 */,
+/* 148 */,
+/* 149 */,
+/* 150 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2124,13 +2129,13 @@
 	}
 
 /***/ },
-/* 146 */
+/* 151 */
 /***/ function(module, exports) {
 
 	module.exports = {}
 
 /***/ },
-/* 147 */
+/* 152 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/scroller-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/scroller-demo.js b/ios/playground/bundlejs/component/scroller-demo.js
index ec6656b..9709d4c 100644
--- a/ios/playground/bundlejs/component/scroller-demo.js
+++ b/ios/playground/bundlejs/component/scroller-demo.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(148)
-	var __weex_style__ = __webpack_require__(149)
-	var __weex_script__ = __webpack_require__(150)
+	var __weex_template__ = __webpack_require__(153)
+	var __weex_style__ = __webpack_require__(154)
+	var __weex_script__ = __webpack_require__(155)
 
 	__weex_define__('@weex-component/3999ea06e04b487185c2565d7cda9180', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2041,8 +2041,22 @@
 /* 97 */,
 /* 98 */,
 /* 99 */,
-/* 100 */,
-/* 101 */,
+/* 100 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
+
+/***/ },
+/* 101 */
+/***/ function(module, exports, __webpack_require__) {
+
+	var core  = __webpack_require__(34)
+	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
+	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
+	  return $JSON.stringify.apply($JSON, arguments);
+	};
+
+/***/ },
 /* 102 */,
 /* 103 */,
 /* 104 */,
@@ -2089,72 +2103,84 @@
 /* 145 */,
 /* 146 */,
 /* 147 */,
-/* 148 */
+/* 148 */,
+/* 149 */,
+/* 150 */,
+/* 151 */,
+/* 152 */,
+/* 153 */
 /***/ function(module, exports) {
 
 	module.exports = {
-	  "type": "scroller",
-	  "classList": [
-	    "list"
-	  ],
-	  "attr": {
-	    "append\uff1d\"tree\"": ""
-	  },
+	  "type": "div",
 	  "children": [
 	    {
-	      "type": "refresh",
-	      "classList": [
-	        "refresh-view"
-	      ],
-	      "attr": {
-	        "display": function () {return this.refresh_display}
-	      },
-	      "events": {
-	        "refresh": "onrefresh"
+	      "type": "div",
+	      "style": {
+	        "height": 20,
+	        "width": 750,
+	        "borderColor": "#000000",
+	        "borderWidth": 2,
+	        "justifyContent": "center"
 	      },
 	      "children": [
 	        {
-	          "type": "loading-indicator",
-	          "classList": [
-	            "indicator"
-	          ]
-	        },
-	        {
-	          "type": "text",
-	          "classList": [
-	            "refresh-arrow"
-	          ],
+	          "type": "div",
 	          "style": {
-	            "textAlign": "center",
-	            "color": "rgb(238,162,54)"
-	          },
-	          "shown": function () {return (this.refresh_display==='hide')},
-	          "attr": {
-	            "value": "Pull To Refresh"
+	            "height": 14,
+	            "width": function () {return this.progress_width},
+	            "marginLeft": function () {return this.progress},
+	            "backgroundColor": "#808080"
 	          }
 	        }
 	      ]
 	    },
 	    {
-	      "type": "div",
-	      "classList": [
-	        "section"
-	      ],
-	      "repeat": function () {return this.sections},
+	      "type": "text",
+	      "style": {
+	        "width": 750
+	      },
+	      "attr": {
+	        "value": function () {return this.event}
+	      }
+	    },
+	    {
+	      "type": "scroller",
+	      "id": "scroller",
+	      "events": {
+	        "scroll": "onScroll"
+	      },
 	      "children": [
 	        {
-	          "type": "div",
+	          "type": "refresh",
 	          "classList": [
-	            "header"
+	            "refresh-view"
 	          ],
+	          "attr": {
+	            "display": function () {return this.refresh_display}
+	          },
+	          "events": {
+	            "refresh": "onrefresh"
+	          },
 	          "children": [
 	            {
+	              "type": "loading-indicator",
+	              "classList": [
+	                "indicator"
+	              ]
+	            },
+	            {
 	              "type": "text",
 	              "classList": [
-	                "header-title"
+	                "refresh-arrow"
 	              ],
+	              "style": {
+	                "textAlign": "center",
+	                "color": "rgb(238,162,54)"
+	              },
+	              "shown": function () {return (this.refresh_display==='hide')},
 	              "attr": {
-	                "value": function () {return this.title}
+	                "value": "Pull To Refresh"
 	              }
 	            }
 	          ]
@@ -2162,39 +2188,65 @@
 	        {
 	          "type": "div",
 	          "classList": [
-	            "item"
+	            "section"
 	          ],
-	          "repeat": function () {return this.items},
+	          "repeat": function () {return this.sections},
 	          "children": [
 	            {
-	              "type": "text",
+	              "type": "div",
 	              "classList": [
-	                "item-title"
+	                "header"
 	              ],
-	              "attr": {
-	                "value": function () {return 'row ' + (this.id)}
-	              }
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "header-title"
+	                  ],
+	                  "attr": {
+	                    "value": function () {return this.title}
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "div",
+	              "classList": [
+	                "item"
+	              ],
+	              "repeat": function () {return this.items},
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "item-title"
+	                  ],
+	                  "attr": {
+	                    "value": function () {return 'row ' + (this.id)}
+	                  }
+	                }
+	              ]
 	            }
 	          ]
-	        }
-	      ]
-	    },
-	    {
-	      "type": "loading",
-	      "classList": [
-	        "loading-view"
-	      ],
-	      "attr": {
-	        "display": function () {return this.loading_display}
-	      },
-	      "events": {
-	        "loading": "onloading"
-	      },
-	      "children": [
+	        },
 	        {
-	          "type": "loading-indicator",
+	          "type": "loading",
 	          "classList": [
-	            "indicator"
+	            "loading-view"
+	          ],
+	          "attr": {
+	            "display": function () {return this.loading_display}
+	          },
+	          "events": {
+	            "loading": "onloading"
+	          },
+	          "children": [
+	            {
+	              "type": "loading-indicator",
+	              "classList": [
+	                "indicator"
+	              ]
+	            }
 	          ]
 	        }
 	      ]
@@ -2203,7 +2255,7 @@
 	}
 
 /***/ },
-/* 149 */
+/* 154 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2254,12 +2306,19 @@
 	}
 
 /***/ },
-/* 150 */
+/* 155 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
+	var _stringify = __webpack_require__(100);
+
+	var _stringify2 = _interopRequireDefault(_stringify);
+
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
 	__webpack_require__(4);
+	var dom = weex.requireModule('dom');
 	module.exports = {
 	  methods: {
 	    onrefresh: function onrefresh(e) {
@@ -2284,9 +2343,23 @@
 	        }
 	        self.loading_display = 'hide';
 	      }, 3000);
+	    },
+	    onScroll: function onScroll(e) {
+	      var self = this;
+	      this.event = 'contentOffset: ' + (0, _stringify2.default)(e.contentOffset) + '\ncontentSize: ' + (0, _stringify2.default)(e.contentSize);
+	      dom.getComponentRect(this.$el('scroller'), function (ret) {
+	        console.log(ret.size.height);
+	        var listHeight = ret.size.height;
+	        self.progress_width = listHeight / e.contentSize.height * 750;
+	        var offsetY = e.contentOffset.y > 0 ? 0 : Math.abs(e.contentOffset.y);
+	        self.progress = offsetY / (e.contentSize.height - listHeight) * (750 - self.progress_width);
+	      });
 	    }
 	  },
 	  data: function () {return {
+	    event: '-',
+	    progress_width: 0,
+	    progress: 0,
 	    refresh_display: 'hide',
 	    loading_display: 'hide',
 	    sections: [{

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/slider-neighbor/index.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider-neighbor/index.js b/ios/playground/bundlejs/component/slider-neighbor/index.js
index a6ce716..443677a 100644
--- a/ios/playground/bundlejs/component/slider-neighbor/index.js
+++ b/ios/playground/bundlejs/component/slider-neighbor/index.js
@@ -45,8 +45,8 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(151)
-	var __weex_script__ = __webpack_require__(152)
+	var __weex_template__ = __webpack_require__(156)
+	var __weex_script__ = __webpack_require__(157)
 
 	__weex_define__('@weex-component/3157b803090c07c091af8fa3147f3d5c', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -63,7 +63,7 @@
 
 /***/ },
 
-/***/ 151:
+/***/ 156:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -215,7 +215,7 @@
 
 /***/ },
 
-/***/ 152:
+/***/ 157:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-item.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-item.js b/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-item.js
index 79eed2a..057e60f 100644
--- a/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-item.js
+++ b/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-item.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(153)
-	var __weex_style__ = __webpack_require__(154)
-	var __weex_script__ = __webpack_require__(155)
+	var __weex_template__ = __webpack_require__(158)
+	var __weex_style__ = __webpack_require__(159)
+	var __weex_script__ = __webpack_require__(160)
 
 	__weex_define__('@weex-component/d723bedd436352d63e4fa599317a8037', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 153:
+/***/ 158:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -89,7 +89,7 @@
 
 /***/ },
 
-/***/ 154:
+/***/ 159:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -108,7 +108,7 @@
 
 /***/ },
 
-/***/ 155:
+/***/ 160:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-page.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-page.js b/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-page.js
index 335e7e6..c440f76 100644
--- a/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-page.js
+++ b/ios/playground/bundlejs/component/slider-neighbor/slider-neighbor-page.js
@@ -45,10 +45,10 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(156)
-	var __weex_template__ = __webpack_require__(157)
-	var __weex_style__ = __webpack_require__(158)
-	var __weex_script__ = __webpack_require__(159)
+	__webpack_require__(161)
+	var __weex_template__ = __webpack_require__(162)
+	var __weex_style__ = __webpack_require__(163)
+	var __weex_script__ = __webpack_require__(164)
 
 	__weex_define__('@weex-component/01b832918f8c3165cebb597eb613f790', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -67,7 +67,7 @@
 
 /***/ },
 
-/***/ 153:
+/***/ 158:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -90,7 +90,7 @@
 
 /***/ },
 
-/***/ 154:
+/***/ 159:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -109,7 +109,7 @@
 
 /***/ },
 
-/***/ 155:
+/***/ 160:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -131,12 +131,12 @@
 
 /***/ },
 
-/***/ 156:
+/***/ 161:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(153)
-	var __weex_style__ = __webpack_require__(154)
-	var __weex_script__ = __webpack_require__(155)
+	var __weex_template__ = __webpack_require__(158)
+	var __weex_style__ = __webpack_require__(159)
+	var __weex_script__ = __webpack_require__(160)
 
 	__weex_define__('@weex-component/slider-neighbor-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -154,7 +154,7 @@
 
 /***/ },
 
-/***/ 157:
+/***/ 162:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -172,7 +172,7 @@
 
 /***/ },
 
-/***/ 158:
+/***/ 163:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -184,7 +184,7 @@
 
 /***/ },
 
-/***/ 159:
+/***/ 164:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/slider-tab.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider-tab.js b/ios/playground/bundlejs/component/slider-tab.js
new file mode 100644
index 0000000..c1816d3
--- /dev/null
+++ b/ios/playground/bundlejs/component/slider-tab.js
@@ -0,0 +1,633 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId])
+/******/ 			return installedModules[moduleId].exports;
+
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			exports: {},
+/******/ 			id: moduleId,
+/******/ 			loaded: false
+/******/ 		};
+
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ 		// Flag the module as loaded
+/******/ 		module.loaded = true;
+
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+
+
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 0:
+/***/ function(module, exports, __webpack_require__) {
+
+	var __weex_template__ = __webpack_require__(165)
+	var __weex_style__ = __webpack_require__(166)
+	var __weex_script__ = __webpack_require__(167)
+
+	__weex_define__('@weex-component/80b287cd7ee83071ff869144c4552259', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+
+	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
+	    if (__weex_exports__.__esModule && __weex_exports__.default) {
+	      __weex_module__.exports = __weex_exports__.default
+	    }
+
+	    __weex_module__.exports.template = __weex_template__
+
+	    __weex_module__.exports.style = __weex_style__
+
+	})
+
+	__weex_bootstrap__('@weex-component/80b287cd7ee83071ff869144c4552259',undefined,undefined)
+
+/***/ },
+
+/***/ 32:
+/***/ function(module, exports, __webpack_require__) {
+
+	var global    = __webpack_require__(33)
+	  , core      = __webpack_require__(34)
+	  , ctx       = __webpack_require__(35)
+	  , hide      = __webpack_require__(37)
+	  , PROTOTYPE = 'prototype';
+
+	var $export = function(type, name, source){
+	  var IS_FORCED = type & $export.F
+	    , IS_GLOBAL = type & $export.G
+	    , IS_STATIC = type & $export.S
+	    , IS_PROTO  = type & $export.P
+	    , IS_BIND   = type & $export.B
+	    , IS_WRAP   = type & $export.W
+	    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
+	    , expProto  = exports[PROTOTYPE]
+	    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
+	    , key, own, out;
+	  if(IS_GLOBAL)source = name;
+	  for(key in source){
+	    // contains in native
+	    own = !IS_FORCED && target && target[key] !== undefined;
+	    if(own && key in exports)continue;
+	    // export native or passed
+	    out = own ? target[key] : source[key];
+	    // prevent global pollution for namespaces
+	    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
+	    // bind timers to global for call from export context
+	    : IS_BIND && own ? ctx(out, global)
+	    // wrap global constructors for prevent change them in library
+	    : IS_WRAP && target[key] == out ? (function(C){
+	      var F = function(a, b, c){
+	        if(this instanceof C){
+	          switch(arguments.length){
+	            case 0: return new C;
+	            case 1: return new C(a);
+	            case 2: return new C(a, b);
+	          } return new C(a, b, c);
+	        } return C.apply(this, arguments);
+	      };
+	      F[PROTOTYPE] = C[PROTOTYPE];
+	      return F;
+	    // make static versions for prototype methods
+	    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+	    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
+	    if(IS_PROTO){
+	      (exports.virtual || (exports.virtual = {}))[key] = out;
+	      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
+	      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
+	    }
+	  }
+	};
+	// type bitmap
+	$export.F = 1;   // forced
+	$export.G = 2;   // global
+	$export.S = 4;   // static
+	$export.P = 8;   // proto
+	$export.B = 16;  // bind
+	$export.W = 32;  // wrap
+	$export.U = 64;  // safe
+	$export.R = 128; // real proto method for `library` 
+	module.exports = $export;
+
+/***/ },
+
+/***/ 33:
+/***/ function(module, exports) {
+
+	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+	var global = module.exports = typeof window != 'undefined' && window.Math == Math
+	  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+	if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+
+/***/ },
+
+/***/ 34:
+/***/ function(module, exports) {
+
+	var core = module.exports = {version: '2.4.0'};
+	if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+
+/***/ },
+
+/***/ 35:
+/***/ function(module, exports, __webpack_require__) {
+
+	// optional / simple context binding
+	var aFunction = __webpack_require__(36);
+	module.exports = function(fn, that, length){
+	  aFunction(fn);
+	  if(that === undefined)return fn;
+	  switch(length){
+	    case 1: return function(a){
+	      return fn.call(that, a);
+	    };
+	    case 2: return function(a, b){
+	      return fn.call(that, a, b);
+	    };
+	    case 3: return function(a, b, c){
+	      return fn.call(that, a, b, c);
+	    };
+	  }
+	  return function(/* ...args */){
+	    return fn.apply(that, arguments);
+	  };
+	};
+
+/***/ },
+
+/***/ 36:
+/***/ function(module, exports) {
+
+	module.exports = function(it){
+	  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+	  return it;
+	};
+
+/***/ },
+
+/***/ 37:
+/***/ function(module, exports, __webpack_require__) {
+
+	var dP         = __webpack_require__(38)
+	  , createDesc = __webpack_require__(46);
+	module.exports = __webpack_require__(42) ? function(object, key, value){
+	  return dP.f(object, key, createDesc(1, value));
+	} : function(object, key, value){
+	  object[key] = value;
+	  return object;
+	};
+
+/***/ },
+
+/***/ 38:
+/***/ function(module, exports, __webpack_require__) {
+
+	var anObject       = __webpack_require__(39)
+	  , IE8_DOM_DEFINE = __webpack_require__(41)
+	  , toPrimitive    = __webpack_require__(45)
+	  , dP             = Object.defineProperty;
+
+	exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){
+	  anObject(O);
+	  P = toPrimitive(P, true);
+	  anObject(Attributes);
+	  if(IE8_DOM_DEFINE)try {
+	    return dP(O, P, Attributes);
+	  } catch(e){ /* empty */ }
+	  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
+	  if('value' in Attributes)O[P] = Attributes.value;
+	  return O;
+	};
+
+/***/ },
+
+/***/ 39:
+/***/ function(module, exports, __webpack_require__) {
+
+	var isObject = __webpack_require__(40);
+	module.exports = function(it){
+	  if(!isObject(it))throw TypeError(it + ' is not an object!');
+	  return it;
+	};
+
+/***/ },
+
+/***/ 40:
+/***/ function(module, exports) {
+
+	module.exports = function(it){
+	  return typeof it === 'object' ? it !== null : typeof it === 'function';
+	};
+
+/***/ },
+
+/***/ 41:
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){
+	  return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7;
+	});
+
+/***/ },
+
+/***/ 42:
+/***/ function(module, exports, __webpack_require__) {
+
+	// Thank's IE8 for his funny defineProperty
+	module.exports = !__webpack_require__(43)(function(){
+	  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
+	});
+
+/***/ },
+
+/***/ 43:
+/***/ function(module, exports) {
+
+	module.exports = function(exec){
+	  try {
+	    return !!exec();
+	  } catch(e){
+	    return true;
+	  }
+	};
+
+/***/ },
+
+/***/ 44:
+/***/ function(module, exports, __webpack_require__) {
+
+	var isObject = __webpack_require__(40)
+	  , document = __webpack_require__(33).document
+	  // in old IE typeof document.createElement is 'object'
+	  , is = isObject(document) && isObject(document.createElement);
+	module.exports = function(it){
+	  return is ? document.createElement(it) : {};
+	};
+
+/***/ },
+
+/***/ 45:
+/***/ function(module, exports, __webpack_require__) {
+
+	// 7.1.1 ToPrimitive(input [, PreferredType])
+	var isObject = __webpack_require__(40);
+	// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+	// and the second argument - flag - preferred type is a string
+	module.exports = function(it, S){
+	  if(!isObject(it))return it;
+	  var fn, val;
+	  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+	  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+	  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+	  throw TypeError("Can't convert object to primitive value");
+	};
+
+/***/ },
+
+/***/ 46:
+/***/ function(module, exports) {
+
+	module.exports = function(bitmap, value){
+	  return {
+	    enumerable  : !(bitmap & 1),
+	    configurable: !(bitmap & 2),
+	    writable    : !(bitmap & 4),
+	    value       : value
+	  };
+	};
+
+/***/ },
+
+/***/ 165:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "type": "div",
+	  "style": {
+	    "padding": 25
+	  },
+	  "children": [
+	    {
+	      "type": "div",
+	      "style": {
+	        "height": 80,
+	        "flexDirection": "row"
+	      },
+	      "children": [
+	        {
+	          "type": "div",
+	          "style": {
+	            "flex": 1,
+	            "backgroundColor": "#008B8B",
+	            "justifyContent": "center",
+	            "alignItems": "center"
+	          },
+	          "events": {
+	            "click": function ($event) {this.goto(0,$event)}
+	          },
+	          "children": [
+	            {
+	              "type": "text",
+	              "classList": [
+	                "page-title"
+	              ],
+	              "attr": {
+	                "value": "Page 1"
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "div",
+	          "style": {
+	            "flex": 1,
+	            "backgroundColor": "#7FFFD4",
+	            "justifyContent": "center",
+	            "alignItems": "center"
+	          },
+	          "events": {
+	            "click": function ($event) {this.goto(1,$event)}
+	          },
+	          "children": [
+	            {
+	              "type": "text",
+	              "classList": [
+	                "page-title"
+	              ],
+	              "attr": {
+	                "value": "Page 2"
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "div",
+	          "style": {
+	            "flex": 1,
+	            "backgroundColor": "#008B8B",
+	            "justifyContent": "center",
+	            "alignItems": "center"
+	          },
+	          "events": {
+	            "click": function ($event) {this.goto(2,$event)}
+	          },
+	          "children": [
+	            {
+	              "type": "text",
+	              "classList": [
+	                "page-title"
+	              ],
+	              "attr": {
+	                "value": "Page 3"
+	              }
+	            }
+	          ]
+	        }
+	      ]
+	    },
+	    {
+	      "type": "div",
+	      "style": {
+	        "height": 10,
+	        "backgroundColor": "#87CEEB"
+	      },
+	      "children": [
+	        {
+	          "type": "div",
+	          "style": {
+	            "width": 233,
+	            "height": 10,
+	            "marginLeft": function () {return this.progress},
+	            "backgroundColor": "#00008B"
+	          }
+	        }
+	      ]
+	    },
+	    {
+	      "type": "slider",
+	      "classList": [
+	        "slider"
+	      ],
+	      "attr": {
+	        "interval": "4500",
+	        "index": function () {return this.index},
+	        "offsetXAccuracy": "0.01"
+	      },
+	      "events": {
+	        "change": "onchange",
+	        "scroll": "onscroll"
+	      },
+	      "append": "tree",
+	      "children": [
+	        {
+	          "type": "div",
+	          "classList": [
+	            "frame"
+	          ],
+	          "repeat": {
+	            "expression": function () {return this.imageList},
+	            "value": "img"
+	          },
+	          "children": [
+	            {
+	              "type": "image",
+	              "classList": [
+	                "image"
+	              ],
+	              "attr": {
+	                "resize": "cover",
+	                "src": function () {return this.img.src}
+	              }
+	            },
+	            {
+	              "type": "text",
+	              "classList": [
+	                "title"
+	              ],
+	              "attr": {
+	                "value": function () {return this.img.title}
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "indicator",
+	          "style": {
+	            "height": 20
+	          }
+	        }
+	      ]
+	    }
+	  ]
+	}
+
+/***/ },
+
+/***/ 166:
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "page-title": {
+	    "color": "#000000",
+	    "fontSize": 40,
+	    "fontWeight": "bold"
+	  },
+	  "image": {
+	    "width": 700,
+	    "height": 700
+	  },
+	  "slider": {
+	    "width": 700,
+	    "height": 700,
+	    "position": "absolute",
+	    "borderWidth": 2,
+	    "borderStyle": "solid",
+	    "borderColor": "#41B883"
+	  },
+	  "title": {
+	    "position": "absolute",
+	    "top": 20,
+	    "left": 20,
+	    "paddingLeft": 20,
+	    "width": 200,
+	    "color": "#FFFFFF",
+	    "fontSize": 36,
+	    "lineHeight": 60,
+	    "backgroundColor": "rgba(0,0,0,0.3)"
+	  },
+	  "frame": {
+	    "width": 700,
+	    "height": 700
+	  }
+	}
+
+/***/ },
+
+/***/ 167:
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = function(module, exports, __weex_require__){'use strict';
+
+	Object.defineProperty(exports, "__esModule", {
+	  value: true
+	});
+
+	var _defineProperty2 = __webpack_require__(168);
+
+	var _defineProperty3 = _interopRequireDefault(_defineProperty2);
+
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+	exports.default = {
+	  data: {
+	    imageList: [{ title: 'Page 1', src: 'https://gd2.alicdn.com/bao/uploaded/i2/T14H1LFwBcXXXXXXXX_!!0-item_pic.jpg' }, {
+	      title: 'Page 2',
+	      src: 'https://gd1.alicdn.com/bao/uploaded/i1/TB1PXJCJFXXXXciXFXXXXXXXXXX_!!0-item_pic.jpg'
+	    }, {
+	      title: 'Page 3',
+	      src: 'https://gd3.alicdn.com/bao/uploaded/i3/TB1x6hYLXXXXXazXVXXXXXXXXXX_!!0-item_pic.jpg'
+	    }],
+	    index: 0,
+	    progress: 0
+	  },
+	  methods: (0, _defineProperty3.default)({
+	    onchange: function onchange(event) {
+	      console.log('changed:', event.index);
+	    },
+	    goto: function goto(i) {
+	      this.index = i;
+	      this.progress = i * 233;
+	    },
+	    onscroll: function onscroll(e) {
+	      var ratio = parseFloat(e.offsetXRatio);
+	      this.progress = 233 * this.index + 233 * -ratio;
+	    }
+	  }, 'onchange', function onchange(e) {
+	    this.goto(parseInt(e.index));
+	  })
+	};}
+	/* generated by weex-loader */
+
+
+/***/ },
+
+/***/ 168:
+/***/ function(module, exports, __webpack_require__) {
+
+	"use strict";
+
+	exports.__esModule = true;
+
+	var _defineProperty = __webpack_require__(169);
+
+	var _defineProperty2 = _interopRequireDefault(_defineProperty);
+
+	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+	exports.default = function (obj, key, value) {
+	  if (key in obj) {
+	    (0, _defineProperty2.default)(obj, key, {
+	      value: value,
+	      enumerable: true,
+	      configurable: true,
+	      writable: true
+	    });
+	  } else {
+	    obj[key] = value;
+	  }
+
+	  return obj;
+	};
+
+/***/ },
+
+/***/ 169:
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(170), __esModule: true };
+
+/***/ },
+
+/***/ 170:
+/***/ function(module, exports, __webpack_require__) {
+
+	__webpack_require__(171);
+	var $Object = __webpack_require__(34).Object;
+	module.exports = function defineProperty(it, key, desc){
+	  return $Object.defineProperty(it, key, desc);
+	};
+
+/***/ },
+
+/***/ 171:
+/***/ function(module, exports, __webpack_require__) {
+
+	var $export = __webpack_require__(32);
+	// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
+	$export($export.S + $export.F * !__webpack_require__(42), 'Object', {defineProperty: __webpack_require__(38).f});
+
+/***/ }
+
+/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/slider/index.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider/index.js b/ios/playground/bundlejs/component/slider/index.js
index 942e7b5..d1bfe1f 100644
--- a/ios/playground/bundlejs/component/slider/index.js
+++ b/ios/playground/bundlejs/component/slider/index.js
@@ -44,10 +44,10 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(160)
-	var __weex_template__ = __webpack_require__(168)
-	var __weex_style__ = __webpack_require__(169)
-	var __weex_script__ = __webpack_require__(170)
+	__webpack_require__(172)
+	var __weex_template__ = __webpack_require__(180)
+	var __weex_style__ = __webpack_require__(181)
+	var __weex_script__ = __webpack_require__(182)
 
 	__weex_define__('@weex-component/0f29733e34d42a0cdfe7b98eb53bff4c', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2102,13 +2102,25 @@
 /* 157 */,
 /* 158 */,
 /* 159 */,
-/* 160 */
+/* 160 */,
+/* 161 */,
+/* 162 */,
+/* 163 */,
+/* 164 */,
+/* 165 */,
+/* 166 */,
+/* 167 */,
+/* 168 */,
+/* 169 */,
+/* 170 */,
+/* 171 */,
+/* 172 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(161)
-	var __weex_template__ = __webpack_require__(165)
-	var __weex_style__ = __webpack_require__(166)
-	var __weex_script__ = __webpack_require__(167)
+	__webpack_require__(173)
+	var __weex_template__ = __webpack_require__(177)
+	var __weex_style__ = __webpack_require__(178)
+	var __weex_script__ = __webpack_require__(179)
 
 	__weex_define__('@weex-component/slider-page', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2125,12 +2137,12 @@
 
 
 /***/ },
-/* 161 */
+/* 173 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(162)
-	var __weex_style__ = __webpack_require__(163)
-	var __weex_script__ = __webpack_require__(164)
+	var __weex_template__ = __webpack_require__(174)
+	var __weex_style__ = __webpack_require__(175)
+	var __weex_script__ = __webpack_require__(176)
 
 	__weex_define__('@weex-component/slider-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2147,7 +2159,7 @@
 
 
 /***/ },
-/* 162 */
+/* 174 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2161,7 +2173,7 @@
 	}
 
 /***/ },
-/* 163 */
+/* 175 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2172,7 +2184,7 @@
 	}
 
 /***/ },
-/* 164 */
+/* 176 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -2193,7 +2205,7 @@
 
 
 /***/ },
-/* 165 */
+/* 177 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2210,7 +2222,7 @@
 	}
 
 /***/ },
-/* 166 */
+/* 178 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2223,7 +2235,7 @@
 	}
 
 /***/ },
-/* 167 */
+/* 179 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";
@@ -2248,7 +2260,7 @@
 
 
 /***/ },
-/* 168 */
+/* 180 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2588,7 +2600,7 @@
 	}
 
 /***/ },
-/* 169 */
+/* 181 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2612,7 +2624,7 @@
 	}
 
 /***/ },
-/* 170 */
+/* 182 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/slider/slider-item.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider/slider-item.js b/ios/playground/bundlejs/component/slider/slider-item.js
index 2465a57..9111e0d 100644
--- a/ios/playground/bundlejs/component/slider/slider-item.js
+++ b/ios/playground/bundlejs/component/slider/slider-item.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(162)
-	var __weex_style__ = __webpack_require__(163)
-	var __weex_script__ = __webpack_require__(164)
+	var __weex_template__ = __webpack_require__(174)
+	var __weex_style__ = __webpack_require__(175)
+	var __weex_script__ = __webpack_require__(176)
 
 	__weex_define__('@weex-component/acad2f79d78cffd36dfaedd0c65d980d', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 162:
+/***/ 174:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -81,7 +81,7 @@
 
 /***/ },
 
-/***/ 163:
+/***/ 175:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -93,7 +93,7 @@
 
 /***/ },
 
-/***/ 164:
+/***/ 176:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/slider/slider-page.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider/slider-page.js b/ios/playground/bundlejs/component/slider/slider-page.js
index 908b680..5b89589 100644
--- a/ios/playground/bundlejs/component/slider/slider-page.js
+++ b/ios/playground/bundlejs/component/slider/slider-page.js
@@ -45,10 +45,10 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(161)
-	var __weex_template__ = __webpack_require__(165)
-	var __weex_style__ = __webpack_require__(166)
-	var __weex_script__ = __webpack_require__(167)
+	__webpack_require__(173)
+	var __weex_template__ = __webpack_require__(177)
+	var __weex_style__ = __webpack_require__(178)
+	var __weex_script__ = __webpack_require__(179)
 
 	__weex_define__('@weex-component/ea51bd2d36d6d5354af97da097043629', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -67,12 +67,12 @@
 
 /***/ },
 
-/***/ 161:
+/***/ 173:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(162)
-	var __weex_style__ = __webpack_require__(163)
-	var __weex_script__ = __webpack_require__(164)
+	var __weex_template__ = __webpack_require__(174)
+	var __weex_style__ = __webpack_require__(175)
+	var __weex_script__ = __webpack_require__(176)
 
 	__weex_define__('@weex-component/slider-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -90,7 +90,7 @@
 
 /***/ },
 
-/***/ 162:
+/***/ 174:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -105,7 +105,7 @@
 
 /***/ },
 
-/***/ 163:
+/***/ 175:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -117,7 +117,7 @@
 
 /***/ },
 
-/***/ 164:
+/***/ 176:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -139,7 +139,7 @@
 
 /***/ },
 
-/***/ 165:
+/***/ 177:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -157,7 +157,7 @@
 
 /***/ },
 
-/***/ 166:
+/***/ 178:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -171,7 +171,7 @@
 
 /***/ },
 
-/***/ 167:
+/***/ 179:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/text-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/text-demo.js b/ios/playground/bundlejs/component/text-demo.js
index 44bf5b6..8f530d0 100644
--- a/ios/playground/bundlejs/component/text-demo.js
+++ b/ios/playground/bundlejs/component/text-demo.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(176)
-	var __weex_style__ = __webpack_require__(177)
-	var __weex_script__ = __webpack_require__(178)
+	var __weex_template__ = __webpack_require__(188)
+	var __weex_style__ = __webpack_require__(189)
+	var __weex_script__ = __webpack_require__(190)
 
 	__weex_define__('@weex-component/c0ea4ed580d5c38f82bd25b5602f26fe', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2117,7 +2117,19 @@
 /* 173 */,
 /* 174 */,
 /* 175 */,
-/* 176 */
+/* 176 */,
+/* 177 */,
+/* 178 */,
+/* 179 */,
+/* 180 */,
+/* 181 */,
+/* 182 */,
+/* 183 */,
+/* 184 */,
+/* 185 */,
+/* 186 */,
+/* 187 */,
+/* 188 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2605,7 +2617,7 @@
 	}
 
 /***/ },
-/* 177 */
+/* 189 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2616,7 +2628,7 @@
 	}
 
 /***/ },
-/* 178 */
+/* 190 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/video-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/video-demo.js b/ios/playground/bundlejs/component/video-demo.js
index f2ada38..018e830 100644
--- a/ios/playground/bundlejs/component/video-demo.js
+++ b/ios/playground/bundlejs/component/video-demo.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(179)
-	var __weex_style__ = __webpack_require__(180)
-	var __weex_script__ = __webpack_require__(181)
+	var __weex_template__ = __webpack_require__(191)
+	var __weex_style__ = __webpack_require__(192)
+	var __weex_script__ = __webpack_require__(193)
 
 	__weex_define__('@weex-component/a6ac855fc70c0bffbf2b317f9487878f', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2120,7 +2120,19 @@
 /* 176 */,
 /* 177 */,
 /* 178 */,
-/* 179 */
+/* 179 */,
+/* 180 */,
+/* 181 */,
+/* 182 */,
+/* 183 */,
+/* 184 */,
+/* 185 */,
+/* 186 */,
+/* 187 */,
+/* 188 */,
+/* 189 */,
+/* 190 */,
+/* 191 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2178,7 +2190,7 @@
 	}
 
 /***/ },
-/* 180 */
+/* 192 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2190,7 +2202,7 @@
 	}
 
 /***/ },
-/* 181 */
+/* 193 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/web-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/web-demo.js b/ios/playground/bundlejs/component/web-demo.js
index 2ae03fe..705f1be 100644
--- a/ios/playground/bundlejs/component/web-demo.js
+++ b/ios/playground/bundlejs/component/web-demo.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(182)
-	var __weex_style__ = __webpack_require__(183)
-	var __weex_script__ = __webpack_require__(184)
+	var __weex_template__ = __webpack_require__(194)
+	var __weex_style__ = __webpack_require__(195)
+	var __weex_script__ = __webpack_require__(196)
 
 	__weex_define__('@weex-component/1a81fb780319a63605d941949f4ff5d7', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2123,7 +2123,19 @@
 /* 179 */,
 /* 180 */,
 /* 181 */,
-/* 182 */
+/* 182 */,
+/* 183 */,
+/* 184 */,
+/* 185 */,
+/* 186 */,
+/* 187 */,
+/* 188 */,
+/* 189 */,
+/* 190 */,
+/* 191 */,
+/* 192 */,
+/* 193 */,
+/* 194 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2211,7 +2223,7 @@
 	}
 
 /***/ },
-/* 183 */
+/* 195 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2243,7 +2255,7 @@
 	}
 
 /***/ },
-/* 184 */
+/* 196 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -2253,6 +2265,7 @@
 	module.exports = {
 	    methods: {
 	        goback: function goback() {
+	            var $webview = __weex_require__('@weex-module/webview');
 	            var webElement = this.$el('webview');
 	            $webview.goBack(webElement.ref);
 	        },

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/error.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/error.js b/ios/playground/bundlejs/error.js
index 556750f..437063d 100644
--- a/ios/playground/bundlejs/error.js
+++ b/ios/playground/bundlejs/error.js
@@ -44,8 +44,8 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(185)
-	var __weex_script__ = __webpack_require__(186)
+	var __weex_template__ = __webpack_require__(197)
+	var __weex_script__ = __webpack_require__(198)
 
 	__weex_define__('@weex-component/a62071d3ca8239528c69d72539119e08', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2123,7 +2123,19 @@
 /* 182 */,
 /* 183 */,
 /* 184 */,
-/* 185 */
+/* 185 */,
+/* 186 */,
+/* 187 */,
+/* 188 */,
+/* 189 */,
+/* 190 */,
+/* 191 */,
+/* 192 */,
+/* 193 */,
+/* 194 */,
+/* 195 */,
+/* 196 */,
+/* 197 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2195,7 +2207,7 @@
 	}
 
 /***/ },
-/* 186 */
+/* 198 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/geolocation.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/geolocation.js b/ios/playground/bundlejs/geolocation.js
index 09b72b4..1eb2a74 100644
--- a/ios/playground/bundlejs/geolocation.js
+++ b/ios/playground/bundlejs/geolocation.js
@@ -45,8 +45,8 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(187)
-	var __weex_script__ = __webpack_require__(188)
+	var __weex_template__ = __webpack_require__(199)
+	var __weex_script__ = __webpack_require__(200)
 
 	__weex_define__('@weex-component/c1022e7ee9ce09ed1eadcf7bffe1b341', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -71,7 +71,25 @@
 
 /***/ },
 
-/***/ 187:
+/***/ 100:
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = { "default": __webpack_require__(101), __esModule: true };
+
+/***/ },
+
+/***/ 101:
+/***/ function(module, exports, __webpack_require__) {
+
+	var core  = __webpack_require__(34)
+	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
+	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
+	  return $JSON.stringify.apply($JSON, arguments);
+	};
+
+/***/ },
+
+/***/ 199:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -110,12 +128,12 @@
 
 /***/ },
 
-/***/ 188:
+/***/ 200:
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";
 
-	var _stringify = __webpack_require__(189);
+	var _stringify = __webpack_require__(100);
 
 	var _stringify2 = _interopRequireDefault(_stringify);
 
@@ -160,24 +178,6 @@
 	/* generated by weex-loader */
 
 
-/***/ },
-
-/***/ 189:
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = { "default": __webpack_require__(190), __esModule: true };
-
-/***/ },
-
-/***/ 190:
-/***/ function(module, exports, __webpack_require__) {
-
-	var core  = __webpack_require__(34)
-	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
-	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
-	  return $JSON.stringify.apply($JSON, arguments);
-	};
-
 /***/ }
 
 /******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/hello.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/hello.js b/ios/playground/bundlejs/hello.js
index f445dee..9ea5b4d 100644
--- a/ios/playground/bundlejs/hello.js
+++ b/ios/playground/bundlejs/hello.js
@@ -45,7 +45,7 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(191)
+	var __weex_template__ = __webpack_require__(201)
 
 	__weex_define__('@weex-component/3bfdbb5ef29172e6db527e1bc85ec8fd', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -57,7 +57,7 @@
 
 /***/ },
 
-/***/ 191:
+/***/ 201:
 /***/ function(module, exports) {
 
 	module.exports = {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/iconfont.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/iconfont.js b/ios/playground/bundlejs/iconfont.js
index 06176a5..445907f 100644
--- a/ios/playground/bundlejs/iconfont.js
+++ b/ios/playground/bundlejs/iconfont.js
@@ -45,9 +45,9 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(192)
-	var __weex_style__ = __webpack_require__(193)
-	var __weex_script__ = __webpack_require__(194)
+	var __weex_template__ = __webpack_require__(202)
+	var __weex_style__ = __webpack_require__(203)
+	var __weex_script__ = __webpack_require__(204)
 
 	__weex_define__('@weex-component/c90fb40e28668dc487c3cb9e5dc4fabd', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -66,7 +66,7 @@
 
 /***/ },
 
-/***/ 192:
+/***/ 202:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -113,7 +113,7 @@
 
 /***/ },
 
-/***/ 193:
+/***/ 203:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -141,7 +141,7 @@
 
 /***/ },
 
-/***/ 194:
+/***/ 204:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';



[30/50] [abbrv] incubator-weex git commit: * [html5] add flow-type supported.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/core-js_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/core-js_vx.x.x.js b/flow-typed/npm/core-js_vx.x.x.js
new file mode 100644
index 0000000..150c10b
--- /dev/null
+++ b/flow-typed/npm/core-js_vx.x.x.js
@@ -0,0 +1,9390 @@
+// flow-typed signature: daa8424f2304f99318c18d60d49ff641
+// flow-typed version: <<STUB>>/core-js_v^2.4.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'core-js'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'core-js' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'core-js/build/config' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/build/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/client/core' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/client/core.min' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/client/library' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/client/library.min' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/client/shim' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/client/shim.min' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/core/_' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/core/delay' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/core/dict' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/core/function' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/core/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/core/number' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/core/object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/core/regexp' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/core/string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es5/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/date' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/function' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/math' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/number' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/promise' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/reflect' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/regexp' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/symbol' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/typed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/weak-map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es6/weak-set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/asap' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/error' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/math' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/observable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/reflect' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/symbol' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/es7/system' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/_' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/concat' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/copy-within' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/entries' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/every' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/fill' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/filter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/find-index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/find' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/for-each' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/from' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/is-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/join' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/last-index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/pop' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/push' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/reduce-right' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/reduce' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/reverse' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/shift' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/slice' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/some' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/sort' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/splice' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/unshift' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/values' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/copy-within' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/entries' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/every' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/fill' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/filter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/find-index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/find' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/for-each' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/join' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/last-index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/reduce-right' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/reduce' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/slice' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/some' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/sort' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/array/virtual/values' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/asap' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/clear-immediate' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/date/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/date/now' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/date/to-iso-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/date/to-json' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/date/to-primitive' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/date/to-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/delay' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/dict' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/dom-collections/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/dom-collections/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/error/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/error/is-error' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/function/bind' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/function/has-instance' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/function/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/function/name' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/function/part' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/function/virtual/bind' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/function/virtual/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/function/virtual/part' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/get-iterator-method' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/get-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/is-iterable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/json/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/json/stringify' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/acosh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/asinh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/atanh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/cbrt' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/clz32' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/cosh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/expm1' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/fround' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/hypot' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/iaddh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/imul' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/imulh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/isubh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/log10' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/log1p' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/log2' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/sign' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/sinh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/tanh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/trunc' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/math/umulh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/constructor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/epsilon' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/is-finite' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/is-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/is-nan' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/is-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/max-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/min-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/to-fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/to-precision' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/virtual/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/virtual/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/virtual/to-fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/number/virtual/to-precision' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/assign' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/classof' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/create' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/define-getter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/define-properties' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/define-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/define-setter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/define' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/entries' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/freeze' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/get-own-property-descriptor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/get-own-property-descriptors' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/get-own-property-names' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/get-own-property-symbols' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/get-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/is-extensible' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/is-frozen' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/is-object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/is-sealed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/is' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/lookup-getter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/lookup-setter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/make' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/prevent-extensions' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/seal' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/set-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/object/values' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/observable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/promise' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/apply' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/construct' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/define-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/define-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/delete-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/delete-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/enumerate' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/get-metadata-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/get-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/get-own-metadata-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/get-own-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/get-own-property-descriptor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/get-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/get' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/has-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/has-own-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/has' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/is-extensible' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/own-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/prevent-extensions' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/set-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/reflect/set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/regexp/constructor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/regexp/escape' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/regexp/flags' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/regexp/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/regexp/match' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/regexp/replace' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/regexp/search' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/regexp/split' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/regexp/to-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/set-immediate' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/set-interval' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/set-timeout' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/anchor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/big' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/blink' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/bold' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/code-point-at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/ends-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/escape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/fontcolor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/fontsize' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/from-code-point' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/italics' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/link' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/match-all' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/pad-end' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/pad-start' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/raw' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/repeat' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/small' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/starts-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/strike' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/sub' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/sup' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/trim-end' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/trim-left' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/trim-right' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/trim-start' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/trim' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/unescape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/anchor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/big' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/blink' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/bold' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/code-point-at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/ends-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/escape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/fontcolor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/fontsize' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/italics' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/link' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/match-all' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/pad-end' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/pad-start' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/repeat' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/small' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/starts-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/strike' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/sub' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/sup' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/trim-end' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/trim-left' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/trim-right' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/trim-start' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/trim' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/string/virtual/unescape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/async-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/for' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/has-instance' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/is-concat-spreadable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/key-for' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/match' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/observable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/replace' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/search' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/species' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/split' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/to-primitive' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/to-string-tag' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/symbol/unscopables' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/system/global' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/system/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/array-buffer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/data-view' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/float32-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/float64-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/int16-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/int32-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/int8-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/uint16-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/uint32-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/uint8-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/typed/uint8-clamped-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/weak-map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/fn/weak-set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/Gruntfile' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/core/_' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/core/delay' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/core/dict' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/core/function' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/core/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/core/number' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/core/object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/core/regexp' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/core/string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es5/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/date' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/function' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/math' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/number' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/promise' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/reflect' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/regexp' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/symbol' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/typed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/weak-map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es6/weak-set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/asap' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/error' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/math' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/observable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/reflect' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/symbol' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/es7/system' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/_' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/concat' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/copy-within' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/entries' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/every' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/fill' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/filter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/find-index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/find' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/for-each' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/from' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/is-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/join' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/last-index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/pop' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/push' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/reduce-right' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/reduce' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/reverse' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/shift' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/slice' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/some' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/sort' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/splice' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/unshift' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/values' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/copy-within' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/entries' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/every' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/fill' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/filter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/find-index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/find' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/for-each' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/join' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/last-index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/reduce-right' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/reduce' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/slice' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/some' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/sort' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/array/virtual/values' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/asap' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/clear-immediate' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/date/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/date/now' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/date/to-iso-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/date/to-json' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/date/to-primitive' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/date/to-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/delay' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/dict' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/dom-collections/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/dom-collections/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/error/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/error/is-error' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/function/bind' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/function/has-instance' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/function/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/function/name' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/function/part' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/function/virtual/bind' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/function/virtual/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/function/virtual/part' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/get-iterator-method' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/get-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/is-iterable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/json/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/json/stringify' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/acosh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/asinh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/atanh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/cbrt' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/clz32' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/cosh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/expm1' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/fround' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/hypot' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/iaddh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/imul' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/imulh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/isubh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/log10' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/log1p' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/log2' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/sign' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/sinh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/tanh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/trunc' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/math/umulh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/constructor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/epsilon' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/is-finite' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/is-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/is-nan' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/is-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/max-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/min-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/to-fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/to-precision' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/virtual/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/virtual/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/virtual/to-fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/number/virtual/to-precision' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/assign' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/classof' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/create' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/define-getter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/define-properties' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/define-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/define-setter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/define' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/entries' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/freeze' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/get-own-property-descriptor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/get-own-property-descriptors' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/get-own-property-names' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/get-own-property-symbols' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/get-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/is-extensible' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/is-frozen' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/is-object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/is-sealed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/is' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/lookup-getter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/lookup-setter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/make' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/prevent-extensions' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/seal' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/set-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/object/values' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/observable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/promise' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/apply' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/construct' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/define-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/define-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/delete-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/delete-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/enumerate' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/get-metadata-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/get-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/get-own-metadata-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/get-own-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/get-own-property-descriptor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/get-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/get' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/has-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/has-own-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/has' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/is-extensible' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/own-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/prevent-extensions' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/set-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/reflect/set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/regexp/constructor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/regexp/escape' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/regexp/flags' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/regexp/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/regexp/match' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/regexp/replace' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/regexp/search' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/regexp/split' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/regexp/to-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/set-immediate' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/set-interval' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/set-timeout' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/anchor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/big' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/blink' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/bold' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/code-point-at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/ends-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/escape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/fontcolor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/fontsize' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/from-code-point' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/italics' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/link' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/match-all' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/pad-end' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/pad-start' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/raw' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/repeat' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/small' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/starts-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/strike' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/sub' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/sup' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/trim-end' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/trim-left' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/trim-right' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/trim-start' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/trim' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/unescape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/anchor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/big' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/blink' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/bold' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/code-point-at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/ends-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/escape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/fontcolor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/fontsize' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/italics' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/link' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/match-all' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/pad-end' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/pad-start' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/repeat' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/small' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/starts-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/strike' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/sub' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/sup' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/trim-end' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/trim-left' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/trim-right' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/trim-start' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/trim' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/string/virtual/unescape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/async-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/for' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/has-instance' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/is-concat-spreadable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/key-for' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/match' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/observable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/replace' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/search' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/species' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/split' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/to-primitive' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/to-string-tag' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/symbol/unscopables' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/system/global' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/system/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/array-buffer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/data-view' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/float32-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/float64-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/int16-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/int32-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/int8-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/uint16-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/uint32-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/uint8-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/typed/uint8-clamped-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/weak-map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/fn/weak-set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_a-function' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_a-number-value' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_add-to-unscopables' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_an-instance' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_an-object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_array-copy-within' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_array-fill' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_array-from-iterable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_array-includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_array-methods' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_array-reduce' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_array-species-constructor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_array-species-create' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_bind' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_classof' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_cof' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_collection-strong' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_collection-to-json' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_collection-weak' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_collection' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_core' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_create-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_ctx' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_date-to-primitive' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_defined' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_descriptors' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_dom-create' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_entry-virtual' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_enum-bug-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_enum-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_export' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_fails-is-regexp' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_fails' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_fix-re-wks' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_flags' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_for-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_global' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_has' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_hide' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_ie8-dom-define' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_inherit-if-required' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_invoke' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_iobject' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_is-array-iter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_is-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_is-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_is-object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_is-regexp' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_iter-call' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_iter-create' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_iter-define' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_iter-detect' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_iter-step' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_iterators' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_keyof' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_library' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_math-expm1' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_math-log1p' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_math-sign' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_meta' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_microtask' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-assign' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-create' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-define' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-dp' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-dps' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-forced-pam' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-gopd' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-gopn-ext' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-gopn' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-gops' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-gpo' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-keys-internal' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-pie' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-sap' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_object-to-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_own-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_partial' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_path' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_property-desc' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_redefine-all' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_redefine' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_replacer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_same-value' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_set-proto' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_set-species' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_set-to-string-tag' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_shared-key' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_shared' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_species-constructor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_strict-method' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_string-at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_string-context' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_string-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_string-pad' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_string-repeat' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_string-trim' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_string-ws' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_task' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_to-index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_to-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_to-iobject' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_to-length' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_to-object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_to-primitive' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_typed-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_typed-buffer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_typed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_uid' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_wks-define' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_wks-ext' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/_wks' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.delay' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.dict' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.function.part' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.get-iterator-method' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.get-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.is-iterable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.number.iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.object.classof' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.object.define' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.object.is-object' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.object.make' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.regexp.escape' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.string.escape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/core.string.unescape-html' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es5' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.copy-within' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.every' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.fill' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.filter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.find-index' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.find' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.for-each' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.from' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.is-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.join' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.last-index-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.reduce-right' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.reduce' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.slice' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.some' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.sort' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.array.species' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.date.now' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.date.to-iso-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.date.to-json' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.date.to-primitive' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.date.to-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.function.bind' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.function.has-instance' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.function.name' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.acosh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.asinh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.atanh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.cbrt' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.clz32' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.cosh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.expm1' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.fround' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.hypot' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.imul' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.log10' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.log1p' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.log2' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.sign' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.sinh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.tanh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.math.trunc' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.constructor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.epsilon' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.is-finite' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.is-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.is-nan' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.is-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.max-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.min-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.to-fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.number.to-precision' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.assign' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.create' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.define-properties' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.define-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.freeze' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.get-own-property-descriptor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.get-own-property-names' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.get-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.is-extensible' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.is-frozen' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.is-sealed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.is' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.prevent-extensions' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.seal' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.set-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.object.to-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.promise' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.apply' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.construct' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.define-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.delete-property' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.enumerate' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.get-own-property-descriptor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.get-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.get' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.has' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.is-extensible' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.own-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.prevent-extensions' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.set-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.reflect.set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.regexp.constructor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.regexp.flags' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.regexp.match' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.regexp.replace' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.regexp.search' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.regexp.split' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.regexp.to-string' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.anchor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.big' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.blink' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.bold' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.code-point-at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.ends-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.fixed' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.fontcolor' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.fontsize' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.from-code-point' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.italics' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.iterator' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.link' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.raw' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.repeat' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.small' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.starts-with' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.strike' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.sub' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.sup' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.string.trim' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.symbol' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.array-buffer' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.data-view' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.float32-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.float64-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.int16-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.int32-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.int8-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.uint16-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.uint32-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.uint8-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.typed.uint8-clamped-array' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.weak-map' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es6.weak-set' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.array.includes' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.asap' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.error.is-error' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.map.to-json' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.math.iaddh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.math.imulh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.math.isubh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.math.umulh' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.define-getter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.define-setter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.entries' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.enumerable-entries' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.enumerable-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.enumerable-values' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.get-own-property-descriptors' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.lookup-getter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.lookup-setter' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.object.values' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.observable' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.reflect.define-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.reflect.delete-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.reflect.get-metadata-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.reflect.get-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.reflect.get-own-metadata-keys' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.reflect.get-own-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.reflect.has-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.reflect.has-own-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.reflect.metadata' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.set.to-json' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.string.at' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/library/modules/es7.string.match-all' {
+  declare module.exports: any;
+}
+
+declare module 'core-js/libra

<TRUNCATED>


[08/50] [abbrv] incubator-weex git commit: Merge branch 'ios-feature-example-0.11-dev-0328' of https://github.com/kfeagle/incubator-weex into 0.11-dev

Posted by so...@apache.org.
Merge branch 'ios-feature-example-0.11-dev-0328' of https://github.com/kfeagle/incubator-weex into 0.11-dev


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

Branch: refs/heads/dev
Commit: 8238c8e1ce236ae907c440340349d9b0473127d6
Parents: a396e7c 109162b
Author: bobning <ni...@163.com>
Authored: Tue Mar 28 13:30:55 2017 +0800
Committer: bobning <ni...@163.com>
Committed: Tue Mar 28 13:30:55 2017 +0800

----------------------------------------------------------------------
 examples/component/input-demo.we      | 253 ++++++++++++++++++-----------
 examples/include/example-list-item.we |  30 +++-
 examples/index.we                     |   4 +-
 examples/showcase/boxshadow.we        |  46 ++++++
 4 files changed, 234 insertions(+), 99 deletions(-)
----------------------------------------------------------------------



[40/50] [abbrv] incubator-weex git commit: Merge branch 'html5-feature-vue-render' of https://github.com/MrRaindrop/incubator-weex into 0.11-dev

Posted by so...@apache.org.
Merge branch 'html5-feature-vue-render' of https://github.com/MrRaindrop/incubator-weex into 0.11-dev


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

Branch: refs/heads/dev
Commit: f8abba9d26c7c3bf8b58a21293c413b8dccb119f
Parents: c2f0b65 91b8cc5
Author: Jinjiang <zh...@me.com>
Authored: Fri Mar 31 10:43:48 2017 +0800
Committer: Jinjiang <zh...@me.com>
Committed: Fri Mar 31 10:43:48 2017 +0800

----------------------------------------------------------------------
 .eslintrc                                       |   10 +
 .flowconfig                                     |   16 +
 bin/dist-vue.sh                                 |   42 +
 build/config.js                                 |    9 +-
 build/webpack.examples.web.config.js            |   24 +-
 dangerfile.js                                   |   28 +
 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/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                |   15 +-
 html5/render/vue/components/div.js              |   15 +-
 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                 |  103 +-
 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 +
 index.html                                      |    3 +-
 package.json                                    |   20 +-
 packages/weex-vue-render/README.md              |   51 +-
 packages/weex-vue-render/package.json           |   13 +-
 vue.html                                        |   53 +-
 204 files changed, 25336 insertions(+), 1230 deletions(-)
----------------------------------------------------------------------



[34/50] [abbrv] incubator-weex git commit: * [html5] add flow ignore paths to danger.js

Posted by so...@apache.org.
* [html5] add flow ignore paths to danger.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/952c2668
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/952c2668
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/952c2668

Branch: refs/heads/dev
Commit: 952c26683ac71f12390a54b73efc72420d564b63
Parents: aab0cf1
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Mar 30 15:30:01 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Mar 30 15:30:01 2017 +0800

----------------------------------------------------------------------
 .flowconfig                                     |   1 +
 dangerfile.js                                   |  24 ++
 flow-typed/npm/babel-eslint_vx.x.x.js           |  73 +++++
 flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js | 319 +++++++++++++++++++
 flow-typed/npm/rollup-plugin-flow_vx.x.x.js     |  33 ++
 5 files changed, 450 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/952c2668/.flowconfig
----------------------------------------------------------------------
diff --git a/.flowconfig b/.flowconfig
index ca809f2..0dd9cea 100644
--- a/.flowconfig
+++ b/.flowconfig
@@ -8,6 +8,7 @@
 .*/ios/.*
 .*/bin/.*
 .*/dist/.*
+.*/flow-typed/.*
 
 [include]
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/952c2668/dangerfile.js
----------------------------------------------------------------------
diff --git a/dangerfile.js b/dangerfile.js
index 1dbf20e..8bf99ee 100644
--- a/dangerfile.js
+++ b/dangerfile.js
@@ -1,5 +1,6 @@
 import { danger, fail, warn } from "danger";
 import fs from "fs";
+import path from 'path';
 
 // Make sure there are changelog entries
 // const hasChangelog = danger.git.modified_files.includes("changelog.md")
@@ -7,8 +8,31 @@ import fs from "fs";
 
 const jsFiles = danger.git.created_files.filter(path => path.endsWith("js"));
 
+function absolute (relPath) {
+  return path.resolve(__dirname, relPath)
+}
+
+const flowIgnorePaths = [
+  'node_modules',
+  'test',
+  'build',
+  'examples',
+  'doc',
+  'android',
+  'ios',
+  'bin',
+  'dist',
+  'flow-typed'
+].map(absolute(relPath));
+
 // new js files should have `@flow` at the top
 const unFlowedFiles = jsFiles.filter(filepath => {
+  for (const p in flowIgnorePaths) {
+    if (p.indexOf(filepath) >= -1) {
+      // ignore this file because it's in the flow-ignore-paths.
+      return;
+    }
+  }
   const content = fs.readFileSync(filepath);
   return !content.includes("@flow");
 });

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/952c2668/flow-typed/npm/babel-eslint_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/babel-eslint_vx.x.x.js b/flow-typed/npm/babel-eslint_vx.x.x.js
new file mode 100644
index 0000000..23a3be0
--- /dev/null
+++ b/flow-typed/npm/babel-eslint_vx.x.x.js
@@ -0,0 +1,73 @@
+// flow-typed signature: 8572281a1e762e212615d34f9d8b0638
+// flow-typed version: <<STUB>>/babel-eslint_v^7.2.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'babel-eslint'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'babel-eslint' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'babel-eslint/babylon-to-espree/attachComments' {
+  declare module.exports: any;
+}
+
+declare module 'babel-eslint/babylon-to-espree/convertTemplateType' {
+  declare module.exports: any;
+}
+
+declare module 'babel-eslint/babylon-to-espree/index' {
+  declare module.exports: any;
+}
+
+declare module 'babel-eslint/babylon-to-espree/toAST' {
+  declare module.exports: any;
+}
+
+declare module 'babel-eslint/babylon-to-espree/toToken' {
+  declare module.exports: any;
+}
+
+declare module 'babel-eslint/babylon-to-espree/toTokens' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'babel-eslint/babylon-to-espree/attachComments.js' {
+  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/attachComments'>;
+}
+declare module 'babel-eslint/babylon-to-espree/convertTemplateType.js' {
+  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/convertTemplateType'>;
+}
+declare module 'babel-eslint/babylon-to-espree/index.js' {
+  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/index'>;
+}
+declare module 'babel-eslint/babylon-to-espree/toAST.js' {
+  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toAST'>;
+}
+declare module 'babel-eslint/babylon-to-espree/toToken.js' {
+  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toToken'>;
+}
+declare module 'babel-eslint/babylon-to-espree/toTokens.js' {
+  declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toTokens'>;
+}
+declare module 'babel-eslint/index' {
+  declare module.exports: $Exports<'babel-eslint'>;
+}
+declare module 'babel-eslint/index.js' {
+  declare module.exports: $Exports<'babel-eslint'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/952c2668/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js b/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js
new file mode 100644
index 0000000..269a1fc
--- /dev/null
+++ b/flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js
@@ -0,0 +1,319 @@
+// flow-typed signature: fc3fc729dcec925198f4e66b48750ba8
+// flow-typed version: <<STUB>>/eslint-plugin-flowtype_v^2.30.4/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'eslint-plugin-flowtype'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'eslint-plugin-flowtype' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'eslint-plugin-flowtype/bin/readmeAssertions' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/index' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/booleanStyle' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/defineFlowType' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/delimiterDangle' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/genericSpacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/noDupeKeys' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/noWeakTypes' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/requireParameterType' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/requireReturnType' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/requireVariableType' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/semi' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/sortKeys' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/typeIdMatch' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/useFlowType' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/rules/validSyntax' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/getParameterName' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/index' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFile' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/quoteName' {
+  declare module.exports: any;
+}
+
+declare module 'eslint-plugin-flowtype/dist/utilities/spacingFixers' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'eslint-plugin-flowtype/bin/readmeAssertions.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/bin/readmeAssertions'>;
+}
+declare module 'eslint-plugin-flowtype/dist/index.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/index'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/booleanStyle.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/booleanStyle'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/defineFlowType.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/defineFlowType'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/delimiterDangle.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/delimiterDangle'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/genericSpacing.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/genericSpacing'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/noDupeKeys.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noDupeKeys'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noPrimitiveConstructorTypes'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/noWeakTypes.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/noWeakTypes'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/objectTypeDelimiter'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/requireParameterType.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireParameterType'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/requireReturnType.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireReturnType'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireValidFileAnnotation'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/requireVariableType.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/requireVariableType'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/semi.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/semi'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/sortKeys.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/sortKeys'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceAfterTypeColon'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceBeforeGenericBracket'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/spaceBeforeTypeColon'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateFunctions'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeIndexer'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateObjectTypeProperty'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateReturnType'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypeCastExpression'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/evaluateTypical'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/index'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeColonSpacing/reporter'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/typeIdMatch.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/typeIdMatch'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/unionIntersectionSpacing'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/useFlowType.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/useFlowType'>;
+}
+declare module 'eslint-plugin-flowtype/dist/rules/validSyntax.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/rules/validSyntax'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/checkFlowFileAnnotation'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/fuzzyStringMatch'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/getParameterName.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getParameterName'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getTokenAfterParens'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/getTokenBeforeParens'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/index.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/index'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFile.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/isFlowFile'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/isFlowFileAnnotation'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/iterateFunctionNodes'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/quoteName.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/quoteName'>;
+}
+declare module 'eslint-plugin-flowtype/dist/utilities/spacingFixers.js' {
+  declare module.exports: $Exports<'eslint-plugin-flowtype/dist/utilities/spacingFixers'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/952c2668/flow-typed/npm/rollup-plugin-flow_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-flow_vx.x.x.js b/flow-typed/npm/rollup-plugin-flow_vx.x.x.js
new file mode 100644
index 0000000..2ddc51e
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-flow_vx.x.x.js
@@ -0,0 +1,33 @@
+// flow-typed signature: d4695f2a40c4ccdd6528866dd8786915
+// flow-typed version: <<STUB>>/rollup-plugin-flow_v^1.1.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-flow'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-flow' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+
+
+// Filename aliases
+declare module 'rollup-plugin-flow/index' {
+  declare module.exports: $Exports<'rollup-plugin-flow'>;
+}
+declare module 'rollup-plugin-flow/index.js' {
+  declare module.exports: $Exports<'rollup-plugin-flow'>;
+}


[19/50] [abbrv] incubator-weex git commit: * [html5] use warning tip.

Posted by so...@apache.org.
* [html5] use warning tip.


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

Branch: refs/heads/dev
Commit: 4396188654844c78aa183ab4b3ffcf716afa8922
Parents: aee7db8
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Mar 28 15:23:06 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Mar 28 15:23:06 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/mixins/base.js       | 6 +++---
 package.json                          | 2 +-
 packages/weex-vue-render/package.json | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43961886/html5/render/vue/mixins/base.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/mixins/base.js b/html5/render/vue/mixins/base.js
index f131d73..ea5fd86 100644
--- a/html5/render/vue/mixins/base.js
+++ b/html5/render/vue/mixins/base.js
@@ -24,12 +24,12 @@ function watchLazyload () {
 }
 
 let warned = false
-const notePage = 'https://gist.github.com/MrRaindrop/5a805a067146609e5cfd4d64d775d693#file-weex-vue-render-config-for-vue-loader-js'
+const notePage = 'https://github.com/MrRaindrop/weex/issues/14'
 function warnProcessStyle () {
   if (!warned) {
     warned = true
-    console.error(`[vue-render] warn: should add loader config using $processStyle to enable`
-      + ` inline styles's auto-prefixing. see ${notePage}`)
+    console.warn(`[vue-render] warn: should add loader config using $processStyle to enable`
+      + ` inline styles's auto-prefixing. see ${notePage}. If already did it, please ignore this.`)
   }
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43961886/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 4764702..a51589c 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
   "version": "0.4.0",
   "subversion": {
     "browser": "0.5.0",
-    "vue-render": "0.11.1",
+    "vue-render": "0.11.2",
     "framework": "0.19.6",
     "transformer": ">=0.1.5 <0.5"
   },

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43961886/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index 8868112..286ae02 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.11.1",
+  "version": "0.11.2",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "src/render/vue/index.js",


[18/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
* [ios] update bundle js in ios playground.


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

Branch: refs/heads/dev
Commit: 61ab9f49ea9001ed4c5ea687e534fbe11183c944
Parents: 8238c8e
Author: boboning <ni...@163.com>
Authored: Tue Mar 28 14:20:01 2017 +0800
Committer: boboning <ni...@163.com>
Committed: Tue Mar 28 14:20:01 2017 +0800

----------------------------------------------------------------------
 ios/playground/bundlejs/component/image-demo.js |    2 +-
 ios/playground/bundlejs/component/input-demo.js | 2683 ++++--------------
 .../bundlejs/component/lengthunitwx-demo.js     |  329 +++
 .../bundlejs/component/list/list-basic.js       |  132 +-
 .../component/list/list-demo-horizon.js         |   12 +-
 .../bundlejs/component/list/list-demo.js        |   12 +-
 .../bundlejs/component/list/waterfall.js        |  877 ++++++
 .../bundlejs/component/marquee-demo.js          |   13 +-
 .../bundlejs/component/process-bar-demo.js      |   17 +-
 .../bundlejs/component/scroller-demo.js         |  219 +-
 .../bundlejs/component/slider-neighbor/index.js |    8 +-
 .../slider-neighbor/slider-neighbor-item.js     |   12 +-
 .../slider-neighbor/slider-neighbor-page.js     |   28 +-
 ios/playground/bundlejs/component/slider-tab.js |  633 +++++
 .../bundlejs/component/slider/index.js          |   56 +-
 .../bundlejs/component/slider/slider-item.js    |   12 +-
 .../bundlejs/component/slider/slider-page.js    |   28 +-
 ios/playground/bundlejs/component/text-demo.js  |   24 +-
 ios/playground/bundlejs/component/video-demo.js |   24 +-
 ios/playground/bundlejs/component/web-demo.js   |   25 +-
 ios/playground/bundlejs/error.js                |   20 +-
 ios/playground/bundlejs/geolocation.js          |   46 +-
 ios/playground/bundlejs/hello.js                |    4 +-
 ios/playground/bundlejs/iconfont.js             |   12 +-
 ios/playground/bundlejs/index.js                |  270 +-
 ios/playground/bundlejs/linear-gradient.js      |    8 +-
 ios/playground/bundlejs/module/chatroom-demo.js |  370 +++
 ios/playground/bundlejs/module/clipboard.js     |   61 +-
 ios/playground/bundlejs/module/componentRect.js |   28 +-
 ios/playground/bundlejs/module/instance-api.js  |   61 +-
 ios/playground/bundlejs/module/modal.js         |   27 +-
 ios/playground/bundlejs/module/picker-demo.js   |   27 +-
 ios/playground/bundlejs/module/storage-demo.js  |   61 +-
 ios/playground/bundlejs/module/stream-demo.js   |   61 +-
 .../bundlejs/module/websocket-demo.js           | 2661 +++++++----------
 ios/playground/bundlejs/showcase/boxshadow.js   |  269 ++
 ios/playground/bundlejs/showcase/calculator.js  |   30 +-
 .../bundlejs/showcase/dropdown/dropdown-demo.js |   38 +-
 .../bundlejs/showcase/dropdown/we-dropdown.js   |   12 +-
 ios/playground/bundlejs/showcase/minesweeper.js |   12 +-
 .../bundlejs/showcase/pseudo-class.js           |   30 +-
 ios/playground/bundlejs/showcase/ui.js          |   30 +-
 ios/playground/bundlejs/style/index.js          |   82 +-
 ios/playground/bundlejs/style/style-box.js      |   46 +-
 ios/playground/bundlejs/style/style-flex.js     |   54 +-
 ios/playground/bundlejs/style/style-item.js     |   12 +-
 ios/playground/bundlejs/syntax/hello-world-1.js |    4 +-
 ios/playground/bundlejs/syntax/hello-world-2.js |    4 +-
 ios/playground/bundlejs/syntax/hello-world-3.js |    8 +-
 ios/playground/bundlejs/syntax/hello-world-4.js |   12 +-
 ios/playground/bundlejs/syntax/hello-world-5.js |   12 +-
 ios/playground/bundlejs/syntax/hello-world.js   |   12 +-
 ios/playground/bundlejs/syntax/index.js         |  296 +-
 .../bundlejs/syntax/script-component.js         |   24 +-
 ios/playground/bundlejs/syntax/script-data.js   |   12 +-
 ios/playground/bundlejs/syntax/script-events.js |   20 +-
 .../bundlejs/syntax/script-instance.js          |   12 +-
 .../bundlejs/syntax/script-lifecycle.js         |   12 +-
 ios/playground/bundlejs/syntax/script-module.js |   12 +-
 .../bundlejs/syntax/script-options.js           |   12 +-
 .../bundlejs/syntax/template-class.js           |   12 +-
 .../bundlejs/syntax/template-content.js         |   20 +-
 .../bundlejs/syntax/template-event.js           |   12 +-
 ios/playground/bundlejs/syntax/template-if.js   |   12 +-
 .../bundlejs/syntax/template-repeat-update.js   |   12 +-
 .../bundlejs/syntax/template-repeat.js          |   12 +-
 .../bundlejs/syntax/template-style.js           |    8 +-
 ios/playground/bundlejs/template.js             |   12 +-
 ios/playground/bundlejs/test.js                 |    8 +-
 ios/playground/bundlejs/vue/animation.js        |  120 +-
 ios/playground/bundlejs/vue/components/a.js     |   97 +-
 .../bundlejs/vue/components/countdown.js        |  122 +-
 ios/playground/bundlejs/vue/components/image.js |  142 +-
 ios/playground/bundlejs/vue/components/input.js |  735 +++--
 ios/playground/bundlejs/vue/components/list.js  |   44 +-
 .../bundlejs/vue/components/marquee.js          |  105 +-
 .../bundlejs/vue/components/navigator.js        |  187 +-
 .../bundlejs/vue/components/scroller.js         |   48 +-
 .../bundlejs/vue/components/slider.js           |  341 +--
 .../bundlejs/vue/components/tabbar.js           |  133 +-
 ios/playground/bundlejs/vue/components/text.js  |  132 +-
 ios/playground/bundlejs/vue/components/video.js |   72 +-
 .../bundlejs/vue/components/waterfall.js        |   24 +-
 ios/playground/bundlejs/vue/components/web.js   |   74 +-
 ios/playground/bundlejs/vue/hello.js            |   19 +-
 ios/playground/bundlejs/vue/iconfont.js         |   36 +-
 ios/playground/bundlejs/vue/index.js            |  139 +-
 .../bundlejs/vue/modules/clipboard.js           |  147 +-
 .../bundlejs/vue/modules/instance-api.js        |   59 +-
 ios/playground/bundlejs/vue/modules/modal.js    |  105 +-
 ios/playground/bundlejs/vue/modules/storage.js  |   71 +-
 ios/playground/bundlejs/vue/modules/stream.js   |   95 +-
 .../bundlejs/vue/showcase/boxshadow.js          |  244 ++
 .../bundlejs/vue/showcase/calculator.js         |   72 +-
 .../bundlejs/vue/showcase/itemlist.js           |  166 +-
 .../bundlejs/vue/showcase/new-fashion.js        |  557 ++--
 .../bundlejs/vue/showcase/progress.js           |   63 +-
 ios/playground/bundlejs/vue/style/index.js      |  418 +--
 ios/playground/bundlejs/vue/style/style-box.js  |  180 +-
 ios/playground/bundlejs/vue/style/style-flex.js |  238 +-
 ios/playground/bundlejs/vue/style/style-item.js |   26 +-
 .../bundlejs/vue/syntax/hello-world-1.js        |   17 +-
 .../bundlejs/vue/syntax/hello-world-2.js        |   23 +-
 .../bundlejs/vue/syntax/hello-world-3.js        |   28 +-
 .../bundlejs/vue/syntax/hello-world-4.js        |   32 +-
 .../bundlejs/vue/syntax/hello-world-5.js        |   32 +-
 .../bundlejs/vue/syntax/hello-world.js          |   32 +-
 .../bundlejs/vue/syntax/script-component.js     |   64 +-
 .../bundlejs/vue/syntax/script-data.js          |   36 +-
 .../bundlejs/vue/syntax/script-events.js        |   32 +-
 .../bundlejs/vue/syntax/script-instance.js      |   30 +-
 .../bundlejs/vue/syntax/script-lifecycle.js     |   32 +-
 .../bundlejs/vue/syntax/script-module.js        |   30 +-
 .../bundlejs/vue/syntax/script-options.js       |   28 +-
 .../bundlejs/vue/syntax/template-class.js       |   34 +-
 .../bundlejs/vue/syntax/template-content.js     |   49 +-
 .../bundlejs/vue/syntax/template-event.js       |   36 +-
 .../bundlejs/vue/syntax/template-if.js          |   32 +-
 .../vue/syntax/template-repeat-update.js        |   40 +-
 .../bundlejs/vue/syntax/template-repeat.js      |   50 +-
 .../bundlejs/vue/syntax/template-style.js       |   27 +-
 ios/playground/bundlejs/vue/template.js         |  181 +-
 122 files changed, 8902 insertions(+), 7012 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/image-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/image-demo.js b/ios/playground/bundlejs/component/image-demo.js
index d65b994..46264a2 100644
--- a/ios/playground/bundlejs/component/image-demo.js
+++ b/ios/playground/bundlejs/component/image-demo.js
@@ -2318,7 +2318,7 @@
 	__webpack_require__(4);
 	module.exports = {
 	  data: function () {return {
-	    img: '//gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg'
+	    img: 'http://gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg'
 	  }}
 	};}
 	/* generated by weex-loader */

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/component/input-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/input-demo.js b/ios/playground/bundlejs/component/input-demo.js
index 343de0a..c8211c5 100644
--- a/ios/playground/bundlejs/component/input-demo.js
+++ b/ios/playground/bundlejs/component/input-demo.js
@@ -40,1747 +40,16 @@
 /******/ 	return __webpack_require__(0);
 /******/ })
 /************************************************************************/
-/******/ ([
-/* 0 */
+/******/ ({
+
+/***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __weex_template__ = __webpack_require__(94)
 	var __weex_style__ = __webpack_require__(95)
 	var __weex_script__ = __webpack_require__(96)
 
-	__weex_define__('@weex-component/9b05297660bffdeefca2cb266249ee4d', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-	__weex_bootstrap__('@weex-component/9b05297660bffdeefca2cb266249ee4d',undefined,undefined)
-
-/***/ },
-/* 1 */,
-/* 2 */,
-/* 3 */,
-/* 4 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(5);
-	__webpack_require__(9);
-	__webpack_require__(13);
-	__webpack_require__(17);
-	__webpack_require__(21);
-	__webpack_require__(25);
-	__webpack_require__(66);
-	__webpack_require__(70);
-	__webpack_require__(74);
-	__webpack_require__(78);
-	__webpack_require__(79);
-
-
-/***/ },
-/* 5 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(6)
-	var __weex_style__ = __webpack_require__(7)
-	var __weex_script__ = __webpack_require__(8)
-
-	__weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 6 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]},
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]},
-	      "attr": {
-	        "value": function () {return this.value}
-	      }
-	    }
-	  ]
-	}
-
-/***/ },
-/* 7 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "btn": {
-	    "marginBottom": 0,
-	    "alignItems": "center",
-	    "justifyContent": "center",
-	    "borderWidth": 1,
-	    "borderStyle": "solid",
-	    "borderColor": "#333333"
-	  },
-	  "btn-default": {
-	    "color": "rgb(51,51,51)"
-	  },
-	  "btn-primary": {
-	    "backgroundColor": "rgb(40,96,144)",
-	    "borderColor": "rgb(40,96,144)"
-	  },
-	  "btn-success": {
-	    "backgroundColor": "rgb(92,184,92)",
-	    "borderColor": "rgb(76,174,76)"
-	  },
-	  "btn-info": {
-	    "backgroundColor": "rgb(91,192,222)",
-	    "borderColor": "rgb(70,184,218)"
-	  },
-	  "btn-warning": {
-	    "backgroundColor": "rgb(240,173,78)",
-	    "borderColor": "rgb(238,162,54)"
-	  },
-	  "btn-danger": {
-	    "backgroundColor": "rgb(217,83,79)",
-	    "borderColor": "rgb(212,63,58)"
-	  },
-	  "btn-link": {
-	    "borderColor": "rgba(0,0,0,0)",
-	    "borderRadius": 0
-	  },
-	  "btn-txt-default": {
-	    "color": "rgb(51,51,51)"
-	  },
-	  "btn-txt-primary": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-success": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-info": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-warning": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-danger": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-link": {
-	    "color": "rgb(51,122,183)"
-	  },
-	  "btn-sz-large": {
-	    "width": 300,
-	    "height": 100,
-	    "paddingTop": 25,
-	    "paddingBottom": 25,
-	    "paddingLeft": 40,
-	    "paddingRight": 40,
-	    "borderRadius": 15
-	  },
-	  "btn-sz-middle": {
-	    "width": 240,
-	    "height": 80,
-	    "paddingTop": 15,
-	    "paddingBottom": 15,
-	    "paddingLeft": 30,
-	    "paddingRight": 30,
-	    "borderRadius": 10
-	  },
-	  "btn-sz-small": {
-	    "width": 170,
-	    "height": 60,
-	    "paddingTop": 12,
-	    "paddingBottom": 12,
-	    "paddingLeft": 25,
-	    "paddingRight": 25,
-	    "borderRadius": 7
-	  },
-	  "btn-txt-sz-large": {
-	    "fontSize": 45
-	  },
-	  "btn-txt-sz-middle": {
-	    "fontSize": 35
-	  },
-	  "btn-txt-sz-small": {
-	    "fontSize": 30
-	  }
-	}
-
-/***/ },
-/* 8 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    type: 'default',
-	    size: 'large',
-	    value: ''
-	  }},
-	  methods: {}
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 9 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(10)
-	var __weex_style__ = __webpack_require__(11)
-	var __weex_script__ = __webpack_require__(12)
-
-	__weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 10 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": function () {return ['h' + (this.level)]},
-	  "style": {
-	    "justifyContent": "center"
-	  },
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": function () {return ['txt-h' + (this.level)]},
-	      "attr": {
-	        "value": function () {return this.value}
-	      }
-	    }
-	  ]
-	}
-
-/***/ },
-/* 11 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "h1": {
-	    "height": 110,
-	    "paddingTop": 20,
-	    "paddingBottom": 20
-	  },
-	  "h2": {
-	    "height": 110,
-	    "paddingTop": 20,
-	    "paddingBottom": 20
-	  },
-	  "h3": {
-	    "height": 110,
-	    "paddingTop": 20,
-	    "paddingBottom": 20
-	  },
-	  "txt-h1": {
-	    "fontSize": 70
-	  },
-	  "txt-h2": {
-	    "fontSize": 52
-	  },
-	  "txt-h3": {
-	    "fontSize": 42
-	  }
-	}
-
-/***/ },
-/* 12 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    level: 1,
-	    value: ''
-	  }},
-	  methods: {}
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 13 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(14)
-	var __weex_style__ = __webpack_require__(15)
-	var __weex_script__ = __webpack_require__(16)
-
-	__weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 14 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "item"
-	  ],
-	  "events": {
-	    "touchstart": "touchstart",
-	    "touchend": "touchend"
-	  },
-	  "style": {
-	    "backgroundColor": function () {return this.bgColor}
-	  },
-	  "children": [
-	    {
-	      "type": "content"
-	    }
-	  ]
-	}
-
-/***/ },
-/* 15 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "item": {
-	    "paddingTop": 25,
-	    "paddingBottom": 25,
-	    "paddingLeft": 35,
-	    "paddingRight": 35,
-	    "height": 160,
-	    "justifyContent": "center",
-	    "borderBottomWidth": 1,
-	    "borderColor": "#dddddd"
-	  }
-	}
-
-/***/ },
-/* 16 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    bgColor: '#ffffff'
-	  }},
-	  methods: {
-	    touchstart: function touchstart() {},
-	    touchend: function touchend() {}
-	  }
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 17 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(18)
-	var __weex_style__ = __webpack_require__(19)
-	var __weex_script__ = __webpack_require__(20)
-
-	__weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 18 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": function () {return ['panel', 'panel-' + (this.type)]},
-	  "style": {
-	    "borderWidth": function () {return this.border}
-	  },
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]},
-	      "style": {
-	        "paddingTop": function () {return this.paddingHead},
-	        "paddingBottom": function () {return this.paddingHead},
-	        "paddingLeft": function () {return this.paddingHead*1.5},
-	        "paddingRight": function () {return this.paddingHead*1.5}
-	      },
-	      "attr": {
-	        "value": function () {return this.title}
-	      }
-	    },
-	    {
-	      "type": "div",
-	      "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]},
-	      "style": {
-	        "paddingTop": function () {return this.paddingBody},
-	        "paddingBottom": function () {return this.paddingBody},
-	        "paddingLeft": function () {return this.paddingBody*1.5},
-	        "paddingRight": function () {return this.paddingBody*1.5}
-	      },
-	      "children": [
-	        {
-	          "type": "content"
-	        }
-	      ]
-	    }
-	  ]
-	}
-
-/***/ },
-/* 19 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "panel": {
-	    "marginBottom": 20,
-	    "backgroundColor": "#ffffff",
-	    "borderColor": "#dddddd",
-	    "borderWidth": 1
-	  },
-	  "panel-primary": {
-	    "borderColor": "rgb(40,96,144)"
-	  },
-	  "panel-success": {
-	    "borderColor": "rgb(76,174,76)"
-	  },
-	  "panel-info": {
-	    "borderColor": "rgb(70,184,218)"
-	  },
-	  "panel-warning": {
-	    "borderColor": "rgb(238,162,54)"
-	  },
-	  "panel-danger": {
-	    "borderColor": "rgb(212,63,58)"
-	  },
-	  "panel-header": {
-	    "backgroundColor": "#f5f5f5",
-	    "fontSize": 40,
-	    "color": "#333333"
-	  },
-	  "panel-header-primary": {
-	    "backgroundColor": "rgb(40,96,144)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-success": {
-	    "backgroundColor": "rgb(92,184,92)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-info": {
-	    "backgroundColor": "rgb(91,192,222)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-warning": {
-	    "backgroundColor": "rgb(240,173,78)",
-	    "color": "#ffffff"
-	  },
-	  "panel-header-danger": {
-	    "backgroundColor": "rgb(217,83,79)",
-	    "color": "#ffffff"
-	  }
-	}
-
-/***/ },
-/* 20 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    type: 'default',
-	    title: '',
-	    paddingBody: 20,
-	    paddingHead: 20,
-	    dataClass: '',
-	    border: 0
-	  }},
-	  ready: function ready() {}
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 21 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(22)
-	var __weex_style__ = __webpack_require__(23)
-	var __weex_script__ = __webpack_require__(24)
-
-	__weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 22 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": function () {return ['tip', 'tip-' + (this.type)]},
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]},
-	      "attr": {
-	        "value": function () {return this.value}
-	      }
-	    }
-	  ]
-	}
-
-/***/ },
-/* 23 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "tip": {
-	    "paddingLeft": 36,
-	    "paddingRight": 36,
-	    "paddingTop": 36,
-	    "paddingBottom": 36,
-	    "borderRadius": 10
-	  },
-	  "tip-txt": {
-	    "fontSize": 28
-	  },
-	  "tip-success": {
-	    "backgroundColor": "#dff0d8",
-	    "borderColor": "#d6e9c6"
-	  },
-	  "tip-txt-success": {
-	    "color": "#3c763d"
-	  },
-	  "tip-info": {
-	    "backgroundColor": "#d9edf7",
-	    "borderColor": "#bce8f1"
-	  },
-	  "tip-txt-info": {
-	    "color": "#31708f"
-	  },
-	  "tip-warning": {
-	    "backgroundColor": "#fcf8e3",
-	    "borderColor": "#faebcc"
-	  },
-	  "tip-txt-warning": {
-	    "color": "#8a6d3b"
-	  },
-	  "tip-danger": {
-	    "backgroundColor": "#f2dede",
-	    "borderColor": "#ebccd1"
-	  },
-	  "tip-txt-danger": {
-	    "color": "#a94442"
-	  }
-	}
-
-/***/ },
-/* 24 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    type: 'success',
-	    value: ''
-	  }}
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 25 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(26)
-	var __weex_style__ = __webpack_require__(27)
-	var __weex_script__ = __webpack_require__(28)
-
-	__weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 26 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "style": {
-	    "overflow": "hidden",
-	    "flexDirection": "row"
-	  },
-	  "events": {
-	    "appear": "appeared",
-	    "disappear": "disappeared"
-	  },
-	  "children": [
-	    {
-	      "type": "content"
-	    }
-	  ]
-	}
-
-/***/ },
-/* 27 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "wrap": {
-	    "overflow": "hidden"
-	  }
-	}
-
-/***/ },
-/* 28 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	var _assign = __webpack_require__(29);
-
-	var _assign2 = _interopRequireDefault(_assign);
-
-	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-	module.exports = {
-	    data: function () {return {
-	        now: 0,
-	        remain: 0,
-	        time: {
-	            elapse: 0,
-	            D: '0',
-	            DD: '0',
-	            h: '0',
-	            hh: '00',
-	            H: '0',
-	            HH: '0',
-	            m: '0',
-	            mm: '00',
-	            M: '0',
-	            MM: '0',
-	            s: '0',
-	            ss: '00',
-	            S: '0',
-	            SS: '0'
-	        },
-	        outofview: false
-	    }},
-	    ready: function ready() {
-	        if (this.remain <= 0) {
-	            return;
-	        }
-
-	        this.now = Date.now();
-	        this.nextTick();
-	    },
-	    methods: {
-	        nextTick: function nextTick() {
-	            if (this.outofview) {
-	                setTimeout(this.nextTick.bind(this), 1000);
-	            } else {
-	                this.time.elapse = parseInt((Date.now() - this.now) / 1000);
-
-	                if (this.calc()) {
-	                    this.$emit('tick', (0, _assign2.default)({}, this.time));
-	                    setTimeout(this.nextTick.bind(this), 1000);
-	                } else {
-	                    this.$emit('alarm', (0, _assign2.default)({}, this.time));
-	                }
-	                this._app.updateActions();
-	            }
-	        },
-	        format: function format(str) {
-	            if (str.length >= 2) {
-	                return str;
-	            } else {
-	                return '0' + str;
-	            }
-	        },
-	        calc: function calc() {
-	            var remain = this.remain - this.time.elapse;
-	            if (remain < 0) {
-	                remain = 0;
-	            }
-	            this.time.D = String(parseInt(remain / 86400));
-	            this.time.DD = this.format(this.time.D);
-	            this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600));
-	            this.time.hh = this.format(this.time.h);
-	            this.time.H = String(parseInt(remain / 3600));
-	            this.time.HH = this.format(this.time.H);
-	            this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60));
-	            this.time.mm = this.format(this.time.m);
-	            this.time.M = String(parseInt(remain / 60));
-	            this.time.MM = this.format(this.time.M);
-	            this.time.s = String(remain - parseInt(this.time.M) * 60);
-	            this.time.ss = this.format(this.time.s);
-	            this.time.S = String(remain);
-	            this.time.SS = this.format(this.time.S);
-
-	            return remain > 0;
-	        },
-	        appeared: function appeared() {
-	            this.outofview = false;
-	        },
-	        disappeared: function disappeared() {
-	            this.outofview = true;
-	        }
-	    }
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 29 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = { "default": __webpack_require__(30), __esModule: true };
-
-/***/ },
-/* 30 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(31);
-	module.exports = __webpack_require__(34).Object.assign;
-
-/***/ },
-/* 31 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.3.1 Object.assign(target, source)
-	var $export = __webpack_require__(32);
-
-	$export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)});
-
-/***/ },
-/* 32 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var global    = __webpack_require__(33)
-	  , core      = __webpack_require__(34)
-	  , ctx       = __webpack_require__(35)
-	  , hide      = __webpack_require__(37)
-	  , PROTOTYPE = 'prototype';
-
-	var $export = function(type, name, source){
-	  var IS_FORCED = type & $export.F
-	    , IS_GLOBAL = type & $export.G
-	    , IS_STATIC = type & $export.S
-	    , IS_PROTO  = type & $export.P
-	    , IS_BIND   = type & $export.B
-	    , IS_WRAP   = type & $export.W
-	    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
-	    , expProto  = exports[PROTOTYPE]
-	    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
-	    , key, own, out;
-	  if(IS_GLOBAL)source = name;
-	  for(key in source){
-	    // contains in native
-	    own = !IS_FORCED && target && target[key] !== undefined;
-	    if(own && key in exports)continue;
-	    // export native or passed
-	    out = own ? target[key] : source[key];
-	    // prevent global pollution for namespaces
-	    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
-	    // bind timers to global for call from export context
-	    : IS_BIND && own ? ctx(out, global)
-	    // wrap global constructors for prevent change them in library
-	    : IS_WRAP && target[key] == out ? (function(C){
-	      var F = function(a, b, c){
-	        if(this instanceof C){
-	          switch(arguments.length){
-	            case 0: return new C;
-	            case 1: return new C(a);
-	            case 2: return new C(a, b);
-	          } return new C(a, b, c);
-	        } return C.apply(this, arguments);
-	      };
-	      F[PROTOTYPE] = C[PROTOTYPE];
-	      return F;
-	    // make static versions for prototype methods
-	    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
-	    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
-	    if(IS_PROTO){
-	      (exports.virtual || (exports.virtual = {}))[key] = out;
-	      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
-	      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
-	    }
-	  }
-	};
-	// type bitmap
-	$export.F = 1;   // forced
-	$export.G = 2;   // global
-	$export.S = 4;   // static
-	$export.P = 8;   // proto
-	$export.B = 16;  // bind
-	$export.W = 32;  // wrap
-	$export.U = 64;  // safe
-	$export.R = 128; // real proto method for `library` 
-	module.exports = $export;
-
-/***/ },
-/* 33 */
-/***/ function(module, exports) {
-
-	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-	var global = module.exports = typeof window != 'undefined' && window.Math == Math
-	  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-	if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
-/***/ },
-/* 34 */
-/***/ function(module, exports) {
-
-	var core = module.exports = {version: '2.4.0'};
-	if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
-
-/***/ },
-/* 35 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// optional / simple context binding
-	var aFunction = __webpack_require__(36);
-	module.exports = function(fn, that, length){
-	  aFunction(fn);
-	  if(that === undefined)return fn;
-	  switch(length){
-	    case 1: return function(a){
-	      return fn.call(that, a);
-	    };
-	    case 2: return function(a, b){
-	      return fn.call(that, a, b);
-	    };
-	    case 3: return function(a, b, c){
-	      return fn.call(that, a, b, c);
-	    };
-	  }
-	  return function(/* ...args */){
-	    return fn.apply(that, arguments);
-	  };
-	};
-
-/***/ },
-/* 36 */
-/***/ function(module, exports) {
-
-	module.exports = function(it){
-	  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
-	  return it;
-	};
-
-/***/ },
-/* 37 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var dP         = __webpack_require__(38)
-	  , createDesc = __webpack_require__(46);
-	module.exports = __webpack_require__(42) ? function(object, key, value){
-	  return dP.f(object, key, createDesc(1, value));
-	} : function(object, key, value){
-	  object[key] = value;
-	  return object;
-	};
-
-/***/ },
-/* 38 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var anObject       = __webpack_require__(39)
-	  , IE8_DOM_DEFINE = __webpack_require__(41)
-	  , toPrimitive    = __webpack_require__(45)
-	  , dP             = Object.defineProperty;
-
-	exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){
-	  anObject(O);
-	  P = toPrimitive(P, true);
-	  anObject(Attributes);
-	  if(IE8_DOM_DEFINE)try {
-	    return dP(O, P, Attributes);
-	  } catch(e){ /* empty */ }
-	  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
-	  if('value' in Attributes)O[P] = Attributes.value;
-	  return O;
-	};
-
-/***/ },
-/* 39 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var isObject = __webpack_require__(40);
-	module.exports = function(it){
-	  if(!isObject(it))throw TypeError(it + ' is not an object!');
-	  return it;
-	};
-
-/***/ },
-/* 40 */
-/***/ function(module, exports) {
-
-	module.exports = function(it){
-	  return typeof it === 'object' ? it !== null : typeof it === 'function';
-	};
-
-/***/ },
-/* 41 */
-/***/ function(module, exports, __webpack_require__) {
-
-	module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){
-	  return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7;
-	});
-
-/***/ },
-/* 42 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// Thank's IE8 for his funny defineProperty
-	module.exports = !__webpack_require__(43)(function(){
-	  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
-	});
-
-/***/ },
-/* 43 */
-/***/ function(module, exports) {
-
-	module.exports = function(exec){
-	  try {
-	    return !!exec();
-	  } catch(e){
-	    return true;
-	  }
-	};
-
-/***/ },
-/* 44 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var isObject = __webpack_require__(40)
-	  , document = __webpack_require__(33).document
-	  // in old IE typeof document.createElement is 'object'
-	  , is = isObject(document) && isObject(document.createElement);
-	module.exports = function(it){
-	  return is ? document.createElement(it) : {};
-	};
-
-/***/ },
-/* 45 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.1.1 ToPrimitive(input [, PreferredType])
-	var isObject = __webpack_require__(40);
-	// instead of the ES6 spec version, we didn't implement @@toPrimitive case
-	// and the second argument - flag - preferred type is a string
-	module.exports = function(it, S){
-	  if(!isObject(it))return it;
-	  var fn, val;
-	  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
-	  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
-	  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
-	  throw TypeError("Can't convert object to primitive value");
-	};
-
-/***/ },
-/* 46 */
-/***/ function(module, exports) {
-
-	module.exports = function(bitmap, value){
-	  return {
-	    enumerable  : !(bitmap & 1),
-	    configurable: !(bitmap & 2),
-	    writable    : !(bitmap & 4),
-	    value       : value
-	  };
-	};
-
-/***/ },
-/* 47 */
-/***/ function(module, exports, __webpack_require__) {
-
-	'use strict';
-	// 19.1.2.1 Object.assign(target, source, ...)
-	var getKeys  = __webpack_require__(48)
-	  , gOPS     = __webpack_require__(63)
-	  , pIE      = __webpack_require__(64)
-	  , toObject = __webpack_require__(65)
-	  , IObject  = __webpack_require__(52)
-	  , $assign  = Object.assign;
-
-	// should work with symbols and should have deterministic property order (V8 bug)
-	module.exports = !$assign || __webpack_require__(43)(function(){
-	  var A = {}
-	    , B = {}
-	    , S = Symbol()
-	    , K = 'abcdefghijklmnopqrst';
-	  A[S] = 7;
-	  K.split('').forEach(function(k){ B[k] = k; });
-	  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
-	}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
-	  var T     = toObject(target)
-	    , aLen  = arguments.length
-	    , index = 1
-	    , getSymbols = gOPS.f
-	    , isEnum     = pIE.f;
-	  while(aLen > index){
-	    var S      = IObject(arguments[index++])
-	      , keys   = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
-	      , length = keys.length
-	      , j      = 0
-	      , key;
-	    while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
-	  } return T;
-	} : $assign;
-
-/***/ },
-/* 48 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 19.1.2.14 / 15.2.3.14 Object.keys(O)
-	var $keys       = __webpack_require__(49)
-	  , enumBugKeys = __webpack_require__(62);
-
-	module.exports = Object.keys || function keys(O){
-	  return $keys(O, enumBugKeys);
-	};
-
-/***/ },
-/* 49 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var has          = __webpack_require__(50)
-	  , toIObject    = __webpack_require__(51)
-	  , arrayIndexOf = __webpack_require__(55)(false)
-	  , IE_PROTO     = __webpack_require__(59)('IE_PROTO');
-
-	module.exports = function(object, names){
-	  var O      = toIObject(object)
-	    , i      = 0
-	    , result = []
-	    , key;
-	  for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
-	  // Don't enum bug & hidden keys
-	  while(names.length > i)if(has(O, key = names[i++])){
-	    ~arrayIndexOf(result, key) || result.push(key);
-	  }
-	  return result;
-	};
-
-/***/ },
-/* 50 */
-/***/ function(module, exports) {
-
-	var hasOwnProperty = {}.hasOwnProperty;
-	module.exports = function(it, key){
-	  return hasOwnProperty.call(it, key);
-	};
-
-/***/ },
-/* 51 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// to indexed object, toObject with fallback for non-array-like ES3 strings
-	var IObject = __webpack_require__(52)
-	  , defined = __webpack_require__(54);
-	module.exports = function(it){
-	  return IObject(defined(it));
-	};
-
-/***/ },
-/* 52 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// fallback for non-array-like ES3 and non-enumerable old V8 strings
-	var cof = __webpack_require__(53);
-	module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
-	  return cof(it) == 'String' ? it.split('') : Object(it);
-	};
-
-/***/ },
-/* 53 */
-/***/ function(module, exports) {
-
-	var toString = {}.toString;
-
-	module.exports = function(it){
-	  return toString.call(it).slice(8, -1);
-	};
-
-/***/ },
-/* 54 */
-/***/ function(module, exports) {
-
-	// 7.2.1 RequireObjectCoercible(argument)
-	module.exports = function(it){
-	  if(it == undefined)throw TypeError("Can't call method on  " + it);
-	  return it;
-	};
-
-/***/ },
-/* 55 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// false -> Array#indexOf
-	// true  -> Array#includes
-	var toIObject = __webpack_require__(51)
-	  , toLength  = __webpack_require__(56)
-	  , toIndex   = __webpack_require__(58);
-	module.exports = function(IS_INCLUDES){
-	  return function($this, el, fromIndex){
-	    var O      = toIObject($this)
-	      , length = toLength(O.length)
-	      , index  = toIndex(fromIndex, length)
-	      , value;
-	    // Array#includes uses SameValueZero equality algorithm
-	    if(IS_INCLUDES && el != el)while(length > index){
-	      value = O[index++];
-	      if(value != value)return true;
-	    // Array#toIndex ignores holes, Array#includes - not
-	    } else for(;length > index; index++)if(IS_INCLUDES || index in O){
-	      if(O[index] === el)return IS_INCLUDES || index || 0;
-	    } return !IS_INCLUDES && -1;
-	  };
-	};
-
-/***/ },
-/* 56 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.1.15 ToLength
-	var toInteger = __webpack_require__(57)
-	  , min       = Math.min;
-	module.exports = function(it){
-	  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-	};
-
-/***/ },
-/* 57 */
-/***/ function(module, exports) {
-
-	// 7.1.4 ToInteger
-	var ceil  = Math.ceil
-	  , floor = Math.floor;
-	module.exports = function(it){
-	  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-	};
-
-/***/ },
-/* 58 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var toInteger = __webpack_require__(57)
-	  , max       = Math.max
-	  , min       = Math.min;
-	module.exports = function(index, length){
-	  index = toInteger(index);
-	  return index < 0 ? max(index + length, 0) : min(index, length);
-	};
-
-/***/ },
-/* 59 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var shared = __webpack_require__(60)('keys')
-	  , uid    = __webpack_require__(61);
-	module.exports = function(key){
-	  return shared[key] || (shared[key] = uid(key));
-	};
-
-/***/ },
-/* 60 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var global = __webpack_require__(33)
-	  , SHARED = '__core-js_shared__'
-	  , store  = global[SHARED] || (global[SHARED] = {});
-	module.exports = function(key){
-	  return store[key] || (store[key] = {});
-	};
-
-/***/ },
-/* 61 */
-/***/ function(module, exports) {
-
-	var id = 0
-	  , px = Math.random();
-	module.exports = function(key){
-	  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-	};
-
-/***/ },
-/* 62 */
-/***/ function(module, exports) {
-
-	// IE 8- don't enum bug keys
-	module.exports = (
-	  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
-	).split(',');
-
-/***/ },
-/* 63 */
-/***/ function(module, exports) {
-
-	exports.f = Object.getOwnPropertySymbols;
-
-/***/ },
-/* 64 */
-/***/ function(module, exports) {
-
-	exports.f = {}.propertyIsEnumerable;
-
-/***/ },
-/* 65 */
-/***/ function(module, exports, __webpack_require__) {
-
-	// 7.1.13 ToObject(argument)
-	var defined = __webpack_require__(54);
-	module.exports = function(it){
-	  return Object(defined(it));
-	};
-
-/***/ },
-/* 66 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(67)
-	var __weex_style__ = __webpack_require__(68)
-	var __weex_script__ = __webpack_require__(69)
-
-	__weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 67 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "wrap"
-	  ],
-	  "events": {
-	    "appear": "appeared",
-	    "disappear": "disappeared"
-	  },
-	  "children": [
-	    {
-	      "type": "div",
-	      "id": "anim",
-	      "classList": [
-	        "anim"
-	      ],
-	      "children": [
-	        {
-	          "type": "content"
-	        }
-	      ]
-	    }
-	  ]
-	}
-
-/***/ },
-/* 68 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "wrap": {
-	    "overflow": "hidden",
-	    "position": "relative"
-	  },
-	  "anim": {
-	    "flexDirection": "column",
-	    "position": "absolute",
-	    "transform": "translateY(0) translateZ(0)"
-	  }
-	}
-
-/***/ },
-/* 69 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	    data: function () {return {
-	        step: 0,
-	        count: 0,
-	        index: 1,
-	        duration: 0,
-	        interval: 0,
-	        outofview: false
-	    }},
-	    ready: function ready() {
-	        if (this.interval > 0 && this.step > 0 && this.duration > 0) {
-	            this.nextTick();
-	        }
-	    },
-	    methods: {
-	        nextTick: function nextTick() {
-	            var self = this;
-	            if (this.outofview) {
-	                setTimeout(self.nextTick.bind(self), self.interval);
-	            } else {
-	                setTimeout(function () {
-	                    self.animation(self.nextTick.bind(self));
-	                }, self.interval);
-	            }
-	        },
-	        animation: function animation(cb) {
-	            var self = this;
-	            var offset = -self.step * self.index;
-	            var $animation = __weex_require__('@weex-module/animation');
-	            $animation.transition(this.$el('anim'), {
-	                styles: {
-	                    transform: 'translateY(' + String(offset) + 'px) translateZ(0)'
-	                },
-	                timingFunction: 'ease',
-	                duration: self.duration
-	            }, function () {
-	                self.index = (self.index + 1) % self.count;
-	                self.$emit('change', {
-	                    index: self.index,
-	                    count: self.count
-	                });
-	                cb && cb();
-	            });
-	        },
-	        appeared: function appeared() {
-	            this.outofview = false;
-	        },
-	        disappeared: function disappeared() {
-	            this.outofview = true;
-	        }
-	    }
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 70 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(71)
-	var __weex_style__ = __webpack_require__(72)
-	var __weex_script__ = __webpack_require__(73)
-
-	__weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 71 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "container"
-	  ],
-	  "style": {
-	    "height": function () {return this.height},
-	    "backgroundColor": function () {return this.backgroundColor}
-	  },
-	  "attr": {
-	    "dataRole": function () {return this.dataRole}
-	  },
-	  "children": [
-	    {
-	      "type": "text",
-	      "classList": [
-	        "right-text"
-	      ],
-	      "style": {
-	        "color": function () {return this.rightItemColor}
-	      },
-	      "attr": {
-	        "naviItemPosition": "right",
-	        "value": function () {return this.rightItemTitle}
-	      },
-	      "shown": function () {return !this.rightItemSrc},
-	      "events": {
-	        "click": "onclickrightitem"
-	      }
-	    },
-	    {
-	      "type": "image",
-	      "classList": [
-	        "right-image"
-	      ],
-	      "attr": {
-	        "naviItemPosition": "right",
-	        "src": function () {return this.rightItemSrc}
-	      },
-	      "shown": function () {return this.rightItemSrc},
-	      "events": {
-	        "click": "onclickrightitem"
-	      }
-	    },
-	    {
-	      "type": "text",
-	      "classList": [
-	        "left-text"
-	      ],
-	      "style": {
-	        "color": function () {return this.leftItemColor}
-	      },
-	      "attr": {
-	        "naviItemPosition": "left",
-	        "value": function () {return this.leftItemTitle}
-	      },
-	      "shown": function () {return !this.leftItemSrc},
-	      "events": {
-	        "click": "onclickleftitem"
-	      }
-	    },
-	    {
-	      "type": "image",
-	      "classList": [
-	        "left-image"
-	      ],
-	      "attr": {
-	        "naviItemPosition": "left",
-	        "src": function () {return this.leftItemSrc}
-	      },
-	      "shown": function () {return this.leftItemSrc},
-	      "events": {
-	        "click": "onclickleftitem"
-	      }
-	    },
-	    {
-	      "type": "text",
-	      "classList": [
-	        "center-text"
-	      ],
-	      "style": {
-	        "color": function () {return this.titleColor}
-	      },
-	      "attr": {
-	        "naviItemPosition": "center",
-	        "value": function () {return this.title}
-	      }
-	    }
-	  ]
-	}
-
-/***/ },
-/* 72 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "container": {
-	    "flexDirection": "row",
-	    "position": "fixed",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "width": 750
-	  },
-	  "right-text": {
-	    "position": "absolute",
-	    "bottom": 28,
-	    "right": 32,
-	    "textAlign": "right",
-	    "fontSize": 32,
-	    "fontFamily": "'Open Sans', sans-serif"
-	  },
-	  "left-text": {
-	    "position": "absolute",
-	    "bottom": 28,
-	    "left": 32,
-	    "textAlign": "left",
-	    "fontSize": 32,
-	    "fontFamily": "'Open Sans', sans-serif"
-	  },
-	  "center-text": {
-	    "position": "absolute",
-	    "bottom": 25,
-	    "left": 172,
-	    "right": 172,
-	    "textAlign": "center",
-	    "fontSize": 36,
-	    "fontWeight": "bold"
-	  },
-	  "left-image": {
-	    "position": "absolute",
-	    "bottom": 20,
-	    "left": 28,
-	    "width": 50,
-	    "height": 50
-	  },
-	  "right-image": {
-	    "position": "absolute",
-	    "bottom": 20,
-	    "right": 28,
-	    "width": 50,
-	    "height": 50
-	  }
-	}
-
-/***/ },
-/* 73 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    dataRole: 'navbar',
-
-	    backgroundColor: 'black',
-
-	    height: 88,
-
-	    title: "",
-
-	    titleColor: 'black',
-
-	    rightItemSrc: '',
-
-	    rightItemTitle: '',
-
-	    rightItemColor: 'black',
-
-	    leftItemSrc: '',
-
-	    leftItemTitle: '',
-
-	    leftItemColor: 'black'
-	  }},
-	  methods: {
-	    onclickrightitem: function onclickrightitem(e) {
-	      this.$dispatch('naviBar.rightItem.click', {});
-	    },
-	    onclickleftitem: function onclickleftitem(e) {
-	      this.$dispatch('naviBar.leftItem.click', {});
-	    }
-	  }
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 74 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(70)
-	var __weex_template__ = __webpack_require__(75)
-	var __weex_style__ = __webpack_require__(76)
-	var __weex_script__ = __webpack_require__(77)
-
-	__weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 75 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "wrapper"
-	  ],
-	  "children": [
-	    {
-	      "type": "wxc-navbar",
-	      "attr": {
-	        "dataRole": function () {return this.dataRole},
-	        "height": function () {return this.height},
-	        "backgroundColor": function () {return this.backgroundColor},
-	        "title": function () {return this.title},
-	        "titleColor": function () {return this.titleColor},
-	        "leftItemSrc": function () {return this.leftItemSrc},
-	        "leftItemTitle": function () {return this.leftItemTitle},
-	        "leftItemColor": function () {return this.leftItemColor},
-	        "rightItemSrc": function () {return this.rightItemSrc},
-	        "rightItemTitle": function () {return this.rightItemTitle},
-	        "rightItemColor": function () {return this.rightItemColor}
-	      }
-	    },
-	    {
-	      "type": "div",
-	      "classList": [
-	        "wrapper"
-	      ],
-	      "style": {
-	        "marginTop": function () {return this.height}
-	      },
-	      "children": [
-	        {
-	          "type": "content"
-	        }
-	      ]
-	    }
-	  ]
-	}
-
-/***/ },
-/* 76 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "wrapper": {
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "bottom": 0,
-	    "width": 750
-	  }
-	}
-
-/***/ },
-/* 77 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    dataRole: 'navbar',
-	    backgroundColor: 'black',
-	    height: 88,
-	    title: "",
-	    titleColor: 'black',
-	    rightItemSrc: '',
-	    rightItemTitle: '',
-	    rightItemColor: 'black',
-	    leftItemSrc: '',
-	    leftItemTitle: '',
-	    leftItemColor: 'black'
-	  }}
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 78 */
-/***/ function(module, exports, __webpack_require__) {
-
-	__webpack_require__(79)
-	var __weex_template__ = __webpack_require__(83)
-	var __weex_style__ = __webpack_require__(84)
-	var __weex_script__ = __webpack_require__(85)
-
-	__weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) {
-
-	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
-	    if (__weex_exports__.__esModule && __weex_exports__.default) {
-	      __weex_module__.exports = __weex_exports__.default
-	    }
-
-	    __weex_module__.exports.template = __weex_template__
-
-	    __weex_module__.exports.style = __weex_style__
-
-	})
-
-
-/***/ },
-/* 79 */
-/***/ function(module, exports, __webpack_require__) {
-
-	var __weex_template__ = __webpack_require__(80)
-	var __weex_style__ = __webpack_require__(81)
-	var __weex_script__ = __webpack_require__(82)
-
-	__weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) {
+	__weex_define__('@weex-component/9b05297660bffdeefca2cb266249ee4d', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
 	    __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
 	    if (__weex_exports__.__esModule && __weex_exports__.default) {
@@ -1793,294 +62,340 @@
 
 	})
 
+	__weex_bootstrap__('@weex-component/9b05297660bffdeefca2cb266249ee4d',undefined,undefined)
 
 /***/ },
-/* 80 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "classList": [
-	    "container"
-	  ],
-	  "style": {
-	    "backgroundColor": function () {return this.backgroundColor}
-	  },
-	  "events": {
-	    "click": "onclickitem"
-	  },
-	  "children": [
-	    {
-	      "type": "image",
-	      "classList": [
-	        "top-line"
-	      ],
-	      "attr": {
-	        "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png"
-	      }
-	    },
-	    {
-	      "type": "image",
-	      "classList": [
-	        "tab-icon"
-	      ],
-	      "attr": {
-	        "src": function () {return this.icon}
-	      }
-	    },
-	    {
-	      "type": "text",
-	      "classList": [
-	        "tab-text"
-	      ],
-	      "style": {
-	        "color": function () {return this.titleColor}
-	      },
-	      "attr": {
-	        "value": function () {return this.title}
-	      }
-	    }
-	  ]
-	}
-
-/***/ },
-/* 81 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "container": {
-	    "flex": 1,
-	    "flexDirection": "column",
-	    "alignItems": "center",
-	    "justifyContent": "center",
-	    "height": 88
-	  },
-	  "top-line": {
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "height": 2
-	  },
-	  "tab-icon": {
-	    "marginTop": 5,
-	    "width": 40,
-	    "height": 40
-	  },
-	  "tab-text": {
-	    "marginTop": 5,
-	    "textAlign": "center",
-	    "fontSize": 20
-	  }
-	}
-
-/***/ },
-/* 82 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    index: 0,
-	    title: '',
-	    titleColor: '#000000',
-	    icon: '',
-	    backgroundColor: '#ffffff'
-	  }},
-	  methods: {
-	    onclickitem: function onclickitem(e) {
-	      var vm = this;
-	      var params = {
-	        index: vm.index
-	      };
-	      vm.$dispatch('tabItem.onClick', params);
-	    }
-	  }
-	};}
-	/* generated by weex-loader */
-
 
-/***/ },
-/* 83 */
+/***/ 94:
 /***/ function(module, exports) {
 
 	module.exports = {
 	  "type": "div",
-	  "classList": [
-	    "wrapper"
-	  ],
 	  "children": [
 	    {
-	      "type": "embed",
-	      "classList": [
-	        "content"
-	      ],
-	      "style": {
-	        "visibility": function () {return this.visibility}
-	      },
-	      "repeat": function () {return this.tabItems},
-	      "attr": {
-	        "src": function () {return this.src},
-	        "type": "weex"
-	      }
-	    },
-	    {
 	      "type": "div",
-	      "classList": [
-	        "tabbar"
-	      ],
-	      "append": "tree",
 	      "children": [
 	        {
-	          "type": "wxc-tabitem",
-	          "repeat": function () {return this.tabItems},
+	          "type": "text",
+	          "style": {
+	            "fontSize": 40
+	          },
 	          "attr": {
-	            "index": function () {return this.index},
-	            "icon": function () {return this.icon},
-	            "title": function () {return this.title},
-	            "titleColor": function () {return this.titleColor}
+	            "value": function () {return 'oninput: ' + (this.txtInput)}
 	          }
-	        }
-	      ]
-	    }
-	  ]
-	}
-
-/***/ },
-/* 84 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "wrapper": {
-	    "width": 750,
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "bottom": 0
-	  },
-	  "content": {
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "bottom": 0,
-	    "marginTop": 0,
-	    "marginBottom": 88
-	  },
-	  "tabbar": {
-	    "flexDirection": "row",
-	    "position": "fixed",
-	    "bottom": 0,
-	    "left": 0,
-	    "right": 0,
-	    "height": 88
-	  }
-	}
-
-/***/ },
-/* 85 */
-/***/ function(module, exports) {
-
-	module.exports = function(module, exports, __weex_require__){'use strict';
-
-	module.exports = {
-	  data: function () {return {
-	    tabItems: [],
-	    selectedIndex: 0,
-	    selectedColor: '#ff0000',
-	    unselectedColor: '#000000'
-	  }},
-	  created: function created() {
-	    this.selected(this.selectedIndex);
-
-	    this.$on('tabItem.onClick', function (e) {
-	      var detail = e.detail;
-	      this.selectedIndex = detail.index;
-	      this.selected(detail.index);
-
-	      var params = {
-	        index: detail.index
-	      };
-	      this.$dispatch('tabBar.onClick', params);
-	    });
-	  },
-	  methods: {
-	    selected: function selected(index) {
-	      for (var i = 0; i < this.tabItems.length; i++) {
-	        var tabItem = this.tabItems[i];
-	        if (i == index) {
-	          tabItem.icon = tabItem.selectedImage;
-	          tabItem.titleColor = this.selectedColor;
-	          tabItem.visibility = 'visible';
-	        } else {
-	          tabItem.icon = tabItem.image;
-	          tabItem.titleColor = this.unselectedColor;
-	          tabItem.visibility = 'hidden';
-	        }
-	      }
-	    }
-	  }
-	};}
-	/* generated by weex-loader */
-
-
-/***/ },
-/* 86 */,
-/* 87 */,
-/* 88 */,
-/* 89 */,
-/* 90 */,
-/* 91 */,
-/* 92 */,
-/* 93 */,
-/* 94 */
-/***/ function(module, exports) {
-
-	module.exports = {
-	  "type": "div",
-	  "children": [
-	    {
-	      "type": "div",
-	      "children": [
+	        },
 	        {
 	          "type": "text",
 	          "style": {
 	            "fontSize": 40
 	          },
 	          "attr": {
-	            "value": function () {return 'oninput: ' + (this.txtInput)}
+	            "value": function () {return 'onchange: ' + (this.txtChange)}
+	          }
+	        },
+	        {
+	          "type": "text",
+	          "style": {
+	            "fontSize": 40
+	          },
+	          "attr": {
+	            "value": function () {return 'onreturntype: ' + (this.txtReturnType)}
+	          }
+	        },
+	        {
+	          "type": "text",
+	          "style": {
+	            "fontSize": 40
+	          },
+	          "attr": {
+	            "value": function () {return 'onrange: ' + (this.txtRange)}
 	          }
+	        }
+	      ]
+	    },
+	    {
+	      "type": "scroller",
+	      "children": [
+	        {
+	          "type": "div",
+	          "children": [
+	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input type = text"
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "text",
+	                "placeholder": "Input Text",
+	                ":autofocus": "autofocus",
+	                "value": ""
+	              },
+	              "classList": [
+	                "input"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "div",
+	          "children": [
+	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input type = password"
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "password",
+	                "placeholder": "Input Password"
+	              },
+	              "classList": [
+	                "input"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "div",
+	          "children": [
+	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input type = url"
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "url",
+	                "placeholder": "Input URL"
+	              },
+	              "classList": [
+	                "input"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "div",
+	          "children": [
+	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input type = email"
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "email",
+	                "placeholder": "Input Email"
+	              },
+	              "classList": [
+	                "input"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "div",
+	          "children": [
+	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input type = tel"
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "tel",
+	                "placeholder": "Input Tel"
+	              },
+	              "classList": [
+	                "input"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
 	        },
 	        {
-	          "type": "text",
-	          "style": {
-	            "fontSize": 40
-	          },
-	          "attr": {
-	            "value": function () {return 'onchange: ' + (this.txtChange)}
-	          }
-	        }
-	      ]
-	    },
-	    {
-	      "type": "scroller",
-	      "children": [
+	          "type": "div",
+	          "children": [
+	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input type = time"
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "time",
+	                "placeholder": "Input Time"
+	              },
+	              "classList": [
+	                "input"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
+	        },
 	        {
-	          "type": "wxc-panel",
-	          "attr": {
-	            "title": "input type = text",
-	            "type": "primary"
-	          },
+	          "type": "div",
 	          "children": [
 	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input type = date"
+	                  }
+	                }
+	              ]
+	            },
+	            {
 	              "type": "input",
 	              "attr": {
-	                "type": "text",
-	                "placeholder": "Input Text",
-	                "autofocus": function () {return this.autofocus},
-	                "value": ""
+	                "type": "date",
+	                "placeholder": "Input Date",
+	                "max": "2017-12-12",
+	                "min": "2015-01-01"
 	              },
 	              "classList": [
 	                "input"
@@ -2093,162 +408,301 @@
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
-	          "attr": {
-	            "title": "input type = password",
-	            "type": "primary"
-	          },
+	          "type": "div",
 	          "children": [
 	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input keyboard = default"
+	                  }
+	                }
+	              ]
+	            },
+	            {
 	              "type": "input",
 	              "attr": {
-	                "type": "password",
-	                "placeholder": "Input Password"
+	                "type": "text",
+	                "placeholder": "please input",
+	                "returnKeyType": "default"
 	              },
 	              "classList": [
 	                "input"
 	              ],
 	              "events": {
 	                "change": "onchange",
+	                "return": "onreturn",
 	                "input": "oninput"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
-	          "attr": {
-	            "title": "input type = url",
-	            "type": "primary"
-	          },
+	          "type": "div",
 	          "children": [
 	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input keyboard = go"
+	                  }
+	                }
+	              ]
+	            },
+	            {
 	              "type": "input",
 	              "attr": {
-	                "type": "url",
-	                "placeholder": "Input URL"
+	                "type": "text",
+	                "placeholder": "please input",
+	                "returnKeyType": "go"
 	              },
 	              "classList": [
 	                "input"
 	              ],
 	              "events": {
 	                "change": "onchange",
+	                "return": "onreturn",
 	                "input": "oninput"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
-	          "attr": {
-	            "title": "input type = email",
-	            "type": "primary"
-	          },
+	          "type": "div",
 	          "children": [
 	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input keyboard = next"
+	                  }
+	                }
+	              ]
+	            },
+	            {
 	              "type": "input",
 	              "attr": {
-	                "type": "email",
-	                "placeholder": "Input Email"
+	                "type": "text",
+	                "placeholder": "please input",
+	                "returnKeyType": "next"
 	              },
 	              "classList": [
 	                "input"
 	              ],
 	              "events": {
 	                "change": "onchange",
+	                "return": "onreturn",
 	                "input": "oninput"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
-	          "attr": {
-	            "title": "input type = tel",
-	            "type": "primary"
-	          },
+	          "type": "div",
 	          "children": [
 	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input keyboard = search"
+	                  }
+	                }
+	              ]
+	            },
+	            {
 	              "type": "input",
 	              "attr": {
-	                "type": "tel",
-	                "placeholder": "Input Tel"
+	                "type": "text",
+	                "placeholder": "please input",
+	                "returnKeyType": "search"
 	              },
 	              "classList": [
 	                "input"
 	              ],
 	              "events": {
 	                "change": "onchange",
+	                "return": "onreturn",
 	                "input": "oninput"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
-	          "attr": {
-	            "title": "input type = time",
-	            "type": "primary"
-	          },
+	          "type": "div",
 	          "children": [
 	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input keyboard = send"
+	                  }
+	                }
+	              ]
+	            },
+	            {
 	              "type": "input",
 	              "attr": {
-	                "type": "time",
-	                "placeholder": "Input Time"
+	                "type": "text",
+	                "placeholder": "please input",
+	                "returnKeyType": "send"
 	              },
 	              "classList": [
 	                "input"
 	              ],
 	              "events": {
 	                "change": "onchange",
+	                "return": "onreturn",
 	                "input": "oninput"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
-	          "attr": {
-	            "title": "input type = date",
-	            "type": "primary"
-	          },
+	          "type": "div",
 	          "children": [
 	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input keyboard = done"
+	                  }
+	                }
+	              ]
+	            },
+	            {
 	              "type": "input",
 	              "attr": {
-	                "type": "date",
-	                "placeholder": "Input Date",
-	                "max": "2017-12-12",
-	                "min": "2015-01-01"
+	                "type": "text",
+	                "placeholder": "please input",
+	                "returnKeyType": "done"
 	              },
 	              "classList": [
 	                "input"
 	              ],
 	              "events": {
 	                "change": "onchange",
+	                "return": "onreturn",
 	                "input": "oninput"
 	              }
 	            }
 	          ]
 	        },
 	        {
-	          "type": "wxc-panel",
-	          "attr": {
-	            "title": "function focus() & blur()",
-	            "type": "primary"
-	          },
+	          "type": "div",
 	          "children": [
 	            {
 	              "type": "div",
 	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "function focus() & blur()"
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "div",
+	              "style": {
 	                "flexDirection": "row",
 	                "marginBottom": 16,
 	                "justifyContent": "space-between"
 	              },
 	              "children": [
 	                {
-	                  "type": "wxc-button",
+	                  "type": "text",
+	                  "classList": [
+	                    "button"
+	                  ],
 	                  "attr": {
 	                    "value": "Focus",
 	                    "type": "primary"
@@ -2258,7 +712,10 @@
 	                  }
 	                },
 	                {
-	                  "type": "wxc-button",
+	                  "type": "text",
+	                  "classList": [
+	                    "button"
+	                  ],
 	                  "attr": {
 	                    "value": "Blur",
 	                    "type": "primary"
@@ -2282,6 +739,86 @@
 	              "id": "input1"
 	            }
 	          ]
+	        },
+	        {
+	          "type": "div",
+	          "children": [
+	            {
+	              "type": "div",
+	              "style": {
+	                "backgroundColor": "#286090"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "style": {
+	                    "height": 80,
+	                    "padding": 20,
+	                    "color": "#FFFFFF"
+	                  },
+	                  "attr": {
+	                    "value": "input selection"
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "div",
+	              "style": {
+	                "flexDirection": "row",
+	                "marginBottom": 16,
+	                "justifyContent": "space-between"
+	              },
+	              "children": [
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "button"
+	                  ],
+	                  "attr": {
+	                    "value": "setRange",
+	                    "type": "primary"
+	                  },
+	                  "events": {
+	                    "click": "setRange"
+	                  }
+	                },
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "button"
+	                  ],
+	                  "attr": {
+	                    "value": "getRange",
+	                    "type": "primary"
+	                  },
+	                  "events": {
+	                    "click": "getRange"
+	                  }
+	                }
+	              ]
+	            },
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "text",
+	                "placeholder": "please input",
+	                "value": "123456789"
+	              },
+	              "id": "inputselection",
+	              "classList": [
+	                "input"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "return": "onreturn",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
 	        }
 	      ]
 	    }
@@ -2289,7 +826,8 @@
 	}
 
 /***/ },
-/* 95 */
+
+/***/ 95:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2297,22 +835,40 @@
 	    "fontSize": 60,
 	    "height": 80,
 	    "width": 750
+	  },
+	  "button": {
+	    "fontSize": 36,
+	    "width": 200,
+	    "color": "#41B883",
+	    "textAlign": "center",
+	    "paddingTop": 10,
+	    "paddingBottom": 10,
+	    "borderWidth": 2,
+	    "borderStyle": "solid",
+	    "marginRight": 20,
+	    "borderColor": "rgb(162,217,192)",
+	    "backgroundColor": "rgba(162,217,192,0.2)"
 	  }
 	}
 
 /***/ },
-/* 96 */
-/***/ function(module, exports, __webpack_require__) {
+
+/***/ 96:
+/***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
 
-	__webpack_require__(4);
 	module.exports = {
-	    data: function () {return {
-	        txtInput: '',
-	        txtChange: '',
-	        autofocus: false
-	    }},
+	    data: function data() {
+	        return {
+	            txtInput: '',
+	            txtChange: '',
+	            txtReturnType: '',
+	            txtSelection: '',
+	            autofocus: false,
+	            txtRange: ''
+	        };
+	    },
 	    methods: {
 	        ready: function ready() {
 	            var self = this;
@@ -2324,6 +880,10 @@
 	            this.txtChange = event.value;
 	            console.log('onchange', event.value);
 	        },
+	        onreturn: function onreturn(event) {
+	            this.txtReturnType = event.returnKeyType;
+	            console.log('onreturn', event.type);
+	        },
 	        oninput: function oninput(event) {
 	            this.txtInput = event.value;
 	            console.log('oninput', event.value);
@@ -2333,6 +893,16 @@
 	        },
 	        blur: function blur() {
 	            this.$el('input1').blur();
+	        },
+	        setRange: function setRange() {
+	            console.log(this.$el["inputselection"]);
+	            this.$el("inputselection").setSelectionRange(2, 6);
+	        },
+	        getRange: function getRange() {
+	            var self = this;
+	            this.$el("inputselection").getSelectionRange(function (e) {
+	                self.txtRange = e.selectionStart + '-' + e.selectionEnd;
+	            });
 	        }
 	    }
 	};}
@@ -2340,4 +910,5 @@
 
 
 /***/ }
-/******/ ]);
\ No newline at end of file
+
+/******/ });
\ No newline at end of file


[24/50] [abbrv] incubator-weex git commit: * [html5] add flow-type supported.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/html5/render/vue/utils/type.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/type.js b/html5/render/vue/utils/type.js
index b331ee8..8999568 100644
--- a/html5/render/vue/utils/type.js
+++ b/html5/render/vue/utils/type.js
@@ -1,3 +1,5 @@
+// @flow
+
 const toString = Object.prototype.toString
 
 /**
@@ -8,11 +10,11 @@ const toString = Object.prototype.toString
  * @return {Boolean}
  */
 const OBJECT_STRING = '[object Object]'
-export function isPlainObject (obj) {
+export function isPlainObject (obj?: mixed): boolean {
   return toString.call(obj) === OBJECT_STRING
 }
 
 const ARRAY_STRING = '[object Array]'
-export function isArray (arr) {
+export function isArray (arr?: mixed): boolean {
   return toString.call(arr) === ARRAY_STRING
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 9d9ed34..ac7e066 100644
--- a/package.json
+++ b/package.json
@@ -60,6 +60,7 @@
     "dev:examples:web": "webpack --watch --config build/webpack.examples.web.config.js",
     "dev:test": "webpack --watch --config build/webpack.test.config.js",
     "lint": "eslint html5",
+    "flow": "flow check",
     "test:case": "mocha --require reify html5/test/case/tester.js",
     "test:vue": "karma start build/karma.vue.conf.js",
     "test:unit": "mocha --require reify html5/test/unit/*/*.js html5/test/unit/*/*/*.js",
@@ -92,10 +93,11 @@
     "weex-picker": "^0.1.0",
     "weex-rax-framework": "0.1.0",
     "weex-vue-framework": "2.2.1-weex.1",
-    "weex-styler":"0.1.9"
+    "weex-styler": "0.1.9"
   },
   "devDependencies": {
     "babel-core": "^6.17.0",
+    "babel-eslint": "^7.2.1",
     "babel-istanbul": "^0.11.0",
     "babel-loader": "^6.2.5",
     "babel-plugin-coverage": "^1.0.0",
@@ -107,6 +109,8 @@
     "css-loader": "^0.26.1",
     "danger": "^0.11.5",
     "eslint": "^2.11.1",
+    "eslint-plugin-flowtype": "^2.30.4",
+    "flow-bin": "^0.42.0",
     "fs-extra": "^2.0.0",
     "http-server": "^0.9.0",
     "json-loader": "^0.5.4",
@@ -127,6 +131,7 @@
     "rollup-plugin-buble": "^0.14.0",
     "rollup-plugin-commonjs": "^5.0.4",
     "rollup-plugin-eslint": "^3.0.0",
+    "rollup-plugin-flow": "^1.1.1",
     "rollup-plugin-json": "^2.0.2",
     "rollup-plugin-node-resolve": "^2.0.0",
     "rollup-plugin-postcss": "^0.2.0",


[35/50] [abbrv] incubator-weex git commit: * [html5] true to ignore.

Posted by so...@apache.org.
* [html5] true to ignore.


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

Branch: refs/heads/dev
Commit: 27841875d16c87c59edee7a8ad9f088767695d0b
Parents: 952c266
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Mar 30 15:33:32 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Mar 30 15:33:32 2017 +0800

----------------------------------------------------------------------
 dangerfile.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/27841875/dangerfile.js
----------------------------------------------------------------------
diff --git a/dangerfile.js b/dangerfile.js
index 8bf99ee..3c9dd90 100644
--- a/dangerfile.js
+++ b/dangerfile.js
@@ -30,7 +30,7 @@ const unFlowedFiles = jsFiles.filter(filepath => {
   for (const p in flowIgnorePaths) {
     if (p.indexOf(filepath) >= -1) {
       // ignore this file because it's in the flow-ignore-paths.
-      return;
+      return true;
     }
   }
   const content = fs.readFileSync(filepath);


[20/50] [abbrv] incubator-weex git commit: * [android] recycler demo bugfix

Posted by so...@apache.org.
* [android] recycler demo bugfix


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

Branch: refs/heads/dev
Commit: 5c543fa40dbb3240aa37e998962fcc3b3c22474a
Parents: 0dc2daa
Author: zshshr <zh...@gmail.com>
Authored: Tue Mar 28 19:13:42 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Tue Mar 28 19:13:42 2017 +0800

----------------------------------------------------------------------
 test/pages/components/recycler.vue | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5c543fa4/test/pages/components/recycler.vue
----------------------------------------------------------------------
diff --git a/test/pages/components/recycler.vue b/test/pages/components/recycler.vue
index 12ca01c..ce4f21f 100644
--- a/test/pages/components/recycler.vue
+++ b/test/pages/components/recycler.vue
@@ -5,13 +5,14 @@
   :show-scrollbar="showScrollbar" :scrollable="scrollable"
   @scroll="recylerScroll" @loadmore="loadmore" loadmoreoffset=3000
   >
-    <refresh class="refresh" @refresh="onrefresh" @pullingdown="onpullingdown" :display="refreshing ? 'show' : 'hide'">
+  <!--<refresh class="refresh" @refresh="onrefresh" @pullingdown="onpullingdown" :display="refreshing ? 'show' : 'hide'">
       <loading-indicator class="indicator"></loading-indicator>
       <text class="refreshText">{{refreshText}}</text>
-    </refresh>
+  </refresh>-->
     <header class="header" ref="header" v-if="showHeader">
-      <image class="banner" src="https://gw.alicdn.com/tps/TB1ESN1PFXXXXX1apXXXXXXXXXX-1000-600.jpg" resize="cover">
-        <div class="bannerInfo">
+      <div class="banner">
+       <image class="absolute" src="https://gw.alicdn.com/tps/TB1ESN1PFXXXXX1apXXXXXXXXXX-1000-600.jpg" resize="cover"></image>
+       <div class="bannerInfo">
           <image class="avatar" src="https://gw.alicdn.com/tps/TB1EP9bPFXXXXbpXVXXXXXXXXXX-150-110.jpg" resize="cover"></image>
           <text class="name">Adam Cat</text>
           <div class="titleWrap">
@@ -21,9 +22,9 @@
         <div class="bannerPhotoWrap">
           <image class="bannerPhoto" v-for="photo in banner.photos" :src="photo.src"></image>
         </div>
-      </image>
+      </div>
     </header>
-    <header class="stickyHeader" @click="showOrRemoveHeader">
+    <header class="stickyHeader" >
       <div v-if="stickyHeaderType === 'none'" class="stickyWrapper">
         <text class="stickyText">Sticky Header</text>
       </div>
@@ -79,6 +80,12 @@
     width: 40;
     margin-right: 30;
   }
+  .absolute {
+  position: absolute;
+  top: 0px;
+  width: 750;
+  height: 377;
+}
   .banner {
     height: 377;
     flex-direction: row;


[31/50] [abbrv] incubator-weex git commit: * [html5] add flow-type supported.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/babel-runtime_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/babel-runtime_vx.x.x.js b/flow-typed/npm/babel-runtime_vx.x.x.js
new file mode 100644
index 0000000..f2a20cd
--- /dev/null
+++ b/flow-typed/npm/babel-runtime_vx.x.x.js
@@ -0,0 +1,1691 @@
+// flow-typed signature: 6ad8552d1995b82ccd1c953fef0ba503
+// flow-typed version: <<STUB>>/babel-runtime_v^6.11.6/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'babel-runtime'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'babel-runtime' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'babel-runtime/core-js' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/concat' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/copy-within' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/entries' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/every' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/fill' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/filter' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/find-index' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/find' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/for-each' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/from' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/includes' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/index-of' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/join' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/keys' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/last-index-of' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/map' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/of' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/pop' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/push' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/reduce-right' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/reduce' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/reverse' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/shift' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/slice' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/some' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/sort' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/splice' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/unshift' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/array/values' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/asap' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/clear-immediate' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/error/is-error' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/get-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/is-iterable' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/json/stringify' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/map' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/acosh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/asinh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/atanh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/cbrt' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/clz32' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/cosh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/expm1' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/fround' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/hypot' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/iaddh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/imul' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/imulh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/isubh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/log10' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/log1p' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/log2' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/sign' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/sinh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/tanh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/trunc' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/math/umulh' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/number/epsilon' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/number/is-finite' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/number/is-integer' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/number/is-nan' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/number/is-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/number/max-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/number/min-safe-integer' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/number/parse-float' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/number/parse-int' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/assign' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/create' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/define-properties' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/define-property' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/entries' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/freeze' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/get-own-property-descriptor' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/get-own-property-descriptors' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/get-own-property-names' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/get-own-property-symbols' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/get-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/is-extensible' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/is-frozen' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/is-sealed' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/is' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/keys' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/prevent-extensions' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/seal' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/set-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/object/values' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/observable' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/promise' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/apply' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/construct' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/define-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/define-property' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/delete-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/delete-property' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/enumerate' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/get-metadata-keys' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/get-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/get-own-metadata-keys' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/get-own-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/get-own-property-descriptor' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/get-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/get' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/has-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/has-own-metadata' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/has' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/is-extensible' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/metadata' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/own-keys' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/prevent-extensions' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/set-prototype-of' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/reflect/set' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/regexp/escape' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/set-immediate' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/set' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/at' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/code-point-at' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/ends-with' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/from-code-point' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/includes' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/match-all' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/pad-end' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/pad-left' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/pad-right' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/pad-start' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/raw' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/repeat' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/starts-with' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/trim-end' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/trim-left' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/trim-right' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/trim-start' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/string/trim' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/async-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/for' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/has-instance' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/is-concat-spreadable' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/iterator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/key-for' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/match' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/observable' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/replace' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/search' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/species' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/split' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/to-primitive' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/to-string-tag' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/symbol/unscopables' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/system/global' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/weak-map' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/core-js/weak-set' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_async-generator-delegate' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_async-generator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_async-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_async-to-generator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_class-call-check' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_create-class' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_defaults' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_define-enumerable-properties' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_define-property' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_extends' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_get' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_inherits' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_instanceof' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_interop-require-default' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_interop-require-wildcard' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_jsx' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_new-arrow-check' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_object-destructuring-empty' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_object-without-properties' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_possible-constructor-return' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_self-global' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_set' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_sliced-to-array-loose' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_sliced-to-array' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_tagged-template-literal-loose' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_tagged-template-literal' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_temporal-ref' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_temporal-undefined' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_to-array' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_to-consumable-array' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/_typeof' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/async-generator-delegate' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/async-generator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/async-iterator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/async-to-generator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/asyncGenerator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/asyncGeneratorDelegate' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/asyncIterator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/asyncToGenerator' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/class-call-check' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/classCallCheck' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/create-class' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/createClass' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/defaults' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/define-enumerable-properties' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/define-property' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/defineEnumerableProperties' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/defineProperty' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/extends' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/get' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/inherits' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/instanceof' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/interop-require-default' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/interop-require-wildcard' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/interopRequireDefault' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/interopRequireWildcard' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/jsx' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/new-arrow-check' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/newArrowCheck' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/object-destructuring-empty' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/object-without-properties' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/objectDestructuringEmpty' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/objectWithoutProperties' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/possible-constructor-return' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/possibleConstructorReturn' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/self-global' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/selfGlobal' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/set' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/sliced-to-array-loose' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/sliced-to-array' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/slicedToArray' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/slicedToArrayLoose' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/tagged-template-literal-loose' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/tagged-template-literal' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/taggedTemplateLiteral' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/taggedTemplateLiteralLoose' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/temporal-ref' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/temporal-undefined' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/temporalRef' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/temporalUndefined' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/to-array' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/to-consumable-array' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/toArray' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/toConsumableArray' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/helpers/typeof' {
+  declare module.exports: any;
+}
+
+declare module 'babel-runtime/regenerator/index' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'babel-runtime/core-js.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js'>;
+}
+declare module 'babel-runtime/core-js/array/concat.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/concat'>;
+}
+declare module 'babel-runtime/core-js/array/copy-within.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/copy-within'>;
+}
+declare module 'babel-runtime/core-js/array/entries.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/entries'>;
+}
+declare module 'babel-runtime/core-js/array/every.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/every'>;
+}
+declare module 'babel-runtime/core-js/array/fill.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/fill'>;
+}
+declare module 'babel-runtime/core-js/array/filter.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/filter'>;
+}
+declare module 'babel-runtime/core-js/array/find-index.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/find-index'>;
+}
+declare module 'babel-runtime/core-js/array/find.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/find'>;
+}
+declare module 'babel-runtime/core-js/array/for-each.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/for-each'>;
+}
+declare module 'babel-runtime/core-js/array/from.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/from'>;
+}
+declare module 'babel-runtime/core-js/array/includes.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/includes'>;
+}
+declare module 'babel-runtime/core-js/array/index-of.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/index-of'>;
+}
+declare module 'babel-runtime/core-js/array/join.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/join'>;
+}
+declare module 'babel-runtime/core-js/array/keys.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/keys'>;
+}
+declare module 'babel-runtime/core-js/array/last-index-of.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/last-index-of'>;
+}
+declare module 'babel-runtime/core-js/array/map.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/map'>;
+}
+declare module 'babel-runtime/core-js/array/of.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/of'>;
+}
+declare module 'babel-runtime/core-js/array/pop.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/pop'>;
+}
+declare module 'babel-runtime/core-js/array/push.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/push'>;
+}
+declare module 'babel-runtime/core-js/array/reduce-right.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/reduce-right'>;
+}
+declare module 'babel-runtime/core-js/array/reduce.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/reduce'>;
+}
+declare module 'babel-runtime/core-js/array/reverse.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/reverse'>;
+}
+declare module 'babel-runtime/core-js/array/shift.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/shift'>;
+}
+declare module 'babel-runtime/core-js/array/slice.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/slice'>;
+}
+declare module 'babel-runtime/core-js/array/some.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/some'>;
+}
+declare module 'babel-runtime/core-js/array/sort.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/sort'>;
+}
+declare module 'babel-runtime/core-js/array/splice.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/splice'>;
+}
+declare module 'babel-runtime/core-js/array/unshift.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/unshift'>;
+}
+declare module 'babel-runtime/core-js/array/values.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/array/values'>;
+}
+declare module 'babel-runtime/core-js/asap.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/asap'>;
+}
+declare module 'babel-runtime/core-js/clear-immediate.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/clear-immediate'>;
+}
+declare module 'babel-runtime/core-js/error/is-error.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/error/is-error'>;
+}
+declare module 'babel-runtime/core-js/get-iterator.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/get-iterator'>;
+}
+declare module 'babel-runtime/core-js/is-iterable.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/is-iterable'>;
+}
+declare module 'babel-runtime/core-js/json/stringify.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/json/stringify'>;
+}
+declare module 'babel-runtime/core-js/map.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/map'>;
+}
+declare module 'babel-runtime/core-js/math/acosh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/acosh'>;
+}
+declare module 'babel-runtime/core-js/math/asinh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/asinh'>;
+}
+declare module 'babel-runtime/core-js/math/atanh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/atanh'>;
+}
+declare module 'babel-runtime/core-js/math/cbrt.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/cbrt'>;
+}
+declare module 'babel-runtime/core-js/math/clz32.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/clz32'>;
+}
+declare module 'babel-runtime/core-js/math/cosh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/cosh'>;
+}
+declare module 'babel-runtime/core-js/math/expm1.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/expm1'>;
+}
+declare module 'babel-runtime/core-js/math/fround.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/fround'>;
+}
+declare module 'babel-runtime/core-js/math/hypot.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/hypot'>;
+}
+declare module 'babel-runtime/core-js/math/iaddh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/iaddh'>;
+}
+declare module 'babel-runtime/core-js/math/imul.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/imul'>;
+}
+declare module 'babel-runtime/core-js/math/imulh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/imulh'>;
+}
+declare module 'babel-runtime/core-js/math/isubh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/isubh'>;
+}
+declare module 'babel-runtime/core-js/math/log10.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/log10'>;
+}
+declare module 'babel-runtime/core-js/math/log1p.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/log1p'>;
+}
+declare module 'babel-runtime/core-js/math/log2.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/log2'>;
+}
+declare module 'babel-runtime/core-js/math/sign.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/sign'>;
+}
+declare module 'babel-runtime/core-js/math/sinh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/sinh'>;
+}
+declare module 'babel-runtime/core-js/math/tanh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/tanh'>;
+}
+declare module 'babel-runtime/core-js/math/trunc.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/trunc'>;
+}
+declare module 'babel-runtime/core-js/math/umulh.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/math/umulh'>;
+}
+declare module 'babel-runtime/core-js/number/epsilon.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/number/epsilon'>;
+}
+declare module 'babel-runtime/core-js/number/is-finite.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/number/is-finite'>;
+}
+declare module 'babel-runtime/core-js/number/is-integer.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/number/is-integer'>;
+}
+declare module 'babel-runtime/core-js/number/is-nan.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/number/is-nan'>;
+}
+declare module 'babel-runtime/core-js/number/is-safe-integer.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/number/is-safe-integer'>;
+}
+declare module 'babel-runtime/core-js/number/max-safe-integer.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/number/max-safe-integer'>;
+}
+declare module 'babel-runtime/core-js/number/min-safe-integer.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/number/min-safe-integer'>;
+}
+declare module 'babel-runtime/core-js/number/parse-float.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/number/parse-float'>;
+}
+declare module 'babel-runtime/core-js/number/parse-int.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/number/parse-int'>;
+}
+declare module 'babel-runtime/core-js/object/assign.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/assign'>;
+}
+declare module 'babel-runtime/core-js/object/create.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/create'>;
+}
+declare module 'babel-runtime/core-js/object/define-properties.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/define-properties'>;
+}
+declare module 'babel-runtime/core-js/object/define-property.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/define-property'>;
+}
+declare module 'babel-runtime/core-js/object/entries.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/entries'>;
+}
+declare module 'babel-runtime/core-js/object/freeze.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/freeze'>;
+}
+declare module 'babel-runtime/core-js/object/get-own-property-descriptor.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/get-own-property-descriptor'>;
+}
+declare module 'babel-runtime/core-js/object/get-own-property-descriptors.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/get-own-property-descriptors'>;
+}
+declare module 'babel-runtime/core-js/object/get-own-property-names.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/get-own-property-names'>;
+}
+declare module 'babel-runtime/core-js/object/get-own-property-symbols.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/get-own-property-symbols'>;
+}
+declare module 'babel-runtime/core-js/object/get-prototype-of.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/get-prototype-of'>;
+}
+declare module 'babel-runtime/core-js/object/is-extensible.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/is-extensible'>;
+}
+declare module 'babel-runtime/core-js/object/is-frozen.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/is-frozen'>;
+}
+declare module 'babel-runtime/core-js/object/is-sealed.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/is-sealed'>;
+}
+declare module 'babel-runtime/core-js/object/is.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/is'>;
+}
+declare module 'babel-runtime/core-js/object/keys.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/keys'>;
+}
+declare module 'babel-runtime/core-js/object/prevent-extensions.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/prevent-extensions'>;
+}
+declare module 'babel-runtime/core-js/object/seal.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/seal'>;
+}
+declare module 'babel-runtime/core-js/object/set-prototype-of.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/set-prototype-of'>;
+}
+declare module 'babel-runtime/core-js/object/values.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/object/values'>;
+}
+declare module 'babel-runtime/core-js/observable.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/observable'>;
+}
+declare module 'babel-runtime/core-js/promise.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/promise'>;
+}
+declare module 'babel-runtime/core-js/reflect/apply.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/apply'>;
+}
+declare module 'babel-runtime/core-js/reflect/construct.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/construct'>;
+}
+declare module 'babel-runtime/core-js/reflect/define-metadata.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/define-metadata'>;
+}
+declare module 'babel-runtime/core-js/reflect/define-property.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/define-property'>;
+}
+declare module 'babel-runtime/core-js/reflect/delete-metadata.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/delete-metadata'>;
+}
+declare module 'babel-runtime/core-js/reflect/delete-property.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/delete-property'>;
+}
+declare module 'babel-runtime/core-js/reflect/enumerate.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/enumerate'>;
+}
+declare module 'babel-runtime/core-js/reflect/get-metadata-keys.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/get-metadata-keys'>;
+}
+declare module 'babel-runtime/core-js/reflect/get-metadata.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/get-metadata'>;
+}
+declare module 'babel-runtime/core-js/reflect/get-own-metadata-keys.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/get-own-metadata-keys'>;
+}
+declare module 'babel-runtime/core-js/reflect/get-own-metadata.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/get-own-metadata'>;
+}
+declare module 'babel-runtime/core-js/reflect/get-own-property-descriptor.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/get-own-property-descriptor'>;
+}
+declare module 'babel-runtime/core-js/reflect/get-prototype-of.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/get-prototype-of'>;
+}
+declare module 'babel-runtime/core-js/reflect/get.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/get'>;
+}
+declare module 'babel-runtime/core-js/reflect/has-metadata.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/has-metadata'>;
+}
+declare module 'babel-runtime/core-js/reflect/has-own-metadata.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/has-own-metadata'>;
+}
+declare module 'babel-runtime/core-js/reflect/has.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/has'>;
+}
+declare module 'babel-runtime/core-js/reflect/is-extensible.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/is-extensible'>;
+}
+declare module 'babel-runtime/core-js/reflect/metadata.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/metadata'>;
+}
+declare module 'babel-runtime/core-js/reflect/own-keys.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/own-keys'>;
+}
+declare module 'babel-runtime/core-js/reflect/prevent-extensions.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/prevent-extensions'>;
+}
+declare module 'babel-runtime/core-js/reflect/set-prototype-of.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/set-prototype-of'>;
+}
+declare module 'babel-runtime/core-js/reflect/set.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/reflect/set'>;
+}
+declare module 'babel-runtime/core-js/regexp/escape.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/regexp/escape'>;
+}
+declare module 'babel-runtime/core-js/set-immediate.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/set-immediate'>;
+}
+declare module 'babel-runtime/core-js/set.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/set'>;
+}
+declare module 'babel-runtime/core-js/string/at.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/at'>;
+}
+declare module 'babel-runtime/core-js/string/code-point-at.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/code-point-at'>;
+}
+declare module 'babel-runtime/core-js/string/ends-with.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/ends-with'>;
+}
+declare module 'babel-runtime/core-js/string/from-code-point.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/from-code-point'>;
+}
+declare module 'babel-runtime/core-js/string/includes.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/includes'>;
+}
+declare module 'babel-runtime/core-js/string/match-all.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/match-all'>;
+}
+declare module 'babel-runtime/core-js/string/pad-end.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/pad-end'>;
+}
+declare module 'babel-runtime/core-js/string/pad-left.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/pad-left'>;
+}
+declare module 'babel-runtime/core-js/string/pad-right.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/pad-right'>;
+}
+declare module 'babel-runtime/core-js/string/pad-start.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/pad-start'>;
+}
+declare module 'babel-runtime/core-js/string/raw.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/raw'>;
+}
+declare module 'babel-runtime/core-js/string/repeat.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/repeat'>;
+}
+declare module 'babel-runtime/core-js/string/starts-with.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/starts-with'>;
+}
+declare module 'babel-runtime/core-js/string/trim-end.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/trim-end'>;
+}
+declare module 'babel-runtime/core-js/string/trim-left.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/trim-left'>;
+}
+declare module 'babel-runtime/core-js/string/trim-right.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/trim-right'>;
+}
+declare module 'babel-runtime/core-js/string/trim-start.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/trim-start'>;
+}
+declare module 'babel-runtime/core-js/string/trim.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/string/trim'>;
+}
+declare module 'babel-runtime/core-js/symbol.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol'>;
+}
+declare module 'babel-runtime/core-js/symbol/async-iterator.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/async-iterator'>;
+}
+declare module 'babel-runtime/core-js/symbol/for.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/for'>;
+}
+declare module 'babel-runtime/core-js/symbol/has-instance.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/has-instance'>;
+}
+declare module 'babel-runtime/core-js/symbol/is-concat-spreadable.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/is-concat-spreadable'>;
+}
+declare module 'babel-runtime/core-js/symbol/iterator.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/iterator'>;
+}
+declare module 'babel-runtime/core-js/symbol/key-for.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/key-for'>;
+}
+declare module 'babel-runtime/core-js/symbol/match.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/match'>;
+}
+declare module 'babel-runtime/core-js/symbol/observable.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/observable'>;
+}
+declare module 'babel-runtime/core-js/symbol/replace.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/replace'>;
+}
+declare module 'babel-runtime/core-js/symbol/search.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/search'>;
+}
+declare module 'babel-runtime/core-js/symbol/species.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/species'>;
+}
+declare module 'babel-runtime/core-js/symbol/split.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/split'>;
+}
+declare module 'babel-runtime/core-js/symbol/to-primitive.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/to-primitive'>;
+}
+declare module 'babel-runtime/core-js/symbol/to-string-tag.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/to-string-tag'>;
+}
+declare module 'babel-runtime/core-js/symbol/unscopables.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/symbol/unscopables'>;
+}
+declare module 'babel-runtime/core-js/system/global.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/system/global'>;
+}
+declare module 'babel-runtime/core-js/weak-map.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/weak-map'>;
+}
+declare module 'babel-runtime/core-js/weak-set.js' {
+  declare module.exports: $Exports<'babel-runtime/core-js/weak-set'>;
+}
+declare module 'babel-runtime/helpers/_async-generator-delegate.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_async-generator-delegate'>;
+}
+declare module 'babel-runtime/helpers/_async-generator.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_async-generator'>;
+}
+declare module 'babel-runtime/helpers/_async-iterator.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_async-iterator'>;
+}
+declare module 'babel-runtime/helpers/_async-to-generator.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_async-to-generator'>;
+}
+declare module 'babel-runtime/helpers/_class-call-check.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_class-call-check'>;
+}
+declare module 'babel-runtime/helpers/_create-class.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_create-class'>;
+}
+declare module 'babel-runtime/helpers/_defaults.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_defaults'>;
+}
+declare module 'babel-runtime/helpers/_define-enumerable-properties.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_define-enumerable-properties'>;
+}
+declare module 'babel-runtime/helpers/_define-property.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_define-property'>;
+}
+declare module 'babel-runtime/helpers/_extends.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_extends'>;
+}
+declare module 'babel-runtime/helpers/_get.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_get'>;
+}
+declare module 'babel-runtime/helpers/_inherits.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_inherits'>;
+}
+declare module 'babel-runtime/helpers/_instanceof.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_instanceof'>;
+}
+declare module 'babel-runtime/helpers/_interop-require-default.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_interop-require-default'>;
+}
+declare module 'babel-runtime/helpers/_interop-require-wildcard.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_interop-require-wildcard'>;
+}
+declare module 'babel-runtime/helpers/_jsx.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_jsx'>;
+}
+declare module 'babel-runtime/helpers/_new-arrow-check.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_new-arrow-check'>;
+}
+declare module 'babel-runtime/helpers/_object-destructuring-empty.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_object-destructuring-empty'>;
+}
+declare module 'babel-runtime/helpers/_object-without-properties.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_object-without-properties'>;
+}
+declare module 'babel-runtime/helpers/_possible-constructor-return.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_possible-constructor-return'>;
+}
+declare module 'babel-runtime/helpers/_self-global.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_self-global'>;
+}
+declare module 'babel-runtime/helpers/_set.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_set'>;
+}
+declare module 'babel-runtime/helpers/_sliced-to-array-loose.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_sliced-to-array-loose'>;
+}
+declare module 'babel-runtime/helpers/_sliced-to-array.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_sliced-to-array'>;
+}
+declare module 'babel-runtime/helpers/_tagged-template-literal-loose.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_tagged-template-literal-loose'>;
+}
+declare module 'babel-runtime/helpers/_tagged-template-literal.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_tagged-template-literal'>;
+}
+declare module 'babel-runtime/helpers/_temporal-ref.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_temporal-ref'>;
+}
+declare module 'babel-runtime/helpers/_temporal-undefined.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_temporal-undefined'>;
+}
+declare module 'babel-runtime/helpers/_to-array.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_to-array'>;
+}
+declare module 'babel-runtime/helpers/_to-consumable-array.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_to-consumable-array'>;
+}
+declare module 'babel-runtime/helpers/_typeof.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/_typeof'>;
+}
+declare module 'babel-runtime/helpers/async-generator-delegate.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/async-generator-delegate'>;
+}
+declare module 'babel-runtime/helpers/async-generator.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/async-generator'>;
+}
+declare module 'babel-runtime/helpers/async-iterator.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/async-iterator'>;
+}
+declare module 'babel-runtime/helpers/async-to-generator.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/async-to-generator'>;
+}
+declare module 'babel-runtime/helpers/asyncGenerator.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/asyncGenerator'>;
+}
+declare module 'babel-runtime/helpers/asyncGeneratorDelegate.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/asyncGeneratorDelegate'>;
+}
+declare module 'babel-runtime/helpers/asyncIterator.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/asyncIterator'>;
+}
+declare module 'babel-runtime/helpers/asyncToGenerator.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/asyncToGenerator'>;
+}
+declare module 'babel-runtime/helpers/class-call-check.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/class-call-check'>;
+}
+declare module 'babel-runtime/helpers/classCallCheck.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/classCallCheck'>;
+}
+declare module 'babel-runtime/helpers/create-class.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/create-class'>;
+}
+declare module 'babel-runtime/helpers/createClass.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/createClass'>;
+}
+declare module 'babel-runtime/helpers/defaults.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/defaults'>;
+}
+declare module 'babel-runtime/helpers/define-enumerable-properties.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/define-enumerable-properties'>;
+}
+declare module 'babel-runtime/helpers/define-property.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/define-property'>;
+}
+declare module 'babel-runtime/helpers/defineEnumerableProperties.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/defineEnumerableProperties'>;
+}
+declare module 'babel-runtime/helpers/defineProperty.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/defineProperty'>;
+}
+declare module 'babel-runtime/helpers/extends.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/extends'>;
+}
+declare module 'babel-runtime/helpers/get.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/get'>;
+}
+declare module 'babel-runtime/helpers/inherits.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/inherits'>;
+}
+declare module 'babel-runtime/helpers/instanceof.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/instanceof'>;
+}
+declare module 'babel-runtime/helpers/interop-require-default.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/interop-require-default'>;
+}
+declare module 'babel-runtime/helpers/interop-require-wildcard.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/interop-require-wildcard'>;
+}
+declare module 'babel-runtime/helpers/interopRequireDefault.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/interopRequireDefault'>;
+}
+declare module 'babel-runtime/helpers/interopRequireWildcard.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/interopRequireWildcard'>;
+}
+declare module 'babel-runtime/helpers/jsx.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/jsx'>;
+}
+declare module 'babel-runtime/helpers/new-arrow-check.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/new-arrow-check'>;
+}
+declare module 'babel-runtime/helpers/newArrowCheck.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/newArrowCheck'>;
+}
+declare module 'babel-runtime/helpers/object-destructuring-empty.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/object-destructuring-empty'>;
+}
+declare module 'babel-runtime/helpers/object-without-properties.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/object-without-properties'>;
+}
+declare module 'babel-runtime/helpers/objectDestructuringEmpty.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/objectDestructuringEmpty'>;
+}
+declare module 'babel-runtime/helpers/objectWithoutProperties.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/objectWithoutProperties'>;
+}
+declare module 'babel-runtime/helpers/possible-constructor-return.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/possible-constructor-return'>;
+}
+declare module 'babel-runtime/helpers/possibleConstructorReturn.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/possibleConstructorReturn'>;
+}
+declare module 'babel-runtime/helpers/self-global.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/self-global'>;
+}
+declare module 'babel-runtime/helpers/selfGlobal.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/selfGlobal'>;
+}
+declare module 'babel-runtime/helpers/set.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/set'>;
+}
+declare module 'babel-runtime/helpers/sliced-to-array-loose.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/sliced-to-array-loose'>;
+}
+declare module 'babel-runtime/helpers/sliced-to-array.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/sliced-to-array'>;
+}
+declare module 'babel-runtime/helpers/slicedToArray.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/slicedToArray'>;
+}
+declare module 'babel-runtime/helpers/slicedToArrayLoose.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/slicedToArrayLoose'>;
+}
+declare module 'babel-runtime/helpers/tagged-template-literal-loose.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/tagged-template-literal-loose'>;
+}
+declare module 'babel-runtime/helpers/tagged-template-literal.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/tagged-template-literal'>;
+}
+declare module 'babel-runtime/helpers/taggedTemplateLiteral.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/taggedTemplateLiteral'>;
+}
+declare module 'babel-runtime/helpers/taggedTemplateLiteralLoose.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/taggedTemplateLiteralLoose'>;
+}
+declare module 'babel-runtime/helpers/temporal-ref.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/temporal-ref'>;
+}
+declare module 'babel-runtime/helpers/temporal-undefined.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/temporal-undefined'>;
+}
+declare module 'babel-runtime/helpers/temporalRef.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/temporalRef'>;
+}
+declare module 'babel-runtime/helpers/temporalUndefined.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/temporalUndefined'>;
+}
+declare module 'babel-runtime/helpers/to-array.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/to-array'>;
+}
+declare module 'babel-runtime/helpers/to-consumable-array.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/to-consumable-array'>;
+}
+declare module 'babel-runtime/helpers/toArray.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/toArray'>;
+}
+declare module 'babel-runtime/helpers/toConsumableArray.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/toConsumableArray'>;
+}
+declare module 'babel-runtime/helpers/typeof.js' {
+  declare module.exports: $Exports<'babel-runtime/helpers/typeof'>;
+}
+declare module 'babel-runtime/regenerator/index.js' {
+  declare module.exports: $Exports<'babel-runtime/regenerator/index'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/chai_v3.5.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/chai_v3.5.x.js b/flow-typed/npm/chai_v3.5.x.js
new file mode 100644
index 0000000..50f3814
--- /dev/null
+++ b/flow-typed/npm/chai_v3.5.x.js
@@ -0,0 +1,212 @@
+// flow-typed signature: 777eee7cfcb8f77109f8148b4251bf2d
+// flow-typed version: 85e99047c5/chai_v3.5.x/flow_>=v0.24.0
+
+declare module "chai" {
+
+    declare type ExpectChain<T> = {
+        and: ExpectChain<T>,
+        at: ExpectChain<T>,
+        be: ExpectChain<T>,
+        been: ExpectChain<T>,
+        have: ExpectChain<T>,
+        has: ExpectChain<T>,
+        is: ExpectChain<T>,
+        of: ExpectChain<T>,
+        same: ExpectChain<T>,
+        that: ExpectChain<T>,
+        to: ExpectChain<T>,
+        which: ExpectChain<T>,
+        with: ExpectChain<T>,
+
+        not: ExpectChain<T>,
+        deep: ExpectChain<T>,
+        any: ExpectChain<T>,
+        all: ExpectChain<T>,
+
+        a: ExpectChain<T> & (type: string) => ExpectChain<T>,
+        an: ExpectChain<T> & (type: string) => ExpectChain<T>,
+
+        include: ExpectChain<T> & (value: mixed) => ExpectChain<T>,
+        includes: ExpectChain<T> & (value: mixed) => ExpectChain<T>,
+        contain: ExpectChain<T> & (value: mixed) => ExpectChain<T>,
+        contains: ExpectChain<T> & (value: mixed) => ExpectChain<T>,
+
+        eql: (value: T) => ExpectChain<T>,
+        equal: (value: T) => ExpectChain<T>,
+        equals: (value: T) => ExpectChain<T>,
+
+        above: (value: T & number) => ExpectChain<T>,
+        least: (value: T & number) => ExpectChain<T>,
+        below: (value: T & number) => ExpectChain<T>,
+        most: (value: T & number) => ExpectChain<T>,
+        within: (start: T & number, finish: T & number) => ExpectChain<T>,
+
+        instanceof: (constructor: mixed) => ExpectChain<T>,
+        property: (
+          <P>(name: string, value?: P) => ExpectChain<P>
+          & (name: string) => ExpectChain<mixed>
+        ),
+
+        length: (value: number) => ExpectChain<T> | ExpectChain<number>,
+        lengthOf: (value: number) => ExpectChain<T>,
+
+        match: (regex: RegExp) => ExpectChain<T>,
+        string: (string: string) => ExpectChain<T>,
+
+        key: (key: string) => ExpectChain<T>,
+        keys: (key: string | Array<string>, ...keys: Array<string>) => ExpectChain<T>,
+
+        throw: <E>(
+            err: Class<E> | Error | RegExp | string,                                                                                   
+            errMsgMatcher?: RegExp | string,                                                                                           
+            msg?: string) => ExpectChain<T>,
+
+        respondTo: (method: string) => ExpectChain<T>,
+        itself: ExpectChain<T>,
+
+        satisfy: (method: (value: T) => bool) => ExpectChain<T>,
+
+        closeTo: (expected: T & number, delta: number) => ExpectChain<T>,
+
+        members: (set: mixed) => ExpectChain<T>,
+        oneOf: (list: Array<T>) => ExpectChain<T>,
+
+        change: (obj: mixed, key: string) => ExpectChain<T>,
+        increase: (obj: mixed, key: string) => ExpectChain<T>,
+        decrease: (obj: mixed, key: string) => ExpectChain<T>,
+
+        // dirty-chai
+        ok: () => ExpectChain<T>,
+        true: () => ExpectChain<T>,
+        false: () => ExpectChain<T>,
+        null: () => ExpectChain<T>,
+        undefined: () => ExpectChain<T>,
+        exist: () => ExpectChain<T>,
+        empty: () => ExpectChain<T>,
+
+        // chai-immutable
+        size: (n: number) => ExpectChain<T>,
+
+        // sinon-chai
+        called: () => ExpectChain<T>,
+        callCount: (n: number) => ExpectChain<T>,
+        calledOnce: () => ExpectChain<T>,
+        calledBefore: (spy: mixed) => ExpectChain<T>,
+        calledAfter: (spy: mixed) => ExpectChain<T>,
+        calledWith: (...args: Array<mixed>) => ExpectChain<T>,
+        calledWithMatch: (...args: Array<mixed>) => ExpectChain<T>,
+        calledWithExactly: (...args: Array<mixed>) => ExpectChain<T>,
+
+        // chai-as-promised
+        eventually: ExpectChain<T>,
+        resolvedWith: (value: mixed) => Promise<mixed> & ExpectChain<T>,
+        resolved: () => Promise<mixed> & ExpectChain<T>,
+        rejectedWith: (value: mixed) => Promise<mixed> & ExpectChain<T>,
+        rejected: () => Promise<mixed> & ExpectChain<T>,
+        notify: (callback: () => mixed) => ExpectChain<T>,
+    };
+
+    declare function expect<T>(actual: T): ExpectChain<T>;
+
+    declare function use(plugin: (chai: Object, utils: Object) => void): void;
+
+    declare class assert {
+      static(expression: mixed, message?: string): void;
+      static fail(actual: mixed, expected: mixed, message?: string, operator?: string): void;
+
+      static isOk(object: mixed, message?: string): void;
+      static isNotOk(object: mixed, message?: string): void;
+
+      static equal(actual: mixed, expected: mixed, message?: string): void;
+      static notEqual(actual: mixed, expected: mixed, message?: string): void;
+
+      static strictEqual(act: mixed, exp: mixed, msg?: string): void;
+      static notStrictEqual(act: mixed, exp: mixed, msg?: string): void;
+
+      static deepEqual(act: mixed, exp: mixed, msg?: string): void;
+      static notDeepEqual(act: mixed, exp: mixed, msg?: string): void;
+
+      static isTrue(val: mixed, msg?: string): void;
+      static isNotTrue(val: mixed, msg?: string): void;
+      static isFalse(val: mixed, msg?: string): void;
+      static isNotFalse(val: mixed, msg?: string): void;
+
+      static isNull(val: mixed, msg?: string): void;
+      static isNotNull(val: mixed, msg?: string): void;
+
+      static isUndefined(val: mixed, msg?: string): void;
+      static isDefined(val: mixed, msg?: string): void;
+
+      static isNaN(val: mixed, msg?: string): void;
+      static isNotNaN(val: mixed, msg?: string): void;
+
+      static isAbove(val: number, abv: number, msg?: string): void;
+      static isBelow(val: number, blw: number, msg?: string): void;
+
+      static isAtMost(val: number, atmst: number, msg?: string): void;
+      static isAtLeast(val: number, atlst: number, msg?: string): void;
+
+      static isFunction(val: mixed, msg?: string): void;
+      static isNotFunction(val: mixed, msg?: string): void;
+
+      static isObject(val: mixed, msg?: string): void;
+      static isNotObject(val: mixed, msg?: string): void;
+
+      static isArray(val: mixed, msg?: string): void;
+      static isNotArray(val: mixed, msg?: string): void;
+
+      static isString(val: mixed, msg?: string): void;
+      static isNotString(val: mixed, msg?: string): void;
+
+      static isNumber(val: mixed, msg?: string): void;
+      static isNotNumber(val: mixed, msg?: string): void;
+
+      static isBoolean(val: mixed, msg?: string): void;
+      static isNotBoolean(val: mixed, msg?: string): void;
+
+      static typeOf(val: mixed, type: string, msg?: string): void;
+      static notTypeOf(val: mixed, type: string, msg?: string): void;
+
+      static instanceOf(val: mixed, constructor: Function, msg?: string): void;
+      static notInstanceOf(val: mixed, constructor: Function, msg?: string): void;
+
+      static include(exp: string, inc: mixed, msg?: string): void;
+      static include<T>(exp: Array<T>, inc: T, msg?: string): void;
+
+      static notInclude(exp: string, inc: mixed, msg?: string): void;
+      static notInclude<T>(exp: Array<T>, inc: T, msg?: string): void;
+
+      static match(exp: mixed, re: RegExp, msg?: string): void;
+      static notMatch(exp: mixed, re: RegExp, msg?: string): void;
+
+      static property(obj: Object, prop: string, msg?: string): void;
+      static notProperty(obj: Object, prop: string, msg?: string): void;
+      static deepProperty(obj: Object, prop: string, msg?: string): void;
+      static notDeepProperty(obj: Object, prop: string, msg?: string): void;
+
+      static propertyVal(obj: Object, prop: string, val: mixed, msg?: string): void;
+      static propertyNotVal(obj: Object, prop: string, val: mixed, msg?: string): void;
+
+      static deepPropertyVal(obj: Object, prop: string, val: mixed, msg?: string): void;
+      static deepPropertyNotVal(obj: Object, prop: string, val: mixed, msg?: string): void;
+
+      static lengthOf(exp: mixed, len: number, msg?: string): void;
+      
+      static throws<E>(
+          func: () => any,
+          err?: Class<E> | Error | RegExp | string,
+          errorMsgMatcher?: string | RegExp,
+          msg?: string): void;
+      static doesNotThrow<E>(
+          func: () => any,
+          err?: Class<E> | Error | RegExp | string,
+          errorMsgMatcher?: string | RegExp,
+          msg?: string): void;
+    }
+
+    declare var config: {
+        includeStack: boolean,
+        showDiff: boolean,
+        truncateThreshold: number
+    };
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/chromedriver_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/chromedriver_vx.x.x.js b/flow-typed/npm/chromedriver_vx.x.x.js
new file mode 100644
index 0000000..f418a7f
--- /dev/null
+++ b/flow-typed/npm/chromedriver_vx.x.x.js
@@ -0,0 +1,46 @@
+// flow-typed signature: 6f322a662fbecc89a3c82bde63934210
+// flow-typed version: <<STUB>>/chromedriver_v^2.21.2/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'chromedriver'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'chromedriver' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'chromedriver/install' {
+  declare module.exports: any;
+}
+
+declare module 'chromedriver/lib/chromedriver' {
+  declare module.exports: any;
+}
+
+declare module 'chromedriver/testInstall' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'chromedriver/install.js' {
+  declare module.exports: $Exports<'chromedriver/install'>;
+}
+declare module 'chromedriver/lib/chromedriver.js' {
+  declare module.exports: $Exports<'chromedriver/lib/chromedriver'>;
+}
+declare module 'chromedriver/testInstall.js' {
+  declare module.exports: $Exports<'chromedriver/testInstall'>;
+}


[10/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/showcase/progress.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/showcase/progress.js b/ios/playground/bundlejs/vue/showcase/progress.js
index db5df7e..24550ee 100644
--- a/ios/playground/bundlejs/vue/showcase/progress.js
+++ b/ios/playground/bundlejs/vue/showcase/progress.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(539)
+	__vue_exports__ = __webpack_require__(563)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(540)
+	var __vue_template__ = __webpack_require__(564)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/showcase/progress.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/showcase/progress.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,13 +255,13 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 539:
+/***/ 563:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -290,7 +297,7 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381)
+	    panel: __webpack_require__(399)
 	  },
 	  created: function created() {
 	    var me = this;
@@ -305,29 +312,29 @@
 
 /***/ },
 
-/***/ 540:
+/***/ 564:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "Basic",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    style: {
 	      width: _vm.fullW,
 	      borderColor: '#333',
 	      borderWidth: 1,
 	      borderStyle: 'solid'
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    style: {
 	      width: _vm.w,
 	      height: 60,
 	      backgroundColor: '#333'
 	    }
-	  })])])])
+	  })])])], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/style/index.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/style/index.js b/ios/playground/bundlejs/vue/style/index.js
index 44611ad..a3df2ff 100644
--- a/ios/playground/bundlejs/vue/style/index.js
+++ b/ios/playground/bundlejs/vue/style/index.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(541)
+	__vue_styles__.push(__webpack_require__(565)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(542)
+	__vue_exports__ = __webpack_require__(566)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(555)
+	var __vue_template__ = __webpack_require__(579)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/style/index.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/style/index.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-6706eadc"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,21 +91,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -113,22 +117,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -182,7 +190,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -227,16 +235,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -244,7 +252,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -252,27 +260,27 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 391:
+/***/ 409:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(392)
+	__vue_styles__.push(__webpack_require__(410)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(393)
+	__vue_exports__ = __webpack_require__(411)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(394)
+	var __vue_template__ = __webpack_require__(412)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -284,22 +292,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/tip.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/tip.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-6ec9a69c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 392:
+/***/ 410:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -345,7 +357,7 @@
 
 /***/ },
 
-/***/ 393:
+/***/ 411:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -367,21 +379,21 @@
 
 /***/ },
 
-/***/ 394:
+/***/ 412:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['tip', 'tip-' + _vm.type]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['tip-txt', 'tip-txt-' + _vm.type]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 541:
+/***/ 565:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -393,7 +405,7 @@
 
 /***/ },
 
-/***/ 542:
+/***/ 566:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -432,30 +444,30 @@
 
 	module.exports = {
 	  components: {
-	    panel: __webpack_require__(381),
-	    styleBox: __webpack_require__(543),
-	    styleFlex: __webpack_require__(551),
-	    styleItem: __webpack_require__(546)
+	    panel: __webpack_require__(399),
+	    styleBox: __webpack_require__(567),
+	    styleFlex: __webpack_require__(575),
+	    styleItem: __webpack_require__(570)
 	  }
 	};
 
 /***/ },
 
-/***/ 543:
+/***/ 567:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(544)
+	__vue_styles__.push(__webpack_require__(568)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(545)
+	__vue_exports__ = __webpack_require__(569)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(550)
+	var __vue_template__ = __webpack_require__(574)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -467,22 +479,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/style/style-box.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/style/style-box.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-319e5239"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 544:
+/***/ 568:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -506,7 +522,7 @@
 
 /***/ },
 
-/***/ 545:
+/***/ 569:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -575,29 +591,29 @@
 
 	module.exports = {
 	  components: {
-	    panel: __webpack_require__(381),
-	    tip: __webpack_require__(391),
-	    styleItem: __webpack_require__(546)
+	    panel: __webpack_require__(399),
+	    tip: __webpack_require__(409),
+	    styleItem: __webpack_require__(570)
 	  }
 	};
 
 /***/ },
 
-/***/ 546:
+/***/ 570:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(547)
+	__vue_styles__.push(__webpack_require__(571)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(548)
+	__vue_exports__ = __webpack_require__(572)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(549)
+	var __vue_template__ = __webpack_require__(573)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -609,22 +625,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/style/style-item.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/style/style-item.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-768350d6"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 547:
+/***/ 571:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -644,7 +664,7 @@
 
 /***/ },
 
-/***/ 548:
+/***/ 572:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -671,11 +691,11 @@
 
 /***/ },
 
-/***/ 549:
+/***/ 573:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('text', {
+	  return _c('text', {
 	    staticClass: ["item", "txt"],
 	    style: {
 	      backgroundColor: _vm.bgColor
@@ -689,33 +709,33 @@
 
 /***/ },
 
-/***/ 550:
+/***/ 574:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('panel', {
+	  return _c('div', [_c('panel', {
 	    attrs: {
 	      "title": "Box Model",
-	      "padding-body": "0",
+	      "paddingBody": "0",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["box"]
-	  }, ["Box"])]), _h('panel', {
+	  }, [_vm._v("Box")])]), _c('panel', {
 	    attrs: {
 	      "title": "border",
 	      "type": "primary"
 	    }
-	  }, [_h('panel', {
+	  }, [_c('panel', {
 	    attrs: {
 	      "title": "border-width",
 	      "type": ""
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "2px",
@@ -724,7 +744,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "10px",
@@ -733,7 +753,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderLeftWidth: "4px",
@@ -742,7 +762,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderBottomWidth: "4px",
@@ -751,16 +771,16 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "border-color",
 	      "type": ""
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "4px",
@@ -769,7 +789,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "4px",
@@ -778,7 +798,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "4px",
@@ -787,12 +807,12 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "border-style",
 	      "type": ""
 	    }
-	  }, [_h('tip', {
+	  }, [_c('tip', {
 	    staticStyle: {
 	      marginBottom: "10px"
 	    },
@@ -800,11 +820,11 @@
 	      "type": "warning",
 	      "value": "just support four edges"
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "4px",
@@ -813,7 +833,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "dashed",
 	      borderWidth: "4px",
@@ -823,7 +843,7 @@
 	      "value": "",
 	      "type": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "dotted",
 	      borderWidth: "4px",
@@ -832,16 +852,16 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  })])]), _h('panel', {
+	  })], 1)], 1), _c('panel', {
 	    attrs: {
 	      "title": "border-radius",
 	      "type": ""
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      width: "75px",
 	      borderRadius: "38px"
@@ -849,14 +869,14 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderRadius: "20px"
 	    },
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderTopLeftRadius: "20px",
 	      borderTopRightRadius: "20px"
@@ -864,7 +884,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderBottomLeftRadius: "20px",
 	      borderBottomRightRadius: "20px"
@@ -872,27 +892,27 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  })])])])])
+	  })], 1)])], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 551:
+/***/ 575:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(552)
+	__vue_styles__.push(__webpack_require__(576)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(553)
+	__vue_exports__ = __webpack_require__(577)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(554)
+	var __vue_template__ = __webpack_require__(578)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -904,22 +924,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/style/style-flex.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/style/style-flex.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-32f80d0a"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 552:
+/***/ 576:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -937,7 +961,7 @@
 
 /***/ },
 
-/***/ 553:
+/***/ 577:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -1062,239 +1086,239 @@
 
 	module.exports = {
 	  components: {
-	    panel: __webpack_require__(381),
-	    styleItem: __webpack_require__(546)
+	    panel: __webpack_require__(399),
+	    styleItem: __webpack_require__(570)
 	  }
 	};
 
 /***/ },
 
-/***/ 554:
+/***/ 578:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('panel', {
+	  return _c('div', [_c('panel', {
 	    attrs: {
 	      "title": "flex-direction",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "value": "row"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "type": "1"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      flexDirection: "column"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    attrs: {
 	      "value": "column"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "type": "1"
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "justify-content",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      justifyContent: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      justifyContent: "flex-end"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      justifyContent: "center"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      justifyContent: "space-between"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "align-items",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row", "row-align"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row", "row-align"],
 	    staticStyle: {
 	      alignItems: "flex-end"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row", "row-align"],
 	    staticStyle: {
 	      alignItems: "center"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row", "row-align"],
 	    staticStyle: {
 	      alignItems: "stretch"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "flex",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "value": "no flex"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
@@ -1302,26 +1326,26 @@
 	      "value": "no flex",
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "value": "no flex"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "value": "no flex"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -1330,7 +1354,7 @@
 	      "type": "1",
 	      "value": "flex:1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "2"
@@ -1338,12 +1362,12 @@
 	    attrs: {
 	      "value": "flex:2"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -1351,7 +1375,7 @@
 	    attrs: {
 	      "value": "flex:1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -1360,7 +1384,7 @@
 	      "type": "1",
 	      "value": "flex:1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -1368,12 +1392,12 @@
 	    attrs: {
 	      "value": "flex:1"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -1381,7 +1405,7 @@
 	    attrs: {
 	      "value": "flex:1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "2"
@@ -1390,7 +1414,7 @@
 	      "type": "1",
 	      "value": "flex:2"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "3"
@@ -1398,126 +1422,126 @@
 	    attrs: {
 	      "value": "flex:3"
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "flex-wrap",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      flexWrap: "wrap",
 	      backgroundColor: "grey",
 	      padding: "10"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    attrs: {
 	      "value": "1:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "2:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "3:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "4:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "5:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "6:wrap"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      flexWrap: "nowrap",
 	      backgroundColor: "grey",
 	      padding: "10"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    attrs: {
 	      "value": "1:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "2:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "3:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "4:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "5:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "6:nowrap"
 	    }
-	  })])])])
+	  })], 1)])], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 555:
+/***/ 579:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('style-box'), _h('style-flex'), _h('panel', {
+	  return _c('scroller', [_c('style-box'), _c('style-flex'), _c('panel', {
 	    attrs: {
 	      "title": "opacity",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      opacity: "1"
 	    },
 	    attrs: {
 	      "value": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      opacity: "0.9"
 	    },
 	    attrs: {
 	      "value": "0.9"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      opacity: "0.5"
 	    },
 	    attrs: {
 	      "value": "0.5"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      opacity: "0.2"
 	    },
 	    attrs: {
 	      "value": "0.2"
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "background-color",
 	      "type": "primary"
 	    }
-	  }, [_h('div', [_h('style-item', {
+	  }, [_c('div', [_c('style-item', {
 	    staticClass: ["bg-item"],
 	    staticStyle: {
 	      backgroundColor: "#333"
@@ -1525,7 +1549,7 @@
 	    attrs: {
 	      "value": "#333"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticClass: ["bg-item"],
 	    staticStyle: {
 	      backgroundColor: "#333333"
@@ -1533,7 +1557,7 @@
 	    attrs: {
 	      "value": "#333333"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticClass: ["bg-item"],
 	    staticStyle: {
 	      backgroundColor: "rgb(238, 162, 54)"
@@ -1541,7 +1565,7 @@
 	    attrs: {
 	      "value": "rgb()"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticClass: ["bg-item"],
 	    staticStyle: {
 	      backgroundColor: "rgba(238, 162, 54, 0.5)"
@@ -1549,7 +1573,7 @@
 	    attrs: {
 	      "value": "rgba()"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticClass: ["bg-item"],
 	    staticStyle: {
 	      backgroundColor: "red"
@@ -1557,7 +1581,7 @@
 	    attrs: {
 	      "value": "red"
 	    }
-	  })])])])
+	  })], 1)])], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/style/style-box.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/style/style-box.js b/ios/playground/bundlejs/vue/style/style-box.js
index f178901..3f4fc34 100644
--- a/ios/playground/bundlejs/vue/style/style-box.js
+++ b/ios/playground/bundlejs/vue/style/style-box.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(544)
+	__vue_styles__.push(__webpack_require__(568)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(545)
+	__vue_exports__ = __webpack_require__(569)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(550)
+	var __vue_template__ = __webpack_require__(574)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/style/style-box.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/style/style-box.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-319e5239"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,21 +91,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -113,22 +117,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -182,7 +190,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -227,16 +235,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -244,7 +252,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -252,27 +260,27 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 391:
+/***/ 409:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(392)
+	__vue_styles__.push(__webpack_require__(410)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(393)
+	__vue_exports__ = __webpack_require__(411)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(394)
+	var __vue_template__ = __webpack_require__(412)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -284,22 +292,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/tip.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/tip.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-6ec9a69c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 392:
+/***/ 410:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -345,7 +357,7 @@
 
 /***/ },
 
-/***/ 393:
+/***/ 411:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -367,21 +379,21 @@
 
 /***/ },
 
-/***/ 394:
+/***/ 412:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['tip', 'tip-' + _vm.type]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['tip-txt', 'tip-txt-' + _vm.type]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 544:
+/***/ 568:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -405,7 +417,7 @@
 
 /***/ },
 
-/***/ 545:
+/***/ 569:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -474,29 +486,29 @@
 
 	module.exports = {
 	  components: {
-	    panel: __webpack_require__(381),
-	    tip: __webpack_require__(391),
-	    styleItem: __webpack_require__(546)
+	    panel: __webpack_require__(399),
+	    tip: __webpack_require__(409),
+	    styleItem: __webpack_require__(570)
 	  }
 	};
 
 /***/ },
 
-/***/ 546:
+/***/ 570:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(547)
+	__vue_styles__.push(__webpack_require__(571)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(548)
+	__vue_exports__ = __webpack_require__(572)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(549)
+	var __vue_template__ = __webpack_require__(573)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -508,22 +520,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/style/style-item.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/style/style-item.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-768350d6"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 547:
+/***/ 571:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -543,7 +559,7 @@
 
 /***/ },
 
-/***/ 548:
+/***/ 572:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -570,11 +586,11 @@
 
 /***/ },
 
-/***/ 549:
+/***/ 573:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('text', {
+	  return _c('text', {
 	    staticClass: ["item", "txt"],
 	    style: {
 	      backgroundColor: _vm.bgColor
@@ -588,33 +604,33 @@
 
 /***/ },
 
-/***/ 550:
+/***/ 574:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('panel', {
+	  return _c('div', [_c('panel', {
 	    attrs: {
 	      "title": "Box Model",
-	      "padding-body": "0",
+	      "paddingBody": "0",
 	      "type": "primary"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["box"]
-	  }, ["Box"])]), _h('panel', {
+	  }, [_vm._v("Box")])]), _c('panel', {
 	    attrs: {
 	      "title": "border",
 	      "type": "primary"
 	    }
-	  }, [_h('panel', {
+	  }, [_c('panel', {
 	    attrs: {
 	      "title": "border-width",
 	      "type": ""
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "2px",
@@ -623,7 +639,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "10px",
@@ -632,7 +648,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderLeftWidth: "4px",
@@ -641,7 +657,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderBottomWidth: "4px",
@@ -650,16 +666,16 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "border-color",
 	      "type": ""
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "4px",
@@ -668,7 +684,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "4px",
@@ -677,7 +693,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "4px",
@@ -686,12 +702,12 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "border-style",
 	      "type": ""
 	    }
-	  }, [_h('tip', {
+	  }, [_c('tip', {
 	    staticStyle: {
 	      marginBottom: "10px"
 	    },
@@ -699,11 +715,11 @@
 	      "type": "warning",
 	      "value": "just support four edges"
 	    }
-	  }), _h('div', {
+	  }), _c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      borderStyle: "solid",
 	      borderWidth: "4px",
@@ -712,7 +728,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "dashed",
 	      borderWidth: "4px",
@@ -722,7 +738,7 @@
 	      "value": "",
 	      "type": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderStyle: "dotted",
 	      borderWidth: "4px",
@@ -731,16 +747,16 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  })])]), _h('panel', {
+	  })], 1)], 1), _c('panel', {
 	    attrs: {
 	      "title": "border-radius",
 	      "type": ""
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      width: "75px",
 	      borderRadius: "38px"
@@ -748,14 +764,14 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderRadius: "20px"
 	    },
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderTopLeftRadius: "20px",
 	      borderTopRightRadius: "20px"
@@ -763,7 +779,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      borderBottomLeftRadius: "20px",
 	      borderBottomRightRadius: "20px"
@@ -771,7 +787,7 @@
 	    attrs: {
 	      "value": ""
 	    }
-	  })])])])])
+	  })], 1)])], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/style/style-flex.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/style/style-flex.js b/ios/playground/bundlejs/vue/style/style-flex.js
index 96ea35f..bf6aebf 100644
--- a/ios/playground/bundlejs/vue/style/style-flex.js
+++ b/ios/playground/bundlejs/vue/style/style-flex.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(552)
+	__vue_styles__.push(__webpack_require__(576)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(553)
+	__vue_exports__ = __webpack_require__(577)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(554)
+	var __vue_template__ = __webpack_require__(578)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/style/style-flex.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/style/style-flex.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-32f80d0a"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,21 +91,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -113,22 +117,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -182,7 +190,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -227,16 +235,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -244,7 +252,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -252,27 +260,27 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 546:
+/***/ 570:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(547)
+	__vue_styles__.push(__webpack_require__(571)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(548)
+	__vue_exports__ = __webpack_require__(572)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(549)
+	var __vue_template__ = __webpack_require__(573)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -284,22 +292,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/style/style-item.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/style/style-item.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-768350d6"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 547:
+/***/ 571:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -319,7 +331,7 @@
 
 /***/ },
 
-/***/ 548:
+/***/ 572:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -346,11 +358,11 @@
 
 /***/ },
 
-/***/ 549:
+/***/ 573:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('text', {
+	  return _c('text', {
 	    staticClass: ["item", "txt"],
 	    style: {
 	      backgroundColor: _vm.bgColor
@@ -364,7 +376,7 @@
 
 /***/ },
 
-/***/ 552:
+/***/ 576:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -382,7 +394,7 @@
 
 /***/ },
 
-/***/ 553:
+/***/ 577:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -507,239 +519,239 @@
 
 	module.exports = {
 	  components: {
-	    panel: __webpack_require__(381),
-	    styleItem: __webpack_require__(546)
+	    panel: __webpack_require__(399),
+	    styleItem: __webpack_require__(570)
 	  }
 	};
 
 /***/ },
 
-/***/ 554:
+/***/ 578:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('panel', {
+	  return _c('div', [_c('panel', {
 	    attrs: {
 	      "title": "flex-direction",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      flexDirection: "row"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "value": "row"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "type": "1"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      flexDirection: "column"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    attrs: {
 	      "value": "column"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "type": "1"
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "justify-content",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      justifyContent: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      justifyContent: "flex-end"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      justifyContent: "center"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      justifyContent: "space-between"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "align-items",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row", "row-align"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row", "row-align"],
 	    staticStyle: {
 	      alignItems: "flex-end"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row", "row-align"],
 	    staticStyle: {
 	      alignItems: "center"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row", "row-align"],
 	    staticStyle: {
 	      alignItems: "stretch"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "flex",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "value": "no flex"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
@@ -747,26 +759,26 @@
 	      "value": "no flex",
 	      "type": "1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "value": "no flex"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0"
 	    },
 	    attrs: {
 	      "value": "no flex"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -775,7 +787,7 @@
 	      "type": "1",
 	      "value": "flex:1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "2"
@@ -783,12 +795,12 @@
 	    attrs: {
 	      "value": "flex:2"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -796,7 +808,7 @@
 	    attrs: {
 	      "value": "flex:1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -805,7 +817,7 @@
 	      "type": "1",
 	      "value": "flex:1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -813,12 +825,12 @@
 	    attrs: {
 	      "value": "flex:1"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      alignItems: "flex-start"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "1"
@@ -826,7 +838,7 @@
 	    attrs: {
 	      "value": "flex:1"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "2"
@@ -835,7 +847,7 @@
 	      "type": "1",
 	      "value": "flex:2"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    staticStyle: {
 	      marginRight: "0",
 	      flex: "3"
@@ -843,74 +855,74 @@
 	    attrs: {
 	      "value": "flex:3"
 	    }
-	  })])]), _h('panel', {
+	  })], 1)]), _c('panel', {
 	    attrs: {
 	      "title": "flex-wrap",
 	      "type": "primary"
 	    }
-	  }, [_h('div', {
+	  }, [_c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      flexWrap: "wrap",
 	      backgroundColor: "grey",
 	      padding: "10"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    attrs: {
 	      "value": "1:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "2:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "3:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "4:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "5:wrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "6:wrap"
 	    }
-	  })]), _h('div', {
+	  })], 1), _c('div', {
 	    staticClass: ["row"],
 	    staticStyle: {
 	      flexWrap: "nowrap",
 	      backgroundColor: "grey",
 	      padding: "10"
 	    }
-	  }, [_h('style-item', {
+	  }, [_c('style-item', {
 	    attrs: {
 	      "value": "1:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "2:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "3:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "4:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "5:nowrap"
 	    }
-	  }), _h('style-item', {
+	  }), _c('style-item', {
 	    attrs: {
 	      "value": "6:nowrap"
 	    }
-	  })])])])
+	  })], 1)])], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/style/style-item.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/style/style-item.js b/ios/playground/bundlejs/vue/style/style-item.js
index f579b2c..9513938 100644
--- a/ios/playground/bundlejs/vue/style/style-item.js
+++ b/ios/playground/bundlejs/vue/style/style-item.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(547)
+	__vue_styles__.push(__webpack_require__(571)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(548)
+	__vue_exports__ = __webpack_require__(572)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(549)
+	var __vue_template__ = __webpack_require__(573)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/style/style-item.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/style/style-item.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-768350d6"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 547:
+/***/ 571:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -107,7 +111,7 @@
 
 /***/ },
 
-/***/ 548:
+/***/ 572:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -134,11 +138,11 @@
 
 /***/ },
 
-/***/ 549:
+/***/ 573:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('text', {
+	  return _c('text', {
 	    staticClass: ["item", "txt"],
 	    style: {
 	      backgroundColor: _vm.bgColor

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/hello-world-1.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/hello-world-1.js b/ios/playground/bundlejs/vue/syntax/hello-world-1.js
index 48a2ee9..0736357 100644
--- a/ios/playground/bundlejs/vue/syntax/hello-world-1.js
+++ b/ios/playground/bundlejs/vue/syntax/hello-world-1.js
@@ -51,7 +51,7 @@
 	var __vue_styles__ = []
 
 	/* template */
-	var __vue_template__ = __webpack_require__(559)
+	var __vue_template__ = __webpack_require__(583)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -63,15 +63,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/hello-world-1.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/hello-world-1.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -80,13 +83,13 @@
 
 /***/ },
 
-/***/ 559:
+/***/ 583:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
 	  return _vm._m(0)
 	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', ["Hello World"])])
+	  return _c('div', [_c('text', [_vm._v("Hello World")])])
 	}]}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/hello-world-2.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/hello-world-2.js b/ios/playground/bundlejs/vue/syntax/hello-world-2.js
index cabd90c..2c64fc4 100644
--- a/ios/playground/bundlejs/vue/syntax/hello-world-2.js
+++ b/ios/playground/bundlejs/vue/syntax/hello-world-2.js
@@ -51,7 +51,7 @@
 	var __vue_styles__ = []
 
 	/* template */
-	var __vue_template__ = __webpack_require__(560)
+	var __vue_template__ = __webpack_require__(584)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -63,15 +63,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/hello-world-2.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/hello-world-2.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -80,18 +83,18 @@
 
 /***/ },
 
-/***/ 560:
+/***/ 584:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
 	  return _vm._m(0)
 	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticStyle: {
 	      alignItems: "center",
 	      marginTop: "120px"
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticStyle: {
 	      width: "360px",
 	      height: "82px"
@@ -99,11 +102,11 @@
 	    attrs: {
 	      "src": "https://alibaba.github.io/weex/img/weex_logo_blue@3x.png"
 	    }
-	  }), _h('text', {
+	  }), _c('text', {
 	    staticStyle: {
 	      fontSize: "48px"
 	    }
-	  }, ["Hello World"])])
+	  }, [_vm._v("Hello World")])])
 	}]}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/hello-world-3.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/hello-world-3.js b/ios/playground/bundlejs/vue/syntax/hello-world-3.js
index 32fe52f..68944d9 100644
--- a/ios/playground/bundlejs/vue/syntax/hello-world-3.js
+++ b/ios/playground/bundlejs/vue/syntax/hello-world-3.js
@@ -51,11 +51,11 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(561)
+	__vue_styles__.push(__webpack_require__(585)
 	)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(562)
+	var __vue_template__ = __webpack_require__(586)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -67,15 +67,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/hello-world-3.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/hello-world-3.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-7fcbe259"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -84,7 +88,7 @@
 
 /***/ },
 
-/***/ 561:
+/***/ 585:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -103,22 +107,22 @@
 
 /***/ },
 
-/***/ 562:
+/***/ 586:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
 	  return _vm._m(0)
 	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["wrapper"]
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["logo"],
 	    attrs: {
 	      "src": "https://alibaba.github.io/weex/img/weex_logo_blue@3x.png"
 	    }
-	  }), _h('text', {
+	  }), _c('text', {
 	    staticClass: ["title"]
-	  }, ["Hello World"])])
+	  }, [_vm._v("Hello World")])])
 	}]}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/hello-world-4.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/hello-world-4.js b/ios/playground/bundlejs/vue/syntax/hello-world-4.js
index de35b71..739131c 100644
--- a/ios/playground/bundlejs/vue/syntax/hello-world-4.js
+++ b/ios/playground/bundlejs/vue/syntax/hello-world-4.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(563)
+	__vue_styles__.push(__webpack_require__(587)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(564)
+	__vue_exports__ = __webpack_require__(588)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(565)
+	var __vue_template__ = __webpack_require__(589)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/hello-world-4.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/hello-world-4.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-7fd9f9da"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 563:
+/***/ 587:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -106,7 +110,7 @@
 
 /***/ },
 
-/***/ 564:
+/***/ 588:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -145,20 +149,20 @@
 
 /***/ },
 
-/***/ 565:
+/***/ 589:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["wrapper"]
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["logo"],
 	    attrs: {
 	      "src": _vm.logoUrl
 	    }
-	  }), _h('text', {
+	  }), _c('text', {
 	    staticClass: ["title"]
-	  }, ["Hello " + _vm._s(_vm.target)])])
+	  }, [_vm._v("Hello " + _vm._s(_vm.target))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/hello-world-5.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/hello-world-5.js b/ios/playground/bundlejs/vue/syntax/hello-world-5.js
index 456900d..d405ec5 100644
--- a/ios/playground/bundlejs/vue/syntax/hello-world-5.js
+++ b/ios/playground/bundlejs/vue/syntax/hello-world-5.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(566)
+	__vue_styles__.push(__webpack_require__(590)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(567)
+	__vue_exports__ = __webpack_require__(591)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(568)
+	var __vue_template__ = __webpack_require__(592)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/hello-world-5.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/hello-world-5.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-7fe8115b"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 566:
+/***/ 590:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -106,7 +110,7 @@
 
 /***/ },
 
-/***/ 567:
+/***/ 591:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -148,23 +152,23 @@
 
 /***/ },
 
-/***/ 568:
+/***/ 592:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["wrapper"],
 	    on: {
 	      "click": _vm.update
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["logo"],
 	    attrs: {
 	      "src": _vm.logoUrl
 	    }
-	  }), _h('text', {
+	  }), _c('text', {
 	    staticClass: ["title"]
-	  }, ["Hello " + _vm._s(_vm.target)])])
+	  }, [_vm._v("Hello " + _vm._s(_vm.target))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/hello-world.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/hello-world.js b/ios/playground/bundlejs/vue/syntax/hello-world.js
index 2909096..ce8af36 100644
--- a/ios/playground/bundlejs/vue/syntax/hello-world.js
+++ b/ios/playground/bundlejs/vue/syntax/hello-world.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(556)
+	__vue_styles__.push(__webpack_require__(580)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(557)
+	__vue_exports__ = __webpack_require__(581)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(558)
+	var __vue_template__ = __webpack_require__(582)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/hello-world.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/hello-world.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-0311aa73"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 556:
+/***/ 580:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -106,7 +110,7 @@
 
 /***/ },
 
-/***/ 557:
+/***/ 581:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -158,23 +162,23 @@
 
 /***/ },
 
-/***/ 558:
+/***/ 582:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["wrapper"],
 	    on: {
 	      "click": _vm.update
 	    }
-	  }, [_h('image', {
+	  }, [_c('image', {
 	    staticClass: ["logo"],
 	    attrs: {
 	      "src": _vm.logoUrl
 	    }
-	  }), _h('text', {
+	  }), _c('text', {
 	    staticClass: ["title"]
-	  }, ["Hello " + _vm._s(_vm.target)])])
+	  }, [_vm._v("Hello " + _vm._s(_vm.target))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 


[09/50] [abbrv] incubator-weex git commit: * [ios] update bundle js in ios playground.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/script-component.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/script-component.js b/ios/playground/bundlejs/vue/syntax/script-component.js
index 5502c08..c95172d 100644
--- a/ios/playground/bundlejs/vue/syntax/script-component.js
+++ b/ios/playground/bundlejs/vue/syntax/script-component.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(569)
+	__vue_exports__ = __webpack_require__(593)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(574)
+	var __vue_template__ = __webpack_require__(598)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/script-component.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/script-component.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,7 +86,7 @@
 
 /***/ },
 
-/***/ 569:
+/***/ 593:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -111,27 +114,27 @@
 	    };
 	  },
 	  components: {
-	    item: __webpack_require__(570)
+	    item: __webpack_require__(594)
 	  }
 	};
 
 /***/ },
 
-/***/ 570:
+/***/ 594:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(571)
+	__vue_styles__.push(__webpack_require__(595)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(572)
+	__vue_exports__ = __webpack_require__(596)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(573)
+	var __vue_template__ = __webpack_require__(597)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -143,22 +146,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/include/sub.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/include/sub.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-7967da16"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 571:
+/***/ 595:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -170,7 +177,7 @@
 
 /***/ },
 
-/***/ 572:
+/***/ 596:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -193,29 +200,34 @@
 
 /***/ },
 
-/***/ 573:
+/***/ 597:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('text', {
+	  return _c('text', {
 	    staticClass: ["item-txt"]
-	  }, [_vm._s(_vm.title)])
+	  }, [_vm._v(_vm._s(_vm.title))])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 574:
+/***/ 598:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('list', [_vm._l((_vm.items), function(item) {
-	    return _h('cell', [_h('text', [_vm._s(item.title)]), _h('item', {
+	  return _c('list', _vm._l((_vm.items), function(item) {
+	    return _c('cell', {
+	      appendAsTree: true,
+	      attrs: {
+	        "append": "tree"
+	      }
+	    }, [_c('text', [_vm._v(_vm._s(item.title))]), _c('item', {
 	      attrs: {
 	        "title": 'a'
 	      }
-	    })])
-	  })])
+	    })], 1)
+	  }))
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/script-data.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/script-data.js b/ios/playground/bundlejs/vue/syntax/script-data.js
index 6f35add..85a3e55 100644
--- a/ios/playground/bundlejs/vue/syntax/script-data.js
+++ b/ios/playground/bundlejs/vue/syntax/script-data.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(575)
+	__vue_styles__.push(__webpack_require__(599)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(576)
+	__vue_exports__ = __webpack_require__(600)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(577)
+	var __vue_template__ = __webpack_require__(601)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/script-data.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/script-data.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-28c17c88"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 575:
+/***/ 599:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -98,7 +102,7 @@
 
 /***/ },
 
-/***/ 576:
+/***/ 600:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -189,23 +193,23 @@
 
 /***/ },
 
-/***/ 577:
+/***/ 601:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    on: {
 	      "click": _vm.update
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["title"]
-	  }, [_vm._s(_vm.firstName)]), _h('text', {
+	  }, [_vm._v(_vm._s(_vm.firstName))]), _c('text', {
 	    staticClass: ["title"]
-	  }, [_vm._s(_vm.lastName)]), _h('text', {
+	  }, [_vm._v(_vm._s(_vm.lastName))]), _c('text', {
 	    staticClass: ["title"]
-	  }, [_vm._s(_vm.fullName)]), _h('text', {
+	  }, [_vm._v(_vm._s(_vm.fullName))]), _c('text', {
 	    staticClass: ["title"]
-	  }, [_vm._s(_vm.today)])])
+	  }, [_vm._v(_vm._s(_vm.today))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/script-events.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/script-events.js b/ios/playground/bundlejs/vue/syntax/script-events.js
index b16b272..51bb4e1 100644
--- a/ios/playground/bundlejs/vue/syntax/script-events.js
+++ b/ios/playground/bundlejs/vue/syntax/script-events.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(578)
+	__vue_styles__.push(__webpack_require__(602)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(579)
+	__vue_exports__ = __webpack_require__(603)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(580)
+	var __vue_template__ = __webpack_require__(604)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/script-events.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/script-events.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-2ce364f7"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 578:
+/***/ 602:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -98,7 +102,7 @@
 
 /***/ },
 
-/***/ 579:
+/***/ 603:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -144,15 +148,15 @@
 
 /***/ },
 
-/***/ 580:
+/***/ 604:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_vm._l((_vm.list), function(value) {
-	    return _h('text', {
+	  return _c('div', _vm._l((_vm.list), function(value) {
+	    return _c('text', {
 	      staticClass: ["title"]
-	    }, [_vm._s(value)])
-	  })])
+	    }, [_vm._v(_vm._s(value))])
+	  }))
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/script-instance.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/script-instance.js b/ios/playground/bundlejs/vue/syntax/script-instance.js
index 489bba9..c8a3f9a 100644
--- a/ios/playground/bundlejs/vue/syntax/script-instance.js
+++ b/ios/playground/bundlejs/vue/syntax/script-instance.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(581)
+	__vue_styles__.push(__webpack_require__(605)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(582)
+	__vue_exports__ = __webpack_require__(606)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(583)
+	var __vue_template__ = __webpack_require__(607)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/script-instance.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/script-instance.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-6a09a0f3"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 581:
+/***/ 605:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -98,7 +102,7 @@
 
 /***/ },
 
-/***/ 582:
+/***/ 606:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -160,7 +164,7 @@
 	      // this.$refs['sub'].$emit('custom')
 
 	      // // find element
-	      // var dom = __weex_require_module__('dom')
+	      // var dom = weex.requireModule('dom')
 	      // dom.scrollToElement(this.$el('title'), {offset: 0})
 	    }
 	  },
@@ -176,18 +180,18 @@
 
 /***/ },
 
-/***/ 583:
+/***/ 607:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
 	  return _vm._m(0)
 	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', {
+	  return _c('div', [_c('text', {
 	    staticClass: ["title"],
 	    attrs: {
 	      "id": "title"
 	    }
-	  }, ["Please check out the source code."])])
+	  }, [_vm._v("Please check out the source code.")])])
 	}]}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/script-lifecycle.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/script-lifecycle.js b/ios/playground/bundlejs/vue/syntax/script-lifecycle.js
index f753203..f2c8ecd 100644
--- a/ios/playground/bundlejs/vue/syntax/script-lifecycle.js
+++ b/ios/playground/bundlejs/vue/syntax/script-lifecycle.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(584)
+	__vue_styles__.push(__webpack_require__(608)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(585)
+	__vue_exports__ = __webpack_require__(609)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(586)
+	var __vue_template__ = __webpack_require__(610)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/script-lifecycle.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/script-lifecycle.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4a5eb17c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 584:
+/***/ 608:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -98,7 +102,7 @@
 
 /***/ },
 
-/***/ 585:
+/***/ 609:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -138,15 +142,15 @@
 
 /***/ },
 
-/***/ 586:
+/***/ 610:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_vm._l((_vm.list), function(value) {
-	    return _h('text', {
+	  return _c('div', _vm._l((_vm.list), function(value) {
+	    return _c('text', {
 	      staticClass: ["title"]
-	    }, [_vm._s(value)])
-	  })])
+	    }, [_vm._v(_vm._s(value))])
+	  }))
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/script-module.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/script-module.js b/ios/playground/bundlejs/vue/syntax/script-module.js
index 5d6388d..2e7b024 100644
--- a/ios/playground/bundlejs/vue/syntax/script-module.js
+++ b/ios/playground/bundlejs/vue/syntax/script-module.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(587)
+	__vue_styles__.push(__webpack_require__(611)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(588)
+	__vue_exports__ = __webpack_require__(612)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(589)
+	var __vue_template__ = __webpack_require__(613)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/script-module.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/script-module.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-85636e6c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 587:
+/***/ 611:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -103,7 +107,7 @@
 
 /***/ },
 
-/***/ 588:
+/***/ 612:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -124,7 +128,7 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
+	var modal = weex.requireModule('modal');
 	module.exports = {
 	  methods: {
 	    test: function test() {
@@ -138,16 +142,16 @@
 
 /***/ },
 
-/***/ 589:
+/***/ 613:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', {
+	  return _c('div', [_c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.test
 	    }
-	  }, ["Toast!"])])
+	  }, [_vm._v("Toast!")])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/script-options.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/script-options.js b/ios/playground/bundlejs/vue/syntax/script-options.js
index e028972..abb71a2 100644
--- a/ios/playground/bundlejs/vue/syntax/script-options.js
+++ b/ios/playground/bundlejs/vue/syntax/script-options.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(590)
+	__vue_styles__.push(__webpack_require__(614)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(591)
+	__vue_exports__ = __webpack_require__(615)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(592)
+	var __vue_template__ = __webpack_require__(616)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/script-options.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/script-options.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-22006d30"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 590:
+/***/ 614:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -98,7 +102,7 @@
 
 /***/ },
 
-/***/ 591:
+/***/ 615:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -165,15 +169,15 @@
 
 /***/ },
 
-/***/ 592:
+/***/ 616:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
 	  return _vm._m(0)
 	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', {
+	  return _c('div', [_c('text', {
 	    staticClass: ["title"]
-	  }, ["Please check out the source code."])])
+	  }, [_vm._v("Please check out the source code.")])])
 	}]}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/template-class.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/template-class.js b/ios/playground/bundlejs/vue/syntax/template-class.js
index 32ac703..27ce4dc 100644
--- a/ios/playground/bundlejs/vue/syntax/template-class.js
+++ b/ios/playground/bundlejs/vue/syntax/template-class.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(593)
+	__vue_styles__.push(__webpack_require__(617)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(594)
+	__vue_exports__ = __webpack_require__(618)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(595)
+	var __vue_template__ = __webpack_require__(619)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/template-class.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/template-class.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-3f026779"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 593:
+/***/ 617:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -101,7 +105,7 @@
 
 /***/ },
 
-/***/ 594:
+/***/ 618:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -138,21 +142,21 @@
 
 /***/ },
 
-/***/ 595:
+/***/ 619:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    on: {
 	      "click": _vm.update
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticClass: ["a"]
-	  }, ["Hello"]), _h('text', {
+	  }, [_vm._v("Hello")]), _c('text', {
 	    staticClass: ["b"]
-	  }, ["Hello"]), _h('text', {
+	  }, [_vm._v("Hello")]), _c('text', {
 	    class: ['a', _vm.x]
-	  }, ["Hello"])])
+	  }, [_vm._v("Hello")])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/template-content.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/template-content.js b/ios/playground/bundlejs/vue/syntax/template-content.js
index 506e51a..fcaa1bf 100644
--- a/ios/playground/bundlejs/vue/syntax/template-content.js
+++ b/ios/playground/bundlejs/vue/syntax/template-content.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(596)
+	__vue_exports__ = __webpack_require__(620)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(600)
+	var __vue_template__ = __webpack_require__(624)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/template-content.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/template-content.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,7 +86,7 @@
 
 /***/ },
 
-/***/ 596:
+/***/ 620:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -104,24 +107,24 @@
 
 	module.exports = {
 	  components: {
-	    btn: __webpack_require__(597)
+	    btn: __webpack_require__(621)
 	  }
 	};
 
 /***/ },
 
-/***/ 597:
+/***/ 621:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(598)
+	__vue_styles__.push(__webpack_require__(622)
 	)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(599)
+	var __vue_template__ = __webpack_require__(623)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -133,22 +136,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/include/btn.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/include/btn.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-3ef66511"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 598:
+/***/ 622:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -164,23 +171,23 @@
 
 /***/ },
 
-/***/ 599:
+/***/ 623:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    staticClass: ["btn"]
-	  }, [_vm._t("default")])
+	  }, [_vm._t("default")], 2)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 600:
+/***/ 624:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('btn', [_h('text', ["Click!"])])])
+	  return _c('div', [_c('btn', [_c('text', [_vm._v("Click!")])])], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/template-event.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/template-event.js b/ios/playground/bundlejs/vue/syntax/template-event.js
index 7e0a163..4a7fac2 100644
--- a/ios/playground/bundlejs/vue/syntax/template-event.js
+++ b/ios/playground/bundlejs/vue/syntax/template-event.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(601)
+	__vue_styles__.push(__webpack_require__(625)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(602)
+	__vue_exports__ = __webpack_require__(626)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(603)
+	var __vue_template__ = __webpack_require__(627)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/template-event.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/template-event.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4175cf9b"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 601:
+/***/ 625:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -109,7 +113,7 @@
 
 /***/ },
 
-/***/ 602:
+/***/ 626:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -156,39 +160,39 @@
 
 /***/ },
 
-/***/ 603:
+/***/ 627:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', {
+	  return _c('div', [_c('text', {
 	    staticClass: ["title"]
-	  }, ["Hello " + _vm._s(_vm.name)]), _h('text', {
+	  }, [_vm._v("Hello " + _vm._s(_vm.name))]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.update
 	    }
-	  }, ["Update 1"]), _h('text', {
+	  }, [_vm._v("Update 1")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": function($event) {
 	        _vm.update($event)
 	      }
 	    }
-	  }, ["Update 1"]), _h('text', {
+	  }, [_vm._v("Update 1")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": function($event) {
 	        _vm.setName(_vm.temp, $event)
 	      }
 	    }
-	  }, ["Update 2"]), _h('text', {
+	  }, [_vm._v("Update 2")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": function($event) {
 	        _vm.setName('John')
 	      }
 	    }
-	  }, ["Update 3"])])
+	  }, [_vm._v("Update 3")])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/template-if.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/template-if.js b/ios/playground/bundlejs/vue/syntax/template-if.js
index 0d4a4c7..117952d 100644
--- a/ios/playground/bundlejs/vue/syntax/template-if.js
+++ b/ios/playground/bundlejs/vue/syntax/template-if.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(604)
+	__vue_styles__.push(__webpack_require__(628)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(605)
+	__vue_exports__ = __webpack_require__(629)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(606)
+	var __vue_template__ = __webpack_require__(630)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/template-if.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/template-if.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-1437c26c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 604:
+/***/ 628:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -106,7 +110,7 @@
 
 /***/ },
 
-/***/ 605:
+/***/ 629:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -143,20 +147,20 @@
 
 /***/ },
 
-/***/ 606:
+/***/ 630:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', {
+	  return _c('div', [_c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.toggle
 	    }
-	  }, ["Toggle"]), (_vm.flag) ? _h('text', {
+	  }, [_vm._v("Toggle")]), (_vm.flag) ? _c('text', {
 	    staticClass: ["title"]
-	  }, ["I'm ON"]) : _vm._e(), (!_vm.flag) ? _h('text', {
+	  }, [_vm._v("I'm ON")]) : _vm._e(), (!_vm.flag) ? _c('text', {
 	    staticClass: ["title"]
-	  }, ["I'm Off"]) : _vm._e()])
+	  }, [_vm._v("I'm Off")]) : _vm._e()])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/template-repeat-update.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/template-repeat-update.js b/ios/playground/bundlejs/vue/syntax/template-repeat-update.js
index b78e7ac..1aead31 100644
--- a/ios/playground/bundlejs/vue/syntax/template-repeat-update.js
+++ b/ios/playground/bundlejs/vue/syntax/template-repeat-update.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(610)
+	__vue_styles__.push(__webpack_require__(634)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(611)
+	__vue_exports__ = __webpack_require__(635)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(612)
+	var __vue_template__ = __webpack_require__(636)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/template-repeat-update.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/template-repeat-update.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46d4a688"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 610:
+/***/ 634:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -109,7 +113,7 @@
 
 /***/ },
 
-/***/ 611:
+/***/ 635:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -163,30 +167,30 @@
 
 /***/ },
 
-/***/ 612:
+/***/ 636:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', {
+	  return _c('div', [_c('text', {
 	    staticClass: ["title"]
-	  }, ["Track by"]), _vm._l((_vm.list), function(item, k, $index) {
-	    return _h('text', {
+	  }, [_vm._v("Track by")]), _vm._l((_vm.list), function(item, k, $index) {
+	    return _c('text', {
 	      staticClass: ["subtitle"],
 	      attrs: {
-	        "track-by": "item.key"
+	        "trackBy": "item.key"
 	      }
-	    }, [_vm._s($index) + "-" + _vm._s(item.text)])
-	  }), _h('text', {
+	    }, [_vm._v(_vm._s($index) + "-" + _vm._s(item.text))])
+	  }), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.update
 	    }
-	  }, ["Update"]), _h('text', {
+	  }, [_vm._v("Update")]), _c('text', {
 	    staticClass: ["btn"],
 	    on: {
 	      "click": _vm.mutate
 	    }
-	  }, ["Mutate"])])
+	  }, [_vm._v("Mutate")])], 2)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/template-repeat.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/template-repeat.js b/ios/playground/bundlejs/vue/syntax/template-repeat.js
index f0a0e7a..8af6d94 100644
--- a/ios/playground/bundlejs/vue/syntax/template-repeat.js
+++ b/ios/playground/bundlejs/vue/syntax/template-repeat.js
@@ -51,14 +51,14 @@
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(607)
+	__vue_styles__.push(__webpack_require__(631)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(608)
+	__vue_exports__ = __webpack_require__(632)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(609)
+	var __vue_template__ = __webpack_require__(633)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -70,15 +70,19 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/template-repeat.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/template-repeat.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-0b53ff2c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -87,7 +91,7 @@
 
 /***/ },
 
-/***/ 607:
+/***/ 631:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -101,7 +105,7 @@
 
 /***/ },
 
-/***/ 608:
+/***/ 632:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -139,29 +143,29 @@
 
 /***/ },
 
-/***/ 609:
+/***/ 633:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', [_h('text', {
+	  return _c('div', [_c('text', {
 	    staticClass: ["title"]
-	  }, ["Custom item"]), _vm._l((_vm.list), function(item) {
-	    return _h('text', {
+	  }, [_vm._v("Custom item")]), _vm._l((_vm.list), function(item) {
+	    return _c('text', {
 	      staticClass: ["subtitle"]
-	    }, [_vm._s(item)])
-	  }), _h('text', {
+	    }, [_vm._v(_vm._s(item))])
+	  }), _c('text', {
 	    staticClass: ["title"]
-	  }, ["Custom key and item"]), _vm._l((_vm.list), function(i, v) {
-	    return _h('text', {
+	  }, [_vm._v("Custom key and item")]), _vm._l((_vm.list), function(i, v) {
+	    return _c('text', {
 	      staticClass: ["subtitle"]
-	    }, [_vm._s(i) + "-" + _vm._s(v)])
-	  }), _h('text', {
+	    }, [_vm._v(_vm._s(i) + "-" + _vm._s(v))])
+	  }), _c('text', {
 	    staticClass: ["title"]
-	  }, ["Array of Object"]), _vm._l((_vm.list2), function(item, k, index) {
-	    return _h('text', {
+	  }, [_vm._v("Array of Object")]), _vm._l((_vm.list2), function(item, k, index) {
+	    return _c('text', {
 	      staticClass: ["subtitle"]
-	    }, ["> " + _vm._s(index) + "-" + _vm._s(item.text)])
-	  })])
+	    }, [_vm._v("> " + _vm._s(index) + "-" + _vm._s(item.text))])
+	  })], 2)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/syntax/template-style.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/syntax/template-style.js b/ios/playground/bundlejs/vue/syntax/template-style.js
index 76858a9..143676e 100644
--- a/ios/playground/bundlejs/vue/syntax/template-style.js
+++ b/ios/playground/bundlejs/vue/syntax/template-style.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(613)
+	__vue_exports__ = __webpack_require__(637)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(614)
+	var __vue_template__ = __webpack_require__(638)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/syntax/template-style.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/syntax/template-style.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,7 +86,7 @@
 
 /***/ },
 
-/***/ 613:
+/***/ 637:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -117,25 +120,25 @@
 
 /***/ },
 
-/***/ 614:
+/***/ 638:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    on: {
 	      "click": _vm.update
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    staticStyle: {
 	      fontSize: "48px",
 	      color: "#0000ff"
 	    }
-	  }, ["Hello"]), _h('text', {
+	  }, [_vm._v("Hello")]), _c('text', {
 	    style: {
 	      fontSize: _vm.size,
 	      color: _vm.color
 	    }
-	  }, ["Hello"])])
+	  }, [_vm._v("Hello")])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ab9f49/ios/playground/bundlejs/vue/template.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/template.js b/ios/playground/bundlejs/vue/template.js
index db75605..d005f6b 100644
--- a/ios/playground/bundlejs/vue/template.js
+++ b/ios/playground/bundlejs/vue/template.js
@@ -51,10 +51,10 @@
 	var __vue_styles__ = []
 
 	/* script */
-	__vue_exports__ = __webpack_require__(615)
+	__vue_exports__ = __webpack_require__(639)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(620)
+	var __vue_template__ = __webpack_require__(644)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -66,15 +66,18 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/template.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/template.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 	module.exports.el = 'true'
@@ -83,21 +86,21 @@
 
 /***/ },
 
-/***/ 381:
+/***/ 399:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(382)
+	__vue_styles__.push(__webpack_require__(400)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(383)
+	__vue_exports__ = __webpack_require__(401)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(384)
+	var __vue_template__ = __webpack_require__(402)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -109,22 +112,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/panel.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/panel.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-46407d45"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 382:
+/***/ 400:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -178,7 +185,7 @@
 
 /***/ },
 
-/***/ 383:
+/***/ 401:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -223,16 +230,16 @@
 
 /***/ },
 
-/***/ 384:
+/***/ 402:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['panel', 'panel-' + _vm.type],
 	    style: {
 	      borderWidth: _vm.border
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['panel-header', 'panel-header-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingHead,
@@ -240,7 +247,7 @@
 	      paddingLeft: _vm.paddingHead * 1.5,
 	      paddingRight: _vm.paddingHead * 1.5
 	    }
-	  }, [_vm._s(_vm.title)]), _h('div', {
+	  }, [_vm._v(_vm._s(_vm.title))]), _c('div', {
 	    class: ['panel-body', 'panel-body-' + _vm.type],
 	    style: {
 	      paddingTop: _vm.paddingBody,
@@ -248,27 +255,27 @@
 	      paddingLeft: _vm.paddingBody * 1.5,
 	      paddingRight: _vm.paddingBody * 1.5
 	    }
-	  }, [_vm._t("default")])])
+	  }, [_vm._t("default")], 2)])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 385:
+/***/ 403:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(386)
+	__vue_styles__.push(__webpack_require__(404)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(387)
+	__vue_exports__ = __webpack_require__(405)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(388)
+	var __vue_template__ = __webpack_require__(406)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -280,22 +287,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/button.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/button.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-4c6be341"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 386:
+/***/ 404:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -395,7 +406,7 @@
 
 /***/ },
 
-/***/ 387:
+/***/ 405:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -418,35 +429,35 @@
 
 /***/ },
 
-/***/ 388:
+/***/ 406:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 391:
+/***/ 409:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(392)
+	__vue_styles__.push(__webpack_require__(410)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(393)
+	__vue_exports__ = __webpack_require__(411)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(394)
+	var __vue_template__ = __webpack_require__(412)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -458,22 +469,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/tip.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/tip.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-6ec9a69c"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 392:
+/***/ 410:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -519,7 +534,7 @@
 
 /***/ },
 
-/***/ 393:
+/***/ 411:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -541,21 +556,21 @@
 
 /***/ },
 
-/***/ 394:
+/***/ 412:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['tip', 'tip-' + _vm.type]
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['tip-txt', 'tip-txt-' + _vm.type]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 615:
+/***/ 639:
 /***/ function(module, exports, __webpack_require__) {
 
 	'use strict';
@@ -580,7 +595,7 @@
 	//
 	//
 
-	var modal = __weex_require_module__('modal');
+	var modal = weex.requireModule('modal');
 	module.exports = {
 	  data: function data() {
 	    return {
@@ -588,10 +603,10 @@
 	    };
 	  },
 	  components: {
-	    panel: __webpack_require__(381),
-	    hn: __webpack_require__(616),
-	    tip: __webpack_require__(391),
-	    button: __webpack_require__(385)
+	    panel: __webpack_require__(399),
+	    hn: __webpack_require__(640),
+	    tip: __webpack_require__(409),
+	    button: __webpack_require__(403)
 	  },
 	  methods: {
 	    toast: function toast() {
@@ -602,21 +617,21 @@
 
 /***/ },
 
-/***/ 616:
+/***/ 640:
 /***/ function(module, exports, __webpack_require__) {
 
 	var __vue_exports__, __vue_options__
 	var __vue_styles__ = []
 
 	/* styles */
-	__vue_styles__.push(__webpack_require__(617)
+	__vue_styles__.push(__webpack_require__(641)
 	)
 
 	/* script */
-	__vue_exports__ = __webpack_require__(618)
+	__vue_exports__ = __webpack_require__(642)
 
 	/* template */
-	var __vue_template__ = __webpack_require__(619)
+	var __vue_template__ = __webpack_require__(643)
 	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
 	if (
 	  typeof __vue_exports__.default === "object" ||
@@ -628,22 +643,26 @@
 	if (typeof __vue_options__ === "function") {
 	  __vue_options__ = __vue_options__.options
 	}
-	__vue_options__.__file = "/Users/bobning/work/source/weex_fork/examples/vue/include/hn.vue"
+	__vue_options__.__file = "/Users/bobning/work/source/apache-incubator-weex/examples/vue/include/hn.vue"
 	__vue_options__.render = __vue_template__.render
 	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
+	__vue_options__._scopeId = "data-v-188c9295"
 	__vue_options__.style = __vue_options__.style || {}
 	__vue_styles__.forEach(function (module) {
-	for (var name in module) {
-	__vue_options__.style[name] = module[name]
-	}
+	  for (var name in module) {
+	    __vue_options__.style[name] = module[name]
+	  }
 	})
+	if (typeof __register_static_styles__ === "function") {
+	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
+	}
 
 	module.exports = __vue_exports__
 
 
 /***/ },
 
-/***/ 617:
+/***/ 641:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -675,7 +694,7 @@
 
 /***/ },
 
-/***/ 618:
+/***/ 642:
 /***/ function(module, exports) {
 
 	'use strict';
@@ -696,33 +715,33 @@
 
 /***/ },
 
-/***/ 619:
+/***/ 643:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('div', {
+	  return _c('div', {
 	    class: ['h' + _vm.level],
 	    staticStyle: {
 	      justifyContent: "center"
 	    }
-	  }, [_h('text', {
+	  }, [_c('text', {
 	    class: ['txt-h' + _vm.level]
-	  }, [_vm._s(_vm.value)])])
+	  }, [_vm._v(_vm._s(_vm.value))])])
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 
 /***/ },
 
-/***/ 620:
+/***/ 644:
 /***/ function(module, exports) {
 
 	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _h('scroller', [_h('panel', {
+	  return _c('scroller', [_c('panel', {
 	    attrs: {
 	      "title": "Dialog",
 	      "type": "primary"
 	    }
-	  }, [_h('tip', {
+	  }, [_c('tip', {
 	    staticStyle: {
 	      marginBottom: "20px"
 	    },
@@ -730,12 +749,12 @@
 	      "type": "success",
 	      "value": "It's a weex example template."
 	    }
-	  }), _h('hn', {
+	  }), _c('hn', {
 	    attrs: {
 	      "level": "1",
 	      "value": "H1"
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    attrs: {
 	      "type": "primary",
 	      "value": "Toast"
@@ -745,12 +764,12 @@
 	        _vm.toast($event)
 	      }
 	    }
-	  }), _h('hn', {
+	  }), _c('hn', {
 	    attrs: {
 	      "level": "2",
 	      "value": "H3"
 	    }
-	  }), _h('button', {
+	  }), _c('button', {
 	    attrs: {
 	      "type": "warning",
 	      "value": "Toast"
@@ -760,12 +779,12 @@
 	        _vm.toast($event)
 	      }
 	    }
-	  })]), _h('panel', {
+	  })], 1), _c('panel', {
 	    attrs: {
 	      "title": "Image",
 	      "type": "primary"
 	    }
-	  }, [_h('tip', {
+	  }, [_c('tip', {
 	    staticStyle: {
 	      marginBottom: "20px"
 	    },
@@ -773,7 +792,7 @@
 	      "type": "warning",
 	      "value": "Weex screen width is 750"
 	    }
-	  }), _h('image', {
+	  }), _c('image', {
 	    staticClass: ["img"],
 	    staticStyle: {
 	      width: "400px",
@@ -782,12 +801,12 @@
 	    attrs: {
 	      "src": _vm.img
 	    }
-	  }), _h('panel', {
+	  }), _c('panel', {
 	    attrs: {
 	      "title": "Image",
 	      "type": "default"
 	    }
-	  }, [_h('text', ["sub info"])])])])
+	  }, [_c('text', [_vm._v("sub info")])])], 1)], 1)
 	},staticRenderFns: []}
 	module.exports.render._withStripped = true
 


[28/50] [abbrv] incubator-weex git commit: * [html5] add flow-type supported.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/fs-extra_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/fs-extra_vx.x.x.js b/flow-typed/npm/fs-extra_vx.x.x.js
new file mode 100644
index 0000000..58ae838
--- /dev/null
+++ b/flow-typed/npm/fs-extra_vx.x.x.js
@@ -0,0 +1,221 @@
+// flow-typed signature: c947db7334e6884638b152b5395288e4
+// flow-typed version: <<STUB>>/fs-extra_v^2.0.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'fs-extra'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'fs-extra' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'fs-extra/lib/copy-sync/copy-file-sync' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/copy-sync/copy-sync' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/copy-sync/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/copy/copy' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/copy/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/copy/ncp' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/empty/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/ensure/file' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/ensure/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/ensure/link' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/ensure/symlink-paths' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/ensure/symlink-type' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/ensure/symlink' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/json/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/json/jsonfile' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/json/output-json-sync' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/json/output-json' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/mkdirs/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/mkdirs/mkdirs-sync' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/mkdirs/mkdirs' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/mkdirs/win32' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/move/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/output/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/remove/index' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/remove/rimraf' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/util/assign' {
+  declare module.exports: any;
+}
+
+declare module 'fs-extra/lib/util/utimes' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'fs-extra/lib/copy-sync/copy-file-sync.js' {
+  declare module.exports: $Exports<'fs-extra/lib/copy-sync/copy-file-sync'>;
+}
+declare module 'fs-extra/lib/copy-sync/copy-sync.js' {
+  declare module.exports: $Exports<'fs-extra/lib/copy-sync/copy-sync'>;
+}
+declare module 'fs-extra/lib/copy-sync/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/copy-sync/index'>;
+}
+declare module 'fs-extra/lib/copy/copy.js' {
+  declare module.exports: $Exports<'fs-extra/lib/copy/copy'>;
+}
+declare module 'fs-extra/lib/copy/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/copy/index'>;
+}
+declare module 'fs-extra/lib/copy/ncp.js' {
+  declare module.exports: $Exports<'fs-extra/lib/copy/ncp'>;
+}
+declare module 'fs-extra/lib/empty/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/empty/index'>;
+}
+declare module 'fs-extra/lib/ensure/file.js' {
+  declare module.exports: $Exports<'fs-extra/lib/ensure/file'>;
+}
+declare module 'fs-extra/lib/ensure/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/ensure/index'>;
+}
+declare module 'fs-extra/lib/ensure/link.js' {
+  declare module.exports: $Exports<'fs-extra/lib/ensure/link'>;
+}
+declare module 'fs-extra/lib/ensure/symlink-paths.js' {
+  declare module.exports: $Exports<'fs-extra/lib/ensure/symlink-paths'>;
+}
+declare module 'fs-extra/lib/ensure/symlink-type.js' {
+  declare module.exports: $Exports<'fs-extra/lib/ensure/symlink-type'>;
+}
+declare module 'fs-extra/lib/ensure/symlink.js' {
+  declare module.exports: $Exports<'fs-extra/lib/ensure/symlink'>;
+}
+declare module 'fs-extra/lib/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/index'>;
+}
+declare module 'fs-extra/lib/json/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/json/index'>;
+}
+declare module 'fs-extra/lib/json/jsonfile.js' {
+  declare module.exports: $Exports<'fs-extra/lib/json/jsonfile'>;
+}
+declare module 'fs-extra/lib/json/output-json-sync.js' {
+  declare module.exports: $Exports<'fs-extra/lib/json/output-json-sync'>;
+}
+declare module 'fs-extra/lib/json/output-json.js' {
+  declare module.exports: $Exports<'fs-extra/lib/json/output-json'>;
+}
+declare module 'fs-extra/lib/mkdirs/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/mkdirs/index'>;
+}
+declare module 'fs-extra/lib/mkdirs/mkdirs-sync.js' {
+  declare module.exports: $Exports<'fs-extra/lib/mkdirs/mkdirs-sync'>;
+}
+declare module 'fs-extra/lib/mkdirs/mkdirs.js' {
+  declare module.exports: $Exports<'fs-extra/lib/mkdirs/mkdirs'>;
+}
+declare module 'fs-extra/lib/mkdirs/win32.js' {
+  declare module.exports: $Exports<'fs-extra/lib/mkdirs/win32'>;
+}
+declare module 'fs-extra/lib/move/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/move/index'>;
+}
+declare module 'fs-extra/lib/output/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/output/index'>;
+}
+declare module 'fs-extra/lib/remove/index.js' {
+  declare module.exports: $Exports<'fs-extra/lib/remove/index'>;
+}
+declare module 'fs-extra/lib/remove/rimraf.js' {
+  declare module.exports: $Exports<'fs-extra/lib/remove/rimraf'>;
+}
+declare module 'fs-extra/lib/util/assign.js' {
+  declare module.exports: $Exports<'fs-extra/lib/util/assign'>;
+}
+declare module 'fs-extra/lib/util/utimes.js' {
+  declare module.exports: $Exports<'fs-extra/lib/util/utimes'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/http-server_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/http-server_vx.x.x.js b/flow-typed/npm/http-server_vx.x.x.js
new file mode 100644
index 0000000..ecc6cd3
--- /dev/null
+++ b/flow-typed/npm/http-server_vx.x.x.js
@@ -0,0 +1,39 @@
+// flow-typed signature: e437acb5eb438e7be3fbc38b76fddd43
+// flow-typed version: <<STUB>>/http-server_v^0.9.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'http-server'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'http-server' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'http-server/lib/http-server' {
+  declare module.exports: any;
+}
+
+declare module 'http-server/test/http-server-test' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'http-server/lib/http-server.js' {
+  declare module.exports: $Exports<'http-server/lib/http-server'>;
+}
+declare module 'http-server/test/http-server-test.js' {
+  declare module.exports: $Exports<'http-server/test/http-server-test'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/httpurl_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/httpurl_vx.x.x.js b/flow-typed/npm/httpurl_vx.x.x.js
new file mode 100644
index 0000000..39520aa
--- /dev/null
+++ b/flow-typed/npm/httpurl_vx.x.x.js
@@ -0,0 +1,67 @@
+// flow-typed signature: 53907eaae19285207dcb127208163f0c
+// flow-typed version: <<STUB>>/httpurl_v^0.1.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'httpurl'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'httpurl' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'httpurl/build/httpurl.common' {
+  declare module.exports: any;
+}
+
+declare module 'httpurl/build/httpurl.debug' {
+  declare module.exports: any;
+}
+
+declare module 'httpurl/build/httpurl' {
+  declare module.exports: any;
+}
+
+declare module 'httpurl/Gruntfile' {
+  declare module.exports: any;
+}
+
+declare module 'httpurl/src/httpurl' {
+  declare module.exports: any;
+}
+
+declare module 'httpurl/test/httpurl' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'httpurl/build/httpurl.common.js' {
+  declare module.exports: $Exports<'httpurl/build/httpurl.common'>;
+}
+declare module 'httpurl/build/httpurl.debug.js' {
+  declare module.exports: $Exports<'httpurl/build/httpurl.debug'>;
+}
+declare module 'httpurl/build/httpurl.js' {
+  declare module.exports: $Exports<'httpurl/build/httpurl'>;
+}
+declare module 'httpurl/Gruntfile.js' {
+  declare module.exports: $Exports<'httpurl/Gruntfile'>;
+}
+declare module 'httpurl/src/httpurl.js' {
+  declare module.exports: $Exports<'httpurl/src/httpurl'>;
+}
+declare module 'httpurl/test/httpurl.js' {
+  declare module.exports: $Exports<'httpurl/test/httpurl'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/inline-style-prefixer_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/inline-style-prefixer_vx.x.x.js b/flow-typed/npm/inline-style-prefixer_vx.x.x.js
new file mode 100644
index 0000000..8f7457e
--- /dev/null
+++ b/flow-typed/npm/inline-style-prefixer_vx.x.x.js
@@ -0,0 +1,347 @@
+// flow-typed signature: 511ccee6eb842e1d1b61e791ff6051db
+// flow-typed version: <<STUB>>/inline-style-prefixer_v^3.0.2/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'inline-style-prefixer'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'inline-style-prefixer' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'inline-style-prefixer/dynamic/createPrefixer' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/dynamicData' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/index' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/calc' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/crossFade' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/cursor' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/filter' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/flex' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/flexboxIE' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/flexboxOld' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/gradient' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/imageSet' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/index' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/position' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/sizing' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/dynamic/plugins/transition' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/generator/generateDynamicPrefixMap' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/generator/generatePluginList' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/generator/generateStaticPrefixMap' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/generator/index' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/generator/maps/pluginMap' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/generator/maps/propertyMap' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/createPrefixer' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/index' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/calc' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/crossFade' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/cursor' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/filter' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/flex' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/flexboxIE' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/flexboxOld' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/gradient' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/imageSet' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/index' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/position' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/sizing' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/plugins/transition' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/static/staticData' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/utils/addNewValuesOnly' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/utils/capitalizeString' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/utils/getBrowserInformation' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/utils/getPrefixedKeyframes' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/utils/getPrefixedValue' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/utils/isObject' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/utils/prefixProperty' {
+  declare module.exports: any;
+}
+
+declare module 'inline-style-prefixer/utils/prefixValue' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'inline-style-prefixer/dynamic/createPrefixer.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/createPrefixer'>;
+}
+declare module 'inline-style-prefixer/dynamic/dynamicData.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/dynamicData'>;
+}
+declare module 'inline-style-prefixer/dynamic/index.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/index'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/calc.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/calc'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/crossFade.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/crossFade'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/cursor.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/cursor'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/filter.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/filter'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/flex.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/flex'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/flexboxIE.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/flexboxIE'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/flexboxOld.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/flexboxOld'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/gradient.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/gradient'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/imageSet.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/imageSet'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/index.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/index'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/position.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/position'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/sizing.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/sizing'>;
+}
+declare module 'inline-style-prefixer/dynamic/plugins/transition.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/dynamic/plugins/transition'>;
+}
+declare module 'inline-style-prefixer/generator/generateDynamicPrefixMap.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/generator/generateDynamicPrefixMap'>;
+}
+declare module 'inline-style-prefixer/generator/generatePluginList.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/generator/generatePluginList'>;
+}
+declare module 'inline-style-prefixer/generator/generateStaticPrefixMap.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/generator/generateStaticPrefixMap'>;
+}
+declare module 'inline-style-prefixer/generator/index.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/generator/index'>;
+}
+declare module 'inline-style-prefixer/generator/maps/pluginMap.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/generator/maps/pluginMap'>;
+}
+declare module 'inline-style-prefixer/generator/maps/propertyMap.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/generator/maps/propertyMap'>;
+}
+declare module 'inline-style-prefixer/static/createPrefixer.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/createPrefixer'>;
+}
+declare module 'inline-style-prefixer/static/index.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/index'>;
+}
+declare module 'inline-style-prefixer/static/plugins/calc.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/calc'>;
+}
+declare module 'inline-style-prefixer/static/plugins/crossFade.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/crossFade'>;
+}
+declare module 'inline-style-prefixer/static/plugins/cursor.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/cursor'>;
+}
+declare module 'inline-style-prefixer/static/plugins/filter.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/filter'>;
+}
+declare module 'inline-style-prefixer/static/plugins/flex.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/flex'>;
+}
+declare module 'inline-style-prefixer/static/plugins/flexboxIE.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/flexboxIE'>;
+}
+declare module 'inline-style-prefixer/static/plugins/flexboxOld.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/flexboxOld'>;
+}
+declare module 'inline-style-prefixer/static/plugins/gradient.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/gradient'>;
+}
+declare module 'inline-style-prefixer/static/plugins/imageSet.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/imageSet'>;
+}
+declare module 'inline-style-prefixer/static/plugins/index.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/index'>;
+}
+declare module 'inline-style-prefixer/static/plugins/position.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/position'>;
+}
+declare module 'inline-style-prefixer/static/plugins/sizing.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/sizing'>;
+}
+declare module 'inline-style-prefixer/static/plugins/transition.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/plugins/transition'>;
+}
+declare module 'inline-style-prefixer/static/staticData.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/static/staticData'>;
+}
+declare module 'inline-style-prefixer/utils/addNewValuesOnly.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/utils/addNewValuesOnly'>;
+}
+declare module 'inline-style-prefixer/utils/capitalizeString.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/utils/capitalizeString'>;
+}
+declare module 'inline-style-prefixer/utils/getBrowserInformation.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/utils/getBrowserInformation'>;
+}
+declare module 'inline-style-prefixer/utils/getPrefixedKeyframes.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/utils/getPrefixedKeyframes'>;
+}
+declare module 'inline-style-prefixer/utils/getPrefixedValue.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/utils/getPrefixedValue'>;
+}
+declare module 'inline-style-prefixer/utils/isObject.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/utils/isObject'>;
+}
+declare module 'inline-style-prefixer/utils/prefixProperty.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/utils/prefixProperty'>;
+}
+declare module 'inline-style-prefixer/utils/prefixValue.js' {
+  declare module.exports: $Exports<'inline-style-prefixer/utils/prefixValue'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/json-loader_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/json-loader_vx.x.x.js b/flow-typed/npm/json-loader_vx.x.x.js
new file mode 100644
index 0000000..9ccae9b
--- /dev/null
+++ b/flow-typed/npm/json-loader_vx.x.x.js
@@ -0,0 +1,33 @@
+// flow-typed signature: 4d23bf1a2235eda868dc76304f4bfc32
+// flow-typed version: <<STUB>>/json-loader_v^0.5.4/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'json-loader'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'json-loader' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+
+
+// Filename aliases
+declare module 'json-loader/index' {
+  declare module.exports: $Exports<'json-loader'>;
+}
+declare module 'json-loader/index.js' {
+  declare module.exports: $Exports<'json-loader'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/karma-coverage_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/karma-coverage_vx.x.x.js b/flow-typed/npm/karma-coverage_vx.x.x.js
new file mode 100644
index 0000000..c042531
--- /dev/null
+++ b/flow-typed/npm/karma-coverage_vx.x.x.js
@@ -0,0 +1,81 @@
+// flow-typed signature: a3641137850fff0b7b41d98b95bfaca8
+// flow-typed version: <<STUB>>/karma-coverage_v^1.1.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'karma-coverage'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'karma-coverage' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'karma-coverage/gruntfile' {
+  declare module.exports: any;
+}
+
+declare module 'karma-coverage/lib/coverage-map' {
+  declare module.exports: any;
+}
+
+declare module 'karma-coverage/lib/in-memory-report' {
+  declare module.exports: any;
+}
+
+declare module 'karma-coverage/lib/index' {
+  declare module.exports: any;
+}
+
+declare module 'karma-coverage/lib/preprocessor' {
+  declare module.exports: any;
+}
+
+declare module 'karma-coverage/lib/reporter' {
+  declare module.exports: any;
+}
+
+declare module 'karma-coverage/lib/source-cache-store' {
+  declare module.exports: any;
+}
+
+declare module 'karma-coverage/lib/source-cache' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'karma-coverage/gruntfile.js' {
+  declare module.exports: $Exports<'karma-coverage/gruntfile'>;
+}
+declare module 'karma-coverage/lib/coverage-map.js' {
+  declare module.exports: $Exports<'karma-coverage/lib/coverage-map'>;
+}
+declare module 'karma-coverage/lib/in-memory-report.js' {
+  declare module.exports: $Exports<'karma-coverage/lib/in-memory-report'>;
+}
+declare module 'karma-coverage/lib/index.js' {
+  declare module.exports: $Exports<'karma-coverage/lib/index'>;
+}
+declare module 'karma-coverage/lib/preprocessor.js' {
+  declare module.exports: $Exports<'karma-coverage/lib/preprocessor'>;
+}
+declare module 'karma-coverage/lib/reporter.js' {
+  declare module.exports: $Exports<'karma-coverage/lib/reporter'>;
+}
+declare module 'karma-coverage/lib/source-cache-store.js' {
+  declare module.exports: $Exports<'karma-coverage/lib/source-cache-store'>;
+}
+declare module 'karma-coverage/lib/source-cache.js' {
+  declare module.exports: $Exports<'karma-coverage/lib/source-cache'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/karma-mocha-reporter_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/karma-mocha-reporter_vx.x.x.js b/flow-typed/npm/karma-mocha-reporter_vx.x.x.js
new file mode 100644
index 0000000..4838e3d
--- /dev/null
+++ b/flow-typed/npm/karma-mocha-reporter_vx.x.x.js
@@ -0,0 +1,38 @@
+// flow-typed signature: 3994e81f768a28c55ca2d39910be5c67
+// flow-typed version: <<STUB>>/karma-mocha-reporter_v^2.2.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'karma-mocha-reporter'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'karma-mocha-reporter' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'karma-mocha-reporter/symbols' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'karma-mocha-reporter/index' {
+  declare module.exports: $Exports<'karma-mocha-reporter'>;
+}
+declare module 'karma-mocha-reporter/index.js' {
+  declare module.exports: $Exports<'karma-mocha-reporter'>;
+}
+declare module 'karma-mocha-reporter/symbols.js' {
+  declare module.exports: $Exports<'karma-mocha-reporter/symbols'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/karma-mocha_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/karma-mocha_vx.x.x.js b/flow-typed/npm/karma-mocha_vx.x.x.js
new file mode 100644
index 0000000..b6b6d18
--- /dev/null
+++ b/flow-typed/npm/karma-mocha_vx.x.x.js
@@ -0,0 +1,53 @@
+// flow-typed signature: d3244e361f648af2e67f7835973cd3bb
+// flow-typed version: <<STUB>>/karma-mocha_v^1.3.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'karma-mocha'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'karma-mocha' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'karma-mocha/gruntfile' {
+  declare module.exports: any;
+}
+
+declare module 'karma-mocha/lib/adapter' {
+  declare module.exports: any;
+}
+
+declare module 'karma-mocha/lib/index' {
+  declare module.exports: any;
+}
+
+declare module 'karma-mocha/wallaby' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'karma-mocha/gruntfile.js' {
+  declare module.exports: $Exports<'karma-mocha/gruntfile'>;
+}
+declare module 'karma-mocha/lib/adapter.js' {
+  declare module.exports: $Exports<'karma-mocha/lib/adapter'>;
+}
+declare module 'karma-mocha/lib/index.js' {
+  declare module.exports: $Exports<'karma-mocha/lib/index'>;
+}
+declare module 'karma-mocha/wallaby.js' {
+  declare module.exports: $Exports<'karma-mocha/wallaby'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/karma-phantomjs-launcher_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/karma-phantomjs-launcher_vx.x.x.js b/flow-typed/npm/karma-phantomjs-launcher_vx.x.x.js
new file mode 100644
index 0000000..f897efb
--- /dev/null
+++ b/flow-typed/npm/karma-phantomjs-launcher_vx.x.x.js
@@ -0,0 +1,59 @@
+// flow-typed signature: 370b8388d42a489c09fca7cc6a6c1dc0
+// flow-typed version: <<STUB>>/karma-phantomjs-launcher_v^1.0.2/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'karma-phantomjs-launcher'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'karma-phantomjs-launcher' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'karma-phantomjs-launcher/capture.template' {
+  declare module.exports: any;
+}
+
+declare module 'karma-phantomjs-launcher/gruntfile' {
+  declare module.exports: any;
+}
+
+declare module 'karma-phantomjs-launcher/karma.conf' {
+  declare module.exports: any;
+}
+
+declare module 'karma-phantomjs-launcher/test/add.spec' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'karma-phantomjs-launcher/capture.template.js' {
+  declare module.exports: $Exports<'karma-phantomjs-launcher/capture.template'>;
+}
+declare module 'karma-phantomjs-launcher/gruntfile.js' {
+  declare module.exports: $Exports<'karma-phantomjs-launcher/gruntfile'>;
+}
+declare module 'karma-phantomjs-launcher/index' {
+  declare module.exports: $Exports<'karma-phantomjs-launcher'>;
+}
+declare module 'karma-phantomjs-launcher/index.js' {
+  declare module.exports: $Exports<'karma-phantomjs-launcher'>;
+}
+declare module 'karma-phantomjs-launcher/karma.conf.js' {
+  declare module.exports: $Exports<'karma-phantomjs-launcher/karma.conf'>;
+}
+declare module 'karma-phantomjs-launcher/test/add.spec.js' {
+  declare module.exports: $Exports<'karma-phantomjs-launcher/test/add.spec'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/karma-sourcemap-loader_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/karma-sourcemap-loader_vx.x.x.js b/flow-typed/npm/karma-sourcemap-loader_vx.x.x.js
new file mode 100644
index 0000000..be33689
--- /dev/null
+++ b/flow-typed/npm/karma-sourcemap-loader_vx.x.x.js
@@ -0,0 +1,33 @@
+// flow-typed signature: a5c8dc54e881e4ed564a1f5ae3a4d0f1
+// flow-typed version: <<STUB>>/karma-sourcemap-loader_v^0.3.7/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'karma-sourcemap-loader'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'karma-sourcemap-loader' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+
+
+// Filename aliases
+declare module 'karma-sourcemap-loader/index' {
+  declare module.exports: $Exports<'karma-sourcemap-loader'>;
+}
+declare module 'karma-sourcemap-loader/index.js' {
+  declare module.exports: $Exports<'karma-sourcemap-loader'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/karma-webpack_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/karma-webpack_vx.x.x.js b/flow-typed/npm/karma-webpack_vx.x.x.js
new file mode 100644
index 0000000..3baf5a4
--- /dev/null
+++ b/flow-typed/npm/karma-webpack_vx.x.x.js
@@ -0,0 +1,45 @@
+// flow-typed signature: d27960d9578f6d20018e9ab285c690c3
+// flow-typed version: <<STUB>>/karma-webpack_v^1.8.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'karma-webpack'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'karma-webpack' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'karma-webpack/lib/karma-webpack' {
+  declare module.exports: any;
+}
+
+declare module 'karma-webpack/lib/mocha-env-loader' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'karma-webpack/index' {
+  declare module.exports: $Exports<'karma-webpack'>;
+}
+declare module 'karma-webpack/index.js' {
+  declare module.exports: $Exports<'karma-webpack'>;
+}
+declare module 'karma-webpack/lib/karma-webpack.js' {
+  declare module.exports: $Exports<'karma-webpack/lib/karma-webpack'>;
+}
+declare module 'karma-webpack/lib/mocha-env-loader.js' {
+  declare module.exports: $Exports<'karma-webpack/lib/mocha-env-loader'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/karma_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/karma_vx.x.x.js b/flow-typed/npm/karma_vx.x.x.js
new file mode 100644
index 0000000..db25c76
--- /dev/null
+++ b/flow-typed/npm/karma_vx.x.x.js
@@ -0,0 +1,445 @@
+// flow-typed signature: 23f99b46e80313193d75c5745e615546
+// flow-typed version: <<STUB>>/karma_v^1.3.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'karma'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'karma' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'karma/common/stringify' {
+  declare module.exports: any;
+}
+
+declare module 'karma/common/util' {
+  declare module.exports: any;
+}
+
+declare module 'karma/config.tpl' {
+  declare module.exports: any;
+}
+
+declare module 'karma/context/karma' {
+  declare module.exports: any;
+}
+
+declare module 'karma/context/main' {
+  declare module.exports: any;
+}
+
+declare module 'karma/gruntfile' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/browser_collection' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/browser_result' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/browser' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/cli' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/completion' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/config' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/constants' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/detached' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/emitter_wrapper' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/events' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/executor' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/file-list' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/file' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/helper' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/index' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/init' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/init/color_schemes' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/init/formatters' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/init/state_machine' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/launcher' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/launchers/base' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/launchers/capture_timeout' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/launchers/process' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/launchers/retry' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/logger' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/middleware/common' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/middleware/karma' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/middleware/proxy' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/middleware/runner' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/middleware/source_files' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/middleware/stopper' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/middleware/strip_host' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/plugin' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/preprocessor' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/reporter' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/reporters/base_color' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/reporters/base' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/reporters/dots_color' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/reporters/dots' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/reporters/multi' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/reporters/progress_color' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/reporters/progress' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/runner' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/server' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/stopper' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/temp_dir' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/url' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/watcher' {
+  declare module.exports: any;
+}
+
+declare module 'karma/lib/web-server' {
+  declare module.exports: any;
+}
+
+declare module 'karma/requirejs.config.tpl' {
+  declare module.exports: any;
+}
+
+declare module 'karma/static/context' {
+  declare module.exports: any;
+}
+
+declare module 'karma/static/debug' {
+  declare module.exports: any;
+}
+
+declare module 'karma/static/karma' {
+  declare module.exports: any;
+}
+
+declare module 'karma/wallaby' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'karma/common/stringify.js' {
+  declare module.exports: $Exports<'karma/common/stringify'>;
+}
+declare module 'karma/common/util.js' {
+  declare module.exports: $Exports<'karma/common/util'>;
+}
+declare module 'karma/config.tpl.js' {
+  declare module.exports: $Exports<'karma/config.tpl'>;
+}
+declare module 'karma/context/karma.js' {
+  declare module.exports: $Exports<'karma/context/karma'>;
+}
+declare module 'karma/context/main.js' {
+  declare module.exports: $Exports<'karma/context/main'>;
+}
+declare module 'karma/gruntfile.js' {
+  declare module.exports: $Exports<'karma/gruntfile'>;
+}
+declare module 'karma/lib/browser_collection.js' {
+  declare module.exports: $Exports<'karma/lib/browser_collection'>;
+}
+declare module 'karma/lib/browser_result.js' {
+  declare module.exports: $Exports<'karma/lib/browser_result'>;
+}
+declare module 'karma/lib/browser.js' {
+  declare module.exports: $Exports<'karma/lib/browser'>;
+}
+declare module 'karma/lib/cli.js' {
+  declare module.exports: $Exports<'karma/lib/cli'>;
+}
+declare module 'karma/lib/completion.js' {
+  declare module.exports: $Exports<'karma/lib/completion'>;
+}
+declare module 'karma/lib/config.js' {
+  declare module.exports: $Exports<'karma/lib/config'>;
+}
+declare module 'karma/lib/constants.js' {
+  declare module.exports: $Exports<'karma/lib/constants'>;
+}
+declare module 'karma/lib/detached.js' {
+  declare module.exports: $Exports<'karma/lib/detached'>;
+}
+declare module 'karma/lib/emitter_wrapper.js' {
+  declare module.exports: $Exports<'karma/lib/emitter_wrapper'>;
+}
+declare module 'karma/lib/events.js' {
+  declare module.exports: $Exports<'karma/lib/events'>;
+}
+declare module 'karma/lib/executor.js' {
+  declare module.exports: $Exports<'karma/lib/executor'>;
+}
+declare module 'karma/lib/file-list.js' {
+  declare module.exports: $Exports<'karma/lib/file-list'>;
+}
+declare module 'karma/lib/file.js' {
+  declare module.exports: $Exports<'karma/lib/file'>;
+}
+declare module 'karma/lib/helper.js' {
+  declare module.exports: $Exports<'karma/lib/helper'>;
+}
+declare module 'karma/lib/index.js' {
+  declare module.exports: $Exports<'karma/lib/index'>;
+}
+declare module 'karma/lib/init.js' {
+  declare module.exports: $Exports<'karma/lib/init'>;
+}
+declare module 'karma/lib/init/color_schemes.js' {
+  declare module.exports: $Exports<'karma/lib/init/color_schemes'>;
+}
+declare module 'karma/lib/init/formatters.js' {
+  declare module.exports: $Exports<'karma/lib/init/formatters'>;
+}
+declare module 'karma/lib/init/state_machine.js' {
+  declare module.exports: $Exports<'karma/lib/init/state_machine'>;
+}
+declare module 'karma/lib/launcher.js' {
+  declare module.exports: $Exports<'karma/lib/launcher'>;
+}
+declare module 'karma/lib/launchers/base.js' {
+  declare module.exports: $Exports<'karma/lib/launchers/base'>;
+}
+declare module 'karma/lib/launchers/capture_timeout.js' {
+  declare module.exports: $Exports<'karma/lib/launchers/capture_timeout'>;
+}
+declare module 'karma/lib/launchers/process.js' {
+  declare module.exports: $Exports<'karma/lib/launchers/process'>;
+}
+declare module 'karma/lib/launchers/retry.js' {
+  declare module.exports: $Exports<'karma/lib/launchers/retry'>;
+}
+declare module 'karma/lib/logger.js' {
+  declare module.exports: $Exports<'karma/lib/logger'>;
+}
+declare module 'karma/lib/middleware/common.js' {
+  declare module.exports: $Exports<'karma/lib/middleware/common'>;
+}
+declare module 'karma/lib/middleware/karma.js' {
+  declare module.exports: $Exports<'karma/lib/middleware/karma'>;
+}
+declare module 'karma/lib/middleware/proxy.js' {
+  declare module.exports: $Exports<'karma/lib/middleware/proxy'>;
+}
+declare module 'karma/lib/middleware/runner.js' {
+  declare module.exports: $Exports<'karma/lib/middleware/runner'>;
+}
+declare module 'karma/lib/middleware/source_files.js' {
+  declare module.exports: $Exports<'karma/lib/middleware/source_files'>;
+}
+declare module 'karma/lib/middleware/stopper.js' {
+  declare module.exports: $Exports<'karma/lib/middleware/stopper'>;
+}
+declare module 'karma/lib/middleware/strip_host.js' {
+  declare module.exports: $Exports<'karma/lib/middleware/strip_host'>;
+}
+declare module 'karma/lib/plugin.js' {
+  declare module.exports: $Exports<'karma/lib/plugin'>;
+}
+declare module 'karma/lib/preprocessor.js' {
+  declare module.exports: $Exports<'karma/lib/preprocessor'>;
+}
+declare module 'karma/lib/reporter.js' {
+  declare module.exports: $Exports<'karma/lib/reporter'>;
+}
+declare module 'karma/lib/reporters/base_color.js' {
+  declare module.exports: $Exports<'karma/lib/reporters/base_color'>;
+}
+declare module 'karma/lib/reporters/base.js' {
+  declare module.exports: $Exports<'karma/lib/reporters/base'>;
+}
+declare module 'karma/lib/reporters/dots_color.js' {
+  declare module.exports: $Exports<'karma/lib/reporters/dots_color'>;
+}
+declare module 'karma/lib/reporters/dots.js' {
+  declare module.exports: $Exports<'karma/lib/reporters/dots'>;
+}
+declare module 'karma/lib/reporters/multi.js' {
+  declare module.exports: $Exports<'karma/lib/reporters/multi'>;
+}
+declare module 'karma/lib/reporters/progress_color.js' {
+  declare module.exports: $Exports<'karma/lib/reporters/progress_color'>;
+}
+declare module 'karma/lib/reporters/progress.js' {
+  declare module.exports: $Exports<'karma/lib/reporters/progress'>;
+}
+declare module 'karma/lib/runner.js' {
+  declare module.exports: $Exports<'karma/lib/runner'>;
+}
+declare module 'karma/lib/server.js' {
+  declare module.exports: $Exports<'karma/lib/server'>;
+}
+declare module 'karma/lib/stopper.js' {
+  declare module.exports: $Exports<'karma/lib/stopper'>;
+}
+declare module 'karma/lib/temp_dir.js' {
+  declare module.exports: $Exports<'karma/lib/temp_dir'>;
+}
+declare module 'karma/lib/url.js' {
+  declare module.exports: $Exports<'karma/lib/url'>;
+}
+declare module 'karma/lib/watcher.js' {
+  declare module.exports: $Exports<'karma/lib/watcher'>;
+}
+declare module 'karma/lib/web-server.js' {
+  declare module.exports: $Exports<'karma/lib/web-server'>;
+}
+declare module 'karma/requirejs.config.tpl.js' {
+  declare module.exports: $Exports<'karma/requirejs.config.tpl'>;
+}
+declare module 'karma/static/context.js' {
+  declare module.exports: $Exports<'karma/static/context'>;
+}
+declare module 'karma/static/debug.js' {
+  declare module.exports: $Exports<'karma/static/debug'>;
+}
+declare module 'karma/static/karma.js' {
+  declare module.exports: $Exports<'karma/static/karma'>;
+}
+declare module 'karma/wallaby.js' {
+  declare module.exports: $Exports<'karma/wallaby'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/lazyimg_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/lazyimg_vx.x.x.js b/flow-typed/npm/lazyimg_vx.x.x.js
new file mode 100644
index 0000000..c65a3ce
--- /dev/null
+++ b/flow-typed/npm/lazyimg_vx.x.x.js
@@ -0,0 +1,32 @@
+// flow-typed signature: 2d99e7d6377a0ac83377b9ad4ef0d586
+// flow-typed version: <<STUB>>/lazyimg_v^0.1.5/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'lazyimg'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'lazyimg' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'lazyimg/src/adapter' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'lazyimg/src/adapter.js' {
+  declare module.exports: $Exports<'lazyimg/src/adapter'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/macaca-cli_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/macaca-cli_vx.x.x.js b/flow-typed/npm/macaca-cli_vx.x.x.js
new file mode 100644
index 0000000..5552813
--- /dev/null
+++ b/flow-typed/npm/macaca-cli_vx.x.x.js
@@ -0,0 +1,123 @@
+// flow-typed signature: 38d6c245fb4a7aae6f6a56abbb4f091a
+// flow-typed version: <<STUB>>/macaca-cli_v^1.1.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'macaca-cli'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'macaca-cli' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'macaca-cli/lib/common/config' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/common/helper' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/common/logFormatter/index' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/common/logFormatter/performance' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/common/logFormatter/screenshot' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/common/logger' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/index' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/run/index' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/server/index' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/server/server' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/lib/server/signal' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/scripts/print' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/test_ava/ava.test' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-cli/test_jasmine/jasmine.test' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'macaca-cli/lib/common/config.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/common/config'>;
+}
+declare module 'macaca-cli/lib/common/helper.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/common/helper'>;
+}
+declare module 'macaca-cli/lib/common/logFormatter/index.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/common/logFormatter/index'>;
+}
+declare module 'macaca-cli/lib/common/logFormatter/performance.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/common/logFormatter/performance'>;
+}
+declare module 'macaca-cli/lib/common/logFormatter/screenshot.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/common/logFormatter/screenshot'>;
+}
+declare module 'macaca-cli/lib/common/logger.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/common/logger'>;
+}
+declare module 'macaca-cli/lib/index.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/index'>;
+}
+declare module 'macaca-cli/lib/run/index.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/run/index'>;
+}
+declare module 'macaca-cli/lib/server/index.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/server/index'>;
+}
+declare module 'macaca-cli/lib/server/server.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/server/server'>;
+}
+declare module 'macaca-cli/lib/server/signal.js' {
+  declare module.exports: $Exports<'macaca-cli/lib/server/signal'>;
+}
+declare module 'macaca-cli/scripts/print.js' {
+  declare module.exports: $Exports<'macaca-cli/scripts/print'>;
+}
+declare module 'macaca-cli/test_ava/ava.test.js' {
+  declare module.exports: $Exports<'macaca-cli/test_ava/ava.test'>;
+}
+declare module 'macaca-cli/test_jasmine/jasmine.test.js' {
+  declare module.exports: $Exports<'macaca-cli/test_jasmine/jasmine.test'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/macaca-utils_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/macaca-utils_vx.x.x.js b/flow-typed/npm/macaca-utils_vx.x.x.js
new file mode 100644
index 0000000..6da7fa4
--- /dev/null
+++ b/flow-typed/npm/macaca-utils_vx.x.x.js
@@ -0,0 +1,39 @@
+// flow-typed signature: 815591caa2e3b3cf9763db5e80d01c1c
+// flow-typed version: <<STUB>>/macaca-utils_v^0.1.9/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'macaca-utils'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'macaca-utils' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'macaca-utils/lib/macaca-utils' {
+  declare module.exports: any;
+}
+
+declare module 'macaca-utils/test/macaca-utils.test' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'macaca-utils/lib/macaca-utils.js' {
+  declare module.exports: $Exports<'macaca-utils/lib/macaca-utils'>;
+}
+declare module 'macaca-utils/test/macaca-utils.test.js' {
+  declare module.exports: $Exports<'macaca-utils/test/macaca-utils.test'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/mocha_v2.4.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/mocha_v2.4.x.js b/flow-typed/npm/mocha_v2.4.x.js
new file mode 100644
index 0000000..fce7805
--- /dev/null
+++ b/flow-typed/npm/mocha_v2.4.x.js
@@ -0,0 +1,25 @@
+// flow-typed signature: 908ce59549760ff976de1c8777869375
+// flow-typed version: 94e9f7e0a4/mocha_v2.4.x/flow_>=v0.22.x
+
+type TestFunction = ((done: () => void) => void | Promise<mixed>);
+
+declare var describe : {
+    (name:string, spec:() => void): void;
+    only(description:string, spec:() => void): void;
+    skip(description:string, spec:() => void): void;
+    timeout(ms:number): void;
+};
+
+declare var context : typeof describe;
+
+declare var it : {
+    (name:string, spec?:TestFunction): void;
+    only(description:string, spec:TestFunction): void;
+    skip(description:string, spec:TestFunction): void;
+    timeout(ms:number): void;
+};
+
+declare function before(method : TestFunction):void;
+declare function beforeEach(method : TestFunction):void;
+declare function after(method : TestFunction):void;
+declare function afterEach(method : TestFunction):void;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/modals_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/modals_vx.x.x.js b/flow-typed/npm/modals_vx.x.x.js
new file mode 100644
index 0000000..aaef78f
--- /dev/null
+++ b/flow-typed/npm/modals_vx.x.x.js
@@ -0,0 +1,81 @@
+// flow-typed signature: ce0c870eb1fe7d632753dedcd93d9cb7
+// flow-typed version: <<STUB>>/modals_v^0.1.6/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'modals'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'modals' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'modals/build/modal' {
+  declare module.exports: any;
+}
+
+declare module 'modals/gulpfile' {
+  declare module.exports: any;
+}
+
+declare module 'modals/src/alert' {
+  declare module.exports: any;
+}
+
+declare module 'modals/src/confirm' {
+  declare module.exports: any;
+}
+
+declare module 'modals/src/index' {
+  declare module.exports: any;
+}
+
+declare module 'modals/src/modal' {
+  declare module.exports: any;
+}
+
+declare module 'modals/src/prompt' {
+  declare module.exports: any;
+}
+
+declare module 'modals/src/toast' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'modals/build/modal.js' {
+  declare module.exports: $Exports<'modals/build/modal'>;
+}
+declare module 'modals/gulpfile.js' {
+  declare module.exports: $Exports<'modals/gulpfile'>;
+}
+declare module 'modals/src/alert.js' {
+  declare module.exports: $Exports<'modals/src/alert'>;
+}
+declare module 'modals/src/confirm.js' {
+  declare module.exports: $Exports<'modals/src/confirm'>;
+}
+declare module 'modals/src/index.js' {
+  declare module.exports: $Exports<'modals/src/index'>;
+}
+declare module 'modals/src/modal.js' {
+  declare module.exports: $Exports<'modals/src/modal'>;
+}
+declare module 'modals/src/prompt.js' {
+  declare module.exports: $Exports<'modals/src/prompt'>;
+}
+declare module 'modals/src/toast.js' {
+  declare module.exports: $Exports<'modals/src/toast'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/nightwatch_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/nightwatch_vx.x.x.js b/flow-typed/npm/nightwatch_vx.x.x.js
new file mode 100644
index 0000000..68dc4fb
--- /dev/null
+++ b/flow-typed/npm/nightwatch_vx.x.x.js
@@ -0,0 +1,633 @@
+// flow-typed signature: 2c10ff52ce02274157dba92fd2a8a434
+// flow-typed version: <<STUB>>/nightwatch_v^0.9.4/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'nightwatch'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'nightwatch' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'nightwatch/bin/runner' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/custom-commands/hasOnBeforeUnload' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/globalsModule' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/mocha/github' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/mocha/googleDemoTest' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/pages/home' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/pages/searchResults' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/tests/digg' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/tests/github/github' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/tests/google' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/tests/google/googleDemoTest' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/tests/googlePageObject' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/tests/nightwatch' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/tests/onbeforeunload' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/unittests/demoTestAsync' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/unittests/testUtils' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/examples/unittests/testUtilsWithChai' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/attributeContains' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/attributeEquals' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/containsText' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/cssClassNotPresent' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/cssClassPresent' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/cssProperty' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/elementNotPresent' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/elementPresent' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/hidden' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/title' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/urlContains' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/urlEquals' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/value' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/valueContains' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/assertions/visible' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/client-commands' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/client-commands/_locateStrategy' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/client-commands/end' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/client-commands/pause' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/client-commands/perform' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/client-commands/useCss' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/client-commands/useRecursion' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/client-commands/useXpath' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/element-commands' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/element-commands/_elementByRecursion' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/element-commands/_elementsByRecursion' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/element-commands/_waitForElement' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/element-commands/waitForElementNotPresent' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/element-commands/waitForElementNotVisible' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/element-commands/waitForElementPresent' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/element-commands/waitForElementVisible' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/_baseAssertion' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/attribute' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/css' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/enabled' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/present' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/selected' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/text' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/type' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/value' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/expect/visible' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/api/protocol' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/core/api' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/core/assertion' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/core/queue' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/http/request' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/index' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/page-object/command-wrapper' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/page-object/element' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/page-object/page-utils' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/page-object/page' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/page-object/section' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/cli/child-process' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/cli/cli' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/cli/clirunner' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/cli/errorhandler' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/clientmanager' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/filematcher' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/module' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/reporter' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/reporters/junit' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/run' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/selenium' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/testcase' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/testsuite' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/runner/walk' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/util/logger' {
+  declare module.exports: any;
+}
+
+declare module 'nightwatch/lib/util/utils' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'nightwatch/bin/runner.js' {
+  declare module.exports: $Exports<'nightwatch/bin/runner'>;
+}
+declare module 'nightwatch/examples/custom-commands/hasOnBeforeUnload.js' {
+  declare module.exports: $Exports<'nightwatch/examples/custom-commands/hasOnBeforeUnload'>;
+}
+declare module 'nightwatch/examples/globalsModule.js' {
+  declare module.exports: $Exports<'nightwatch/examples/globalsModule'>;
+}
+declare module 'nightwatch/examples/mocha/github.js' {
+  declare module.exports: $Exports<'nightwatch/examples/mocha/github'>;
+}
+declare module 'nightwatch/examples/mocha/googleDemoTest.js' {
+  declare module.exports: $Exports<'nightwatch/examples/mocha/googleDemoTest'>;
+}
+declare module 'nightwatch/examples/pages/home.js' {
+  declare module.exports: $Exports<'nightwatch/examples/pages/home'>;
+}
+declare module 'nightwatch/examples/pages/searchResults.js' {
+  declare module.exports: $Exports<'nightwatch/examples/pages/searchResults'>;
+}
+declare module 'nightwatch/examples/tests/digg.js' {
+  declare module.exports: $Exports<'nightwatch/examples/tests/digg'>;
+}
+declare module 'nightwatch/examples/tests/github/github.js' {
+  declare module.exports: $Exports<'nightwatch/examples/tests/github/github'>;
+}
+declare module 'nightwatch/examples/tests/google.js' {
+  declare module.exports: $Exports<'nightwatch/examples/tests/google'>;
+}
+declare module 'nightwatch/examples/tests/google/googleDemoTest.js' {
+  declare module.exports: $Exports<'nightwatch/examples/tests/google/googleDemoTest'>;
+}
+declare module 'nightwatch/examples/tests/googlePageObject.js' {
+  declare module.exports: $Exports<'nightwatch/examples/tests/googlePageObject'>;
+}
+declare module 'nightwatch/examples/tests/nightwatch.js' {
+  declare module.exports: $Exports<'nightwatch/examples/tests/nightwatch'>;
+}
+declare module 'nightwatch/examples/tests/onbeforeunload.js' {
+  declare module.exports: $Exports<'nightwatch/examples/tests/onbeforeunload'>;
+}
+declare module 'nightwatch/examples/unittests/demoTestAsync.js' {
+  declare module.exports: $Exports<'nightwatch/examples/unittests/demoTestAsync'>;
+}
+declare module 'nightwatch/examples/unittests/testUtils.js' {
+  declare module.exports: $Exports<'nightwatch/examples/unittests/testUtils'>;
+}
+declare module 'nightwatch/examples/unittests/testUtilsWithChai.js' {
+  declare module.exports: $Exports<'nightwatch/examples/unittests/testUtilsWithChai'>;
+}
+declare module 'nightwatch/index' {
+  declare module.exports: $Exports<'nightwatch'>;
+}
+declare module 'nightwatch/index.js' {
+  declare module.exports: $Exports<'nightwatch'>;
+}
+declare module 'nightwatch/lib/api/assertions/attributeContains.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/attributeContains'>;
+}
+declare module 'nightwatch/lib/api/assertions/attributeEquals.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/attributeEquals'>;
+}
+declare module 'nightwatch/lib/api/assertions/containsText.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/containsText'>;
+}
+declare module 'nightwatch/lib/api/assertions/cssClassNotPresent.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/cssClassNotPresent'>;
+}
+declare module 'nightwatch/lib/api/assertions/cssClassPresent.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/cssClassPresent'>;
+}
+declare module 'nightwatch/lib/api/assertions/cssProperty.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/cssProperty'>;
+}
+declare module 'nightwatch/lib/api/assertions/elementNotPresent.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/elementNotPresent'>;
+}
+declare module 'nightwatch/lib/api/assertions/elementPresent.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/elementPresent'>;
+}
+declare module 'nightwatch/lib/api/assertions/hidden.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/hidden'>;
+}
+declare module 'nightwatch/lib/api/assertions/title.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/title'>;
+}
+declare module 'nightwatch/lib/api/assertions/urlContains.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/urlContains'>;
+}
+declare module 'nightwatch/lib/api/assertions/urlEquals.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/urlEquals'>;
+}
+declare module 'nightwatch/lib/api/assertions/value.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/value'>;
+}
+declare module 'nightwatch/lib/api/assertions/valueContains.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/valueContains'>;
+}
+declare module 'nightwatch/lib/api/assertions/visible.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/assertions/visible'>;
+}
+declare module 'nightwatch/lib/api/client-commands.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/client-commands'>;
+}
+declare module 'nightwatch/lib/api/client-commands/_locateStrategy.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/client-commands/_locateStrategy'>;
+}
+declare module 'nightwatch/lib/api/client-commands/end.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/client-commands/end'>;
+}
+declare module 'nightwatch/lib/api/client-commands/pause.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/client-commands/pause'>;
+}
+declare module 'nightwatch/lib/api/client-commands/perform.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/client-commands/perform'>;
+}
+declare module 'nightwatch/lib/api/client-commands/useCss.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/client-commands/useCss'>;
+}
+declare module 'nightwatch/lib/api/client-commands/useRecursion.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/client-commands/useRecursion'>;
+}
+declare module 'nightwatch/lib/api/client-commands/useXpath.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/client-commands/useXpath'>;
+}
+declare module 'nightwatch/lib/api/element-commands.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/element-commands'>;
+}
+declare module 'nightwatch/lib/api/element-commands/_elementByRecursion.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/element-commands/_elementByRecursion'>;
+}
+declare module 'nightwatch/lib/api/element-commands/_elementsByRecursion.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/element-commands/_elementsByRecursion'>;
+}
+declare module 'nightwatch/lib/api/element-commands/_waitForElement.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/element-commands/_waitForElement'>;
+}
+declare module 'nightwatch/lib/api/element-commands/waitForElementNotPresent.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/element-commands/waitForElementNotPresent'>;
+}
+declare module 'nightwatch/lib/api/element-commands/waitForElementNotVisible.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/element-commands/waitForElementNotVisible'>;
+}
+declare module 'nightwatch/lib/api/element-commands/waitForElementPresent.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/element-commands/waitForElementPresent'>;
+}
+declare module 'nightwatch/lib/api/element-commands/waitForElementVisible.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/element-commands/waitForElementVisible'>;
+}
+declare module 'nightwatch/lib/api/expect.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect'>;
+}
+declare module 'nightwatch/lib/api/expect/_baseAssertion.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/_baseAssertion'>;
+}
+declare module 'nightwatch/lib/api/expect/attribute.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/attribute'>;
+}
+declare module 'nightwatch/lib/api/expect/css.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/css'>;
+}
+declare module 'nightwatch/lib/api/expect/enabled.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/enabled'>;
+}
+declare module 'nightwatch/lib/api/expect/present.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/present'>;
+}
+declare module 'nightwatch/lib/api/expect/selected.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/selected'>;
+}
+declare module 'nightwatch/lib/api/expect/text.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/text'>;
+}
+declare module 'nightwatch/lib/api/expect/type.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/type'>;
+}
+declare module 'nightwatch/lib/api/expect/value.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/value'>;
+}
+declare module 'nightwatch/lib/api/expect/visible.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/expect/visible'>;
+}
+declare module 'nightwatch/lib/api/protocol.js' {
+  declare module.exports: $Exports<'nightwatch/lib/api/protocol'>;
+}
+declare module 'nightwatch/lib/core/api.js' {
+  declare module.exports: $Exports<'nightwatch/lib/core/api'>;
+}
+declare module 'nightwatch/lib/core/assertion.js' {
+  declare module.exports: $Exports<'nightwatch/lib/core/assertion'>;
+}
+declare module 'nightwatch/lib/core/queue.js' {
+  declare module.exports: $Exports<'nightwatch/lib/core/queue'>;
+}
+declare module 'nightwatch/lib/http/request.js' {
+  declare module.exports: $Exports<'nightwatch/lib/http/request'>;
+}
+declare module 'nightwatch/lib/index.js' {
+  declare module.exports: $Exports<'nightwatch/lib/index'>;
+}
+declare module 'nightwatch/lib/page-object/command-wrapper.js' {
+  declare module.exports: $Exports<'nightwatch/lib/page-object/command-wrapper'>;
+}
+declare module 'nightwatch/lib/page-object/element.js' {
+  declare module.exports: $Exports<'nightwatch/lib/page-object/element'>;
+}
+declare module 'nightwatch/lib/page-object/page-utils.js' {
+  declare module.exports: $Exports<'nightwatch/lib/page-object/page-utils'>;
+}
+declare module 'nightwatch/lib/page-object/page.js' {
+  declare module.exports: $Exports<'nightwatch/lib/page-object/page'>;
+}
+declare module 'nightwatch/lib/page-object/section.js' {
+  declare module.exports: $Exports<'nightwatch/lib/page-object/section'>;
+}
+declare module 'nightwatch/lib/runner/cli/child-process.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/cli/child-process'>;
+}
+declare module 'nightwatch/lib/runner/cli/cli.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/cli/cli'>;
+}
+declare module 'nightwatch/lib/runner/cli/clirunner.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/cli/clirunner'>;
+}
+declare module 'nightwatch/lib/runner/cli/errorhandler.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/cli/errorhandler'>;
+}
+declare module 'nightwatch/lib/runner/clientmanager.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/clientmanager'>;
+}
+declare module 'nightwatch/lib/runner/filematcher.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/filematcher'>;
+}
+declare module 'nightwatch/lib/runner/module.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/module'>;
+}
+declare module 'nightwatch/lib/runner/reporter.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/reporter'>;
+}
+declare module 'nightwatch/lib/runner/reporters/junit.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/reporters/junit'>;
+}
+declare module 'nightwatch/lib/runner/run.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/run'>;
+}
+declare module 'nightwatch/lib/runner/selenium.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/selenium'>;
+}
+declare module 'nightwatch/lib/runner/testcase.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/testcase'>;
+}
+declare module 'nightwatch/lib/runner/testsuite.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/testsuite'>;
+}
+declare module 'nightwatch/lib/runner/walk.js' {
+  declare module.exports: $Exports<'nightwatch/lib/runner/walk'>;
+}
+declare module 'nightwatch/lib/util/logger.js' {
+  declare module.exports: $Exports<'nightwatch/lib/util/logger'>;
+}
+declare module 'nightwatch/lib/util/utils.js' {
+  declare module.exports: $Exports<'nightwatch/lib/util/utils'>;
+}


[27/50] [abbrv] incubator-weex git commit: * [html5] add flow-type supported.

Posted by so...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/phantomjs-prebuilt_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/phantomjs-prebuilt_vx.x.x.js b/flow-typed/npm/phantomjs-prebuilt_vx.x.x.js
new file mode 100644
index 0000000..40b8641
--- /dev/null
+++ b/flow-typed/npm/phantomjs-prebuilt_vx.x.x.js
@@ -0,0 +1,389 @@
+// flow-typed signature: 814522ded8f7a40566037440611f8d3b
+// flow-typed version: <<STUB>>/phantomjs-prebuilt_v^2.1.7/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'phantomjs-prebuilt'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'phantomjs-prebuilt' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'phantomjs-prebuilt/install' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/location' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/arguments' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/child_process-examples' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/colorwheel' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/countdown' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/detectsniff' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/echoToFile' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/features' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/fibo' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/hello' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/injectme' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/loadspeed' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/loadurlwithoutcss' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/modernizr' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/module' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/netlog' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/netsniff' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/openurlwithproxy' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/outputEncoding' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/page_events' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/pagecallback' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/phantomwebintro' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/post' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/postjson' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/postserver' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/printenv' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/printheaderfooter' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/printmargins' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/rasterize' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/render_multi_url' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/responsive-screenshot' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/run-jasmine' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/run-jasmine2' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/run-qunit' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/scandir' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/server' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/serverkeepalive' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/simpleserver' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/sleepsort' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/stdin-stdout-stderr' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/universe' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/unrandomize' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/useragent' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/version' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/waitfor' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantom/examples/walk_through_frames' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/phantomjs' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/lib/util' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/test/exit' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/test/loadspeed' {
+  declare module.exports: any;
+}
+
+declare module 'phantomjs-prebuilt/test/tests' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'phantomjs-prebuilt/install.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/install'>;
+}
+declare module 'phantomjs-prebuilt/lib/location.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/location'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/arguments.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/arguments'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/child_process-examples.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/child_process-examples'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/colorwheel.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/colorwheel'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/countdown.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/countdown'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/detectsniff.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/detectsniff'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/echoToFile.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/echoToFile'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/features.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/features'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/fibo.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/fibo'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/hello.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/hello'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/injectme.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/injectme'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/loadspeed.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/loadspeed'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/loadurlwithoutcss.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/loadurlwithoutcss'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/modernizr.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/modernizr'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/module.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/module'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/netlog.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/netlog'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/netsniff.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/netsniff'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/openurlwithproxy.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/openurlwithproxy'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/outputEncoding.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/outputEncoding'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/page_events.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/page_events'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/pagecallback.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/pagecallback'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/phantomwebintro.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/phantomwebintro'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/post.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/post'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/postjson.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/postjson'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/postserver.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/postserver'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/printenv.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/printenv'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/printheaderfooter.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/printheaderfooter'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/printmargins.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/printmargins'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/rasterize.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/rasterize'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/render_multi_url.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/render_multi_url'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/responsive-screenshot.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/responsive-screenshot'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/run-jasmine.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/run-jasmine'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/run-jasmine2.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/run-jasmine2'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/run-qunit.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/run-qunit'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/scandir.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/scandir'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/server.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/server'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/serverkeepalive.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/serverkeepalive'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/simpleserver.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/simpleserver'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/sleepsort.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/sleepsort'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/stdin-stdout-stderr.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/stdin-stdout-stderr'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/universe.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/universe'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/unrandomize.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/unrandomize'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/useragent.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/useragent'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/version.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/version'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/waitfor.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/waitfor'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantom/examples/walk_through_frames.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantom/examples/walk_through_frames'>;
+}
+declare module 'phantomjs-prebuilt/lib/phantomjs.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/phantomjs'>;
+}
+declare module 'phantomjs-prebuilt/lib/util.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/lib/util'>;
+}
+declare module 'phantomjs-prebuilt/test/exit.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/test/exit'>;
+}
+declare module 'phantomjs-prebuilt/test/loadspeed.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/test/loadspeed'>;
+}
+declare module 'phantomjs-prebuilt/test/tests.js' {
+  declare module.exports: $Exports<'phantomjs-prebuilt/test/tests'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/query-string_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/query-string_vx.x.x.js b/flow-typed/npm/query-string_vx.x.x.js
new file mode 100644
index 0000000..81a2ff4
--- /dev/null
+++ b/flow-typed/npm/query-string_vx.x.x.js
@@ -0,0 +1,33 @@
+// flow-typed signature: 11bcd754a34b4417a48b5edd97591597
+// flow-typed version: <<STUB>>/query-string_v^4.2.3/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'query-string'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'query-string' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+
+
+// Filename aliases
+declare module 'query-string/index' {
+  declare module.exports: $Exports<'query-string'>;
+}
+declare module 'query-string/index.js' {
+  declare module.exports: $Exports<'query-string'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/reify_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/reify_vx.x.x.js b/flow-typed/npm/reify_vx.x.x.js
new file mode 100644
index 0000000..6fdeee3
--- /dev/null
+++ b/flow-typed/npm/reify_vx.x.x.js
@@ -0,0 +1,95 @@
+// flow-typed signature: 1e695bf8a2ec6c4dccc754434630cb6c
+// flow-typed version: <<STUB>>/reify_v^0.3.8/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'reify'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'reify' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'reify/lib/compiler' {
+  declare module.exports: any;
+}
+
+declare module 'reify/lib/empty' {
+  declare module.exports: any;
+}
+
+declare module 'reify/lib/entry' {
+  declare module.exports: any;
+}
+
+declare module 'reify/lib/runtime' {
+  declare module.exports: any;
+}
+
+declare module 'reify/lib/utils' {
+  declare module.exports: any;
+}
+
+declare module 'reify/node/caching-compiler' {
+  declare module.exports: any;
+}
+
+declare module 'reify/node/compile-hook' {
+  declare module.exports: any;
+}
+
+declare module 'reify/node/index' {
+  declare module.exports: any;
+}
+
+declare module 'reify/node/runtime' {
+  declare module.exports: any;
+}
+
+declare module 'reify/repl/index' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'reify/lib/compiler.js' {
+  declare module.exports: $Exports<'reify/lib/compiler'>;
+}
+declare module 'reify/lib/empty.js' {
+  declare module.exports: $Exports<'reify/lib/empty'>;
+}
+declare module 'reify/lib/entry.js' {
+  declare module.exports: $Exports<'reify/lib/entry'>;
+}
+declare module 'reify/lib/runtime.js' {
+  declare module.exports: $Exports<'reify/lib/runtime'>;
+}
+declare module 'reify/lib/utils.js' {
+  declare module.exports: $Exports<'reify/lib/utils'>;
+}
+declare module 'reify/node/caching-compiler.js' {
+  declare module.exports: $Exports<'reify/node/caching-compiler'>;
+}
+declare module 'reify/node/compile-hook.js' {
+  declare module.exports: $Exports<'reify/node/compile-hook'>;
+}
+declare module 'reify/node/index.js' {
+  declare module.exports: $Exports<'reify/node/index'>;
+}
+declare module 'reify/node/runtime.js' {
+  declare module.exports: $Exports<'reify/node/runtime'>;
+}
+declare module 'reify/repl/index.js' {
+  declare module.exports: $Exports<'reify/repl/index'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-plugin-buble_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-buble_vx.x.x.js b/flow-typed/npm/rollup-plugin-buble_vx.x.x.js
new file mode 100644
index 0000000..8cb0d89
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-buble_vx.x.x.js
@@ -0,0 +1,39 @@
+// flow-typed signature: bc76123b8d3835bf9593da423abe04d7
+// flow-typed version: <<STUB>>/rollup-plugin-buble_v^0.14.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-buble'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-buble' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup-plugin-buble/dist/rollup-plugin-buble.cjs' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-buble/dist/rollup-plugin-buble.es' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup-plugin-buble/dist/rollup-plugin-buble.cjs.js' {
+  declare module.exports: $Exports<'rollup-plugin-buble/dist/rollup-plugin-buble.cjs'>;
+}
+declare module 'rollup-plugin-buble/dist/rollup-plugin-buble.es.js' {
+  declare module.exports: $Exports<'rollup-plugin-buble/dist/rollup-plugin-buble.es'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js b/flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js
new file mode 100644
index 0000000..160b39c
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js
@@ -0,0 +1,81 @@
+// flow-typed signature: 240e95bdb13c3a35f80d872c5f1bfb07
+// flow-typed version: <<STUB>>/rollup-plugin-commonjs_v^5.0.4/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-commonjs'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-commonjs' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup-plugin-commonjs/dist/rollup-plugin-commonjs.cjs' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-commonjs/dist/rollup-plugin-commonjs.es' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-commonjs/src/ast-utils' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-commonjs/src/defaultResolver' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-commonjs/src/helpers' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-commonjs/src/index' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-commonjs/src/transform' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-commonjs/src/utils' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup-plugin-commonjs/dist/rollup-plugin-commonjs.cjs.js' {
+  declare module.exports: $Exports<'rollup-plugin-commonjs/dist/rollup-plugin-commonjs.cjs'>;
+}
+declare module 'rollup-plugin-commonjs/dist/rollup-plugin-commonjs.es.js' {
+  declare module.exports: $Exports<'rollup-plugin-commonjs/dist/rollup-plugin-commonjs.es'>;
+}
+declare module 'rollup-plugin-commonjs/src/ast-utils.js' {
+  declare module.exports: $Exports<'rollup-plugin-commonjs/src/ast-utils'>;
+}
+declare module 'rollup-plugin-commonjs/src/defaultResolver.js' {
+  declare module.exports: $Exports<'rollup-plugin-commonjs/src/defaultResolver'>;
+}
+declare module 'rollup-plugin-commonjs/src/helpers.js' {
+  declare module.exports: $Exports<'rollup-plugin-commonjs/src/helpers'>;
+}
+declare module 'rollup-plugin-commonjs/src/index.js' {
+  declare module.exports: $Exports<'rollup-plugin-commonjs/src/index'>;
+}
+declare module 'rollup-plugin-commonjs/src/transform.js' {
+  declare module.exports: $Exports<'rollup-plugin-commonjs/src/transform'>;
+}
+declare module 'rollup-plugin-commonjs/src/utils.js' {
+  declare module.exports: $Exports<'rollup-plugin-commonjs/src/utils'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-plugin-eslint_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-eslint_vx.x.x.js b/flow-typed/npm/rollup-plugin-eslint_vx.x.x.js
new file mode 100644
index 0000000..e23c687
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-eslint_vx.x.x.js
@@ -0,0 +1,39 @@
+// flow-typed signature: 1f92e6e0e0e9d72d7fdfeeadbb190eb8
+// flow-typed version: <<STUB>>/rollup-plugin-eslint_v^3.0.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-eslint'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-eslint' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup-plugin-eslint/dist/rollup-plugin-eslint.cjs' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-eslint/dist/rollup-plugin-eslint.es' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup-plugin-eslint/dist/rollup-plugin-eslint.cjs.js' {
+  declare module.exports: $Exports<'rollup-plugin-eslint/dist/rollup-plugin-eslint.cjs'>;
+}
+declare module 'rollup-plugin-eslint/dist/rollup-plugin-eslint.es.js' {
+  declare module.exports: $Exports<'rollup-plugin-eslint/dist/rollup-plugin-eslint.es'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-plugin-flow-no-whitespace_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-flow-no-whitespace_vx.x.x.js b/flow-typed/npm/rollup-plugin-flow-no-whitespace_vx.x.x.js
new file mode 100644
index 0000000..db4c4ee
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-flow-no-whitespace_vx.x.x.js
@@ -0,0 +1,33 @@
+// flow-typed signature: e3657500c54b43bf9776c7b33d409899
+// flow-typed version: <<STUB>>/rollup-plugin-flow-no-whitespace_v^1.0.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-flow-no-whitespace'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-flow-no-whitespace' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+
+
+// Filename aliases
+declare module 'rollup-plugin-flow-no-whitespace/index' {
+  declare module.exports: $Exports<'rollup-plugin-flow-no-whitespace'>;
+}
+declare module 'rollup-plugin-flow-no-whitespace/index.js' {
+  declare module.exports: $Exports<'rollup-plugin-flow-no-whitespace'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-plugin-json_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-json_vx.x.x.js b/flow-typed/npm/rollup-plugin-json_vx.x.x.js
new file mode 100644
index 0000000..ffa9a45
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-json_vx.x.x.js
@@ -0,0 +1,46 @@
+// flow-typed signature: 68c51e9216afd9798d898289d7675b5a
+// flow-typed version: <<STUB>>/rollup-plugin-json_v^2.0.2/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-json'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-json' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup-plugin-json/dist/rollup-plugin-json.cjs' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-json/dist/rollup-plugin-json.es' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-json/src/index' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup-plugin-json/dist/rollup-plugin-json.cjs.js' {
+  declare module.exports: $Exports<'rollup-plugin-json/dist/rollup-plugin-json.cjs'>;
+}
+declare module 'rollup-plugin-json/dist/rollup-plugin-json.es.js' {
+  declare module.exports: $Exports<'rollup-plugin-json/dist/rollup-plugin-json.es'>;
+}
+declare module 'rollup-plugin-json/src/index.js' {
+  declare module.exports: $Exports<'rollup-plugin-json/src/index'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-plugin-node-resolve_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-node-resolve_vx.x.x.js b/flow-typed/npm/rollup-plugin-node-resolve_vx.x.x.js
new file mode 100644
index 0000000..e439a72
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-node-resolve_vx.x.x.js
@@ -0,0 +1,53 @@
+// flow-typed signature: 77087eb25686219194e4dbba6f9cd202
+// flow-typed version: <<STUB>>/rollup-plugin-node-resolve_v^2.0.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-node-resolve'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-node-resolve' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.es6' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-node-resolve/src/empty' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-node-resolve/src/index' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js' {
+  declare module.exports: $Exports<'rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs'>;
+}
+declare module 'rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.es6.js' {
+  declare module.exports: $Exports<'rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.es6'>;
+}
+declare module 'rollup-plugin-node-resolve/src/empty.js' {
+  declare module.exports: $Exports<'rollup-plugin-node-resolve/src/empty'>;
+}
+declare module 'rollup-plugin-node-resolve/src/index.js' {
+  declare module.exports: $Exports<'rollup-plugin-node-resolve/src/index'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-plugin-postcss_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-postcss_vx.x.x.js b/flow-typed/npm/rollup-plugin-postcss_vx.x.x.js
new file mode 100644
index 0000000..3ed88e1
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-postcss_vx.x.x.js
@@ -0,0 +1,38 @@
+// flow-typed signature: ffee129c2c2545168f37519a266d3609
+// flow-typed version: <<STUB>>/rollup-plugin-postcss_v^0.2.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-postcss'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-postcss' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup-plugin-postcss/src/index' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup-plugin-postcss/index' {
+  declare module.exports: $Exports<'rollup-plugin-postcss'>;
+}
+declare module 'rollup-plugin-postcss/index.js' {
+  declare module.exports: $Exports<'rollup-plugin-postcss'>;
+}
+declare module 'rollup-plugin-postcss/src/index.js' {
+  declare module.exports: $Exports<'rollup-plugin-postcss/src/index'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-plugin-replace_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-replace_vx.x.x.js b/flow-typed/npm/rollup-plugin-replace_vx.x.x.js
new file mode 100644
index 0000000..2ed8799
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-replace_vx.x.x.js
@@ -0,0 +1,46 @@
+// flow-typed signature: 35c713a7ab0785b9a67cca4f3f37dded
+// flow-typed version: <<STUB>>/rollup-plugin-replace_v^1.1.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-replace'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-replace' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup-plugin-replace/dist/rollup-plugin-replace.cjs' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-replace/dist/rollup-plugin-replace.es' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-plugin-replace/src/index' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup-plugin-replace/dist/rollup-plugin-replace.cjs.js' {
+  declare module.exports: $Exports<'rollup-plugin-replace/dist/rollup-plugin-replace.cjs'>;
+}
+declare module 'rollup-plugin-replace/dist/rollup-plugin-replace.es.js' {
+  declare module.exports: $Exports<'rollup-plugin-replace/dist/rollup-plugin-replace.es'>;
+}
+declare module 'rollup-plugin-replace/src/index.js' {
+  declare module.exports: $Exports<'rollup-plugin-replace/src/index'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-plugin-uglify_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-plugin-uglify_vx.x.x.js b/flow-typed/npm/rollup-plugin-uglify_vx.x.x.js
new file mode 100644
index 0000000..df86b49
--- /dev/null
+++ b/flow-typed/npm/rollup-plugin-uglify_vx.x.x.js
@@ -0,0 +1,32 @@
+// flow-typed signature: 286d067bccb84f96697e4a34420d54cc
+// flow-typed version: <<STUB>>/rollup-plugin-uglify_v^1.0.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-plugin-uglify'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-plugin-uglify' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup-plugin-uglify/dist/rollup-plugin-uglify' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup-plugin-uglify/dist/rollup-plugin-uglify.js' {
+  declare module.exports: $Exports<'rollup-plugin-uglify/dist/rollup-plugin-uglify'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup-watch_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup-watch_vx.x.x.js b/flow-typed/npm/rollup-watch_vx.x.x.js
new file mode 100644
index 0000000..e9f72e5
--- /dev/null
+++ b/flow-typed/npm/rollup-watch_vx.x.x.js
@@ -0,0 +1,67 @@
+// flow-typed signature: 8418ee3b6fd2b08499999b2de0282c95
+// flow-typed version: <<STUB>>/rollup-watch_v^2.5.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup-watch'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup-watch' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup-watch/dist/rollup-watch.cjs' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-watch/dist/rollup-watch.es6' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-watch/src/index' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-watch/src/utils/checkVersion' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-watch/src/utils/object' {
+  declare module.exports: any;
+}
+
+declare module 'rollup-watch/src/utils/promise' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup-watch/dist/rollup-watch.cjs.js' {
+  declare module.exports: $Exports<'rollup-watch/dist/rollup-watch.cjs'>;
+}
+declare module 'rollup-watch/dist/rollup-watch.es6.js' {
+  declare module.exports: $Exports<'rollup-watch/dist/rollup-watch.es6'>;
+}
+declare module 'rollup-watch/src/index.js' {
+  declare module.exports: $Exports<'rollup-watch/src/index'>;
+}
+declare module 'rollup-watch/src/utils/checkVersion.js' {
+  declare module.exports: $Exports<'rollup-watch/src/utils/checkVersion'>;
+}
+declare module 'rollup-watch/src/utils/object.js' {
+  declare module.exports: $Exports<'rollup-watch/src/utils/object'>;
+}
+declare module 'rollup-watch/src/utils/promise.js' {
+  declare module.exports: $Exports<'rollup-watch/src/utils/promise'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/rollup_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/rollup_vx.x.x.js b/flow-typed/npm/rollup_vx.x.x.js
new file mode 100644
index 0000000..4c81919
--- /dev/null
+++ b/flow-typed/npm/rollup_vx.x.x.js
@@ -0,0 +1,46 @@
+// flow-typed signature: c6010c39145d27c2d057b47ef1938352
+// flow-typed version: <<STUB>>/rollup_v^0.36.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'rollup'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'rollup' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'rollup/dist/rollup.browser' {
+  declare module.exports: any;
+}
+
+declare module 'rollup/dist/rollup.es' {
+  declare module.exports: any;
+}
+
+declare module 'rollup/dist/rollup' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'rollup/dist/rollup.browser.js' {
+  declare module.exports: $Exports<'rollup/dist/rollup.browser'>;
+}
+declare module 'rollup/dist/rollup.es.js' {
+  declare module.exports: $Exports<'rollup/dist/rollup.es'>;
+}
+declare module 'rollup/dist/rollup.js' {
+  declare module.exports: $Exports<'rollup/dist/rollup'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/scroll-to_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/scroll-to_vx.x.x.js b/flow-typed/npm/scroll-to_vx.x.x.js
new file mode 100644
index 0000000..6810be5
--- /dev/null
+++ b/flow-typed/npm/scroll-to_vx.x.x.js
@@ -0,0 +1,33 @@
+// flow-typed signature: a4f400ae271b6cb6dc34c2bd886055d4
+// flow-typed version: <<STUB>>/scroll-to_v0.0.2/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'scroll-to'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'scroll-to' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+
+
+// Filename aliases
+declare module 'scroll-to/index' {
+  declare module.exports: $Exports<'scroll-to'>;
+}
+declare module 'scroll-to/index.js' {
+  declare module.exports: $Exports<'scroll-to'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/selenium-server_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/selenium-server_vx.x.x.js b/flow-typed/npm/selenium-server_vx.x.x.js
new file mode 100644
index 0000000..78d81c4
--- /dev/null
+++ b/flow-typed/npm/selenium-server_vx.x.x.js
@@ -0,0 +1,39 @@
+// flow-typed signature: 88fccb37f12dc173d61cf0f761f844f4
+// flow-typed version: <<STUB>>/selenium-server_v2.53.1/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'selenium-server'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'selenium-server' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'selenium-server/lib/runner/app' {
+  declare module.exports: any;
+}
+
+declare module 'selenium-server/lib/selenium-server' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'selenium-server/lib/runner/app.js' {
+  declare module.exports: $Exports<'selenium-server/lib/runner/app'>;
+}
+declare module 'selenium-server/lib/selenium-server.js' {
+  declare module.exports: $Exports<'selenium-server/lib/selenium-server'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/semver_v5.1.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/semver_v5.1.x.js b/flow-typed/npm/semver_v5.1.x.js
new file mode 100644
index 0000000..6331b84
--- /dev/null
+++ b/flow-typed/npm/semver_v5.1.x.js
@@ -0,0 +1,81 @@
+// flow-typed signature: c5f918cd3de18b19a20558e6f3bbcc84
+// flow-typed version: cdd17a64e0/semver_v5.1.x/flow_>=v0.27.0
+
+// List of members taken from here: https://www.npmjs.com/package/semver/#functions
+// TODO support the `loose` parameter
+// TODO support SemVer instances as input parameters
+declare module 'semver' {
+  declare type Release =
+    'major' |
+    'premajor' |
+    'minor' |
+    'preminor' |
+    'patch' |
+    'prepatch' |
+    'prerelease';
+
+  // The supported comparators are taken from the source here:
+  // https://github.com/npm/node-semver/blob/8bd070b550db2646362c9883c8d008d32f66a234/semver.js#L623
+  declare type Comparator =
+    '===' |
+    '!==' |
+    '==' |
+    '=' |
+    '' |  // Not sure why you would want this, but whatever.
+    '!=' |
+    '>' |
+    '>=' |
+    '<' |
+    '<=';
+
+  declare class SemVer {
+    loose: ?boolean,
+    raw: string,
+    major: number,
+    minor: number,
+    patch: number,
+    prerelease: Array<string | number>,
+    build: Array<string>,
+    version: string,
+  }
+
+  // Functions
+  declare function valid(v: string): string | null;
+  declare function inc(v: string, release: Release): string | null;
+  declare function major(v: string): number;
+  declare function minor(v: string): number;
+  declare function patch(v: string): number;
+
+  // Comparison
+  declare function gt(v1: string, v2: string): boolean;
+  declare function gte(v1: string, v2: string): boolean;
+  declare function lt(v1: string, v2: string): boolean;
+  declare function lte(v1: string, v2: string): boolean;
+  declare function eq(v1: string, v2: string): boolean;
+  declare function neq(v1: string, v2: string): boolean;
+  declare function cmp(v1: string, comparator: Comparator, v2: string): boolean;
+  declare function compare(v1: string, v2: string): -1 | 0 | 1;
+  declare function rcompare(v1: string, v2: string): -1 | 0 | 1;
+  declare function diff(v1: string, v2: string): ?Release;
+
+  // Ranges
+  declare function validRange(r: string): string | null;
+  declare function satisfies(version: string, range: string): boolean;
+  declare function maxSatisfying(versions: Array<string>, range: string): string | null;
+  declare function gtr(version: string, range: string): boolean;
+  declare function ltr(version: string, range: string): boolean;
+  declare function outside(version: string, range: string, hilo: '>' | '<'): boolean;
+
+  // Not explicitly documented
+  declare function parse(version: string): ?SemVer;
+
+  declare class Range {
+    set: Array<Array<{semver: SemVer}>>;
+
+    constructor(range: string, loose?: boolean): Range;
+
+    format(): string;
+    test(version: string): boolean;
+    toString(): string;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/serve_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/serve_vx.x.x.js b/flow-typed/npm/serve_vx.x.x.js
new file mode 100644
index 0000000..4bd9cde
--- /dev/null
+++ b/flow-typed/npm/serve_vx.x.x.js
@@ -0,0 +1,18 @@
+// flow-typed signature: b2a86e0e21523ed6260f76eaf06f7b99
+// flow-typed version: <<STUB>>/serve_v^1.4.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'serve'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'serve' {
+  declare module.exports: any;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/sinon-chai_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/sinon-chai_vx.x.x.js b/flow-typed/npm/sinon-chai_vx.x.x.js
new file mode 100644
index 0000000..61cf4b0
--- /dev/null
+++ b/flow-typed/npm/sinon-chai_vx.x.x.js
@@ -0,0 +1,32 @@
+// flow-typed signature: fbafafb5202f0bb33ff57efb91900bbb
+// flow-typed version: <<STUB>>/sinon-chai_v^2.8.0/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'sinon-chai'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'sinon-chai' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'sinon-chai/lib/sinon-chai' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'sinon-chai/lib/sinon-chai.js' {
+  declare module.exports: $Exports<'sinon-chai/lib/sinon-chai'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/sinon_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/sinon_vx.x.x.js b/flow-typed/npm/sinon_vx.x.x.js
new file mode 100644
index 0000000..cd8e630
--- /dev/null
+++ b/flow-typed/npm/sinon_vx.x.x.js
@@ -0,0 +1,263 @@
+// flow-typed signature: 6855ff5926bee13f42449072f47a638d
+// flow-typed version: <<STUB>>/sinon_v^1.17.4/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'sinon'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'sinon' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'sinon/lib/sinon' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/assert' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/behavior' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/call' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/collection' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/extend' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/format' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/log_error' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/match' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/mock' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/sandbox' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/spy' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/stub' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/test_case' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/test' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/times_in_words' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/typeOf' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/core' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/event' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/fake_server_with_clock' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/fake_server' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/fake_timers' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/fake_xdomain_request' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/fake_xml_http_request' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/timers_ie' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/xdr_ie' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/util/xhr_ie' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/lib/sinon/walk' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/pkg/sinon-1.17.7' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/pkg/sinon-ie-1.17.7' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/pkg/sinon-ie' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/pkg/sinon-server-1.17.7' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/pkg/sinon-server' {
+  declare module.exports: any;
+}
+
+declare module 'sinon/pkg/sinon' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'sinon/lib/sinon.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon'>;
+}
+declare module 'sinon/lib/sinon/assert.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/assert'>;
+}
+declare module 'sinon/lib/sinon/behavior.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/behavior'>;
+}
+declare module 'sinon/lib/sinon/call.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/call'>;
+}
+declare module 'sinon/lib/sinon/collection.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/collection'>;
+}
+declare module 'sinon/lib/sinon/extend.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/extend'>;
+}
+declare module 'sinon/lib/sinon/format.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/format'>;
+}
+declare module 'sinon/lib/sinon/log_error.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/log_error'>;
+}
+declare module 'sinon/lib/sinon/match.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/match'>;
+}
+declare module 'sinon/lib/sinon/mock.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/mock'>;
+}
+declare module 'sinon/lib/sinon/sandbox.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/sandbox'>;
+}
+declare module 'sinon/lib/sinon/spy.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/spy'>;
+}
+declare module 'sinon/lib/sinon/stub.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/stub'>;
+}
+declare module 'sinon/lib/sinon/test_case.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/test_case'>;
+}
+declare module 'sinon/lib/sinon/test.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/test'>;
+}
+declare module 'sinon/lib/sinon/times_in_words.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/times_in_words'>;
+}
+declare module 'sinon/lib/sinon/typeOf.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/typeOf'>;
+}
+declare module 'sinon/lib/sinon/util/core.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/core'>;
+}
+declare module 'sinon/lib/sinon/util/event.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/event'>;
+}
+declare module 'sinon/lib/sinon/util/fake_server_with_clock.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_server_with_clock'>;
+}
+declare module 'sinon/lib/sinon/util/fake_server.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_server'>;
+}
+declare module 'sinon/lib/sinon/util/fake_timers.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_timers'>;
+}
+declare module 'sinon/lib/sinon/util/fake_xdomain_request.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_xdomain_request'>;
+}
+declare module 'sinon/lib/sinon/util/fake_xml_http_request.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/fake_xml_http_request'>;
+}
+declare module 'sinon/lib/sinon/util/timers_ie.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/timers_ie'>;
+}
+declare module 'sinon/lib/sinon/util/xdr_ie.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/xdr_ie'>;
+}
+declare module 'sinon/lib/sinon/util/xhr_ie.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/util/xhr_ie'>;
+}
+declare module 'sinon/lib/sinon/walk.js' {
+  declare module.exports: $Exports<'sinon/lib/sinon/walk'>;
+}
+declare module 'sinon/pkg/sinon-1.17.7.js' {
+  declare module.exports: $Exports<'sinon/pkg/sinon-1.17.7'>;
+}
+declare module 'sinon/pkg/sinon-ie-1.17.7.js' {
+  declare module.exports: $Exports<'sinon/pkg/sinon-ie-1.17.7'>;
+}
+declare module 'sinon/pkg/sinon-ie.js' {
+  declare module.exports: $Exports<'sinon/pkg/sinon-ie'>;
+}
+declare module 'sinon/pkg/sinon-server-1.17.7.js' {
+  declare module.exports: $Exports<'sinon/pkg/sinon-server-1.17.7'>;
+}
+declare module 'sinon/pkg/sinon-server.js' {
+  declare module.exports: $Exports<'sinon/pkg/sinon-server'>;
+}
+declare module 'sinon/pkg/sinon.js' {
+  declare module.exports: $Exports<'sinon/pkg/sinon'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/uglify-js_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/uglify-js_vx.x.x.js b/flow-typed/npm/uglify-js_vx.x.x.js
new file mode 100644
index 0000000..916af8c
--- /dev/null
+++ b/flow-typed/npm/uglify-js_vx.x.x.js
@@ -0,0 +1,116 @@
+// flow-typed signature: 36af0b055ee208eb786e117b4d782a5a
+// flow-typed version: <<STUB>>/uglify-js_v^2.6.4/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'uglify-js'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'uglify-js' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'uglify-js/bin/extract-props' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/ast' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/compress' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/mozilla-ast' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/output' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/parse' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/propmangle' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/scope' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/sourcemap' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/transform' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/lib/utils' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/tools/exports' {
+  declare module.exports: any;
+}
+
+declare module 'uglify-js/tools/node' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'uglify-js/bin/extract-props.js' {
+  declare module.exports: $Exports<'uglify-js/bin/extract-props'>;
+}
+declare module 'uglify-js/lib/ast.js' {
+  declare module.exports: $Exports<'uglify-js/lib/ast'>;
+}
+declare module 'uglify-js/lib/compress.js' {
+  declare module.exports: $Exports<'uglify-js/lib/compress'>;
+}
+declare module 'uglify-js/lib/mozilla-ast.js' {
+  declare module.exports: $Exports<'uglify-js/lib/mozilla-ast'>;
+}
+declare module 'uglify-js/lib/output.js' {
+  declare module.exports: $Exports<'uglify-js/lib/output'>;
+}
+declare module 'uglify-js/lib/parse.js' {
+  declare module.exports: $Exports<'uglify-js/lib/parse'>;
+}
+declare module 'uglify-js/lib/propmangle.js' {
+  declare module.exports: $Exports<'uglify-js/lib/propmangle'>;
+}
+declare module 'uglify-js/lib/scope.js' {
+  declare module.exports: $Exports<'uglify-js/lib/scope'>;
+}
+declare module 'uglify-js/lib/sourcemap.js' {
+  declare module.exports: $Exports<'uglify-js/lib/sourcemap'>;
+}
+declare module 'uglify-js/lib/transform.js' {
+  declare module.exports: $Exports<'uglify-js/lib/transform'>;
+}
+declare module 'uglify-js/lib/utils.js' {
+  declare module.exports: $Exports<'uglify-js/lib/utils'>;
+}
+declare module 'uglify-js/tools/exports.js' {
+  declare module.exports: $Exports<'uglify-js/tools/exports'>;
+}
+declare module 'uglify-js/tools/node.js' {
+  declare module.exports: $Exports<'uglify-js/tools/node'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/vue-loader_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/vue-loader_vx.x.x.js b/flow-typed/npm/vue-loader_vx.x.x.js
new file mode 100644
index 0000000..3efda48
--- /dev/null
+++ b/flow-typed/npm/vue-loader_vx.x.x.js
@@ -0,0 +1,122 @@
+// flow-typed signature: 07a43208e87ce65dea47f3bb8ce1805d
+// flow-typed version: <<STUB>>/vue-loader_v^11.3.3/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'vue-loader'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'vue-loader' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'vue-loader/lib/component-normalizer' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/loader' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/parser' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/selector' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/style-compiler/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/style-compiler/load-postcss-config' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/style-compiler/plugins/scope-id' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/style-compiler/plugins/trim' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/template-compiler/index' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/template-compiler/modules/transform-require' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/template-compiler/preprocessor' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/utils/gen-id' {
+  declare module.exports: any;
+}
+
+declare module 'vue-loader/lib/utils/normalize' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'vue-loader/index' {
+  declare module.exports: $Exports<'vue-loader'>;
+}
+declare module 'vue-loader/index.js' {
+  declare module.exports: $Exports<'vue-loader'>;
+}
+declare module 'vue-loader/lib/component-normalizer.js' {
+  declare module.exports: $Exports<'vue-loader/lib/component-normalizer'>;
+}
+declare module 'vue-loader/lib/loader.js' {
+  declare module.exports: $Exports<'vue-loader/lib/loader'>;
+}
+declare module 'vue-loader/lib/parser.js' {
+  declare module.exports: $Exports<'vue-loader/lib/parser'>;
+}
+declare module 'vue-loader/lib/selector.js' {
+  declare module.exports: $Exports<'vue-loader/lib/selector'>;
+}
+declare module 'vue-loader/lib/style-compiler/index.js' {
+  declare module.exports: $Exports<'vue-loader/lib/style-compiler/index'>;
+}
+declare module 'vue-loader/lib/style-compiler/load-postcss-config.js' {
+  declare module.exports: $Exports<'vue-loader/lib/style-compiler/load-postcss-config'>;
+}
+declare module 'vue-loader/lib/style-compiler/plugins/scope-id.js' {
+  declare module.exports: $Exports<'vue-loader/lib/style-compiler/plugins/scope-id'>;
+}
+declare module 'vue-loader/lib/style-compiler/plugins/trim.js' {
+  declare module.exports: $Exports<'vue-loader/lib/style-compiler/plugins/trim'>;
+}
+declare module 'vue-loader/lib/template-compiler/index.js' {
+  declare module.exports: $Exports<'vue-loader/lib/template-compiler/index'>;
+}
+declare module 'vue-loader/lib/template-compiler/modules/transform-require.js' {
+  declare module.exports: $Exports<'vue-loader/lib/template-compiler/modules/transform-require'>;
+}
+declare module 'vue-loader/lib/template-compiler/preprocessor.js' {
+  declare module.exports: $Exports<'vue-loader/lib/template-compiler/preprocessor'>;
+}
+declare module 'vue-loader/lib/utils/gen-id.js' {
+  declare module.exports: $Exports<'vue-loader/lib/utils/gen-id'>;
+}
+declare module 'vue-loader/lib/utils/normalize.js' {
+  declare module.exports: $Exports<'vue-loader/lib/utils/normalize'>;
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e024115e/flow-typed/npm/vue-template-compiler_vx.x.x.js
----------------------------------------------------------------------
diff --git a/flow-typed/npm/vue-template-compiler_vx.x.x.js b/flow-typed/npm/vue-template-compiler_vx.x.x.js
new file mode 100644
index 0000000..486ef59
--- /dev/null
+++ b/flow-typed/npm/vue-template-compiler_vx.x.x.js
@@ -0,0 +1,38 @@
+// flow-typed signature: 8217045e197e8302a8b716c6d6a2b70a
+// flow-typed version: <<STUB>>/vue-template-compiler_v^2.2.6/flow_v0.42.0
+
+/**
+ * This is an autogenerated libdef stub for:
+ *
+ *   'vue-template-compiler'
+ *
+ * Fill this stub out by replacing all the `any` types.
+ *
+ * Once filled out, we encourage you to share your work with the 
+ * community by sending a pull request to: 
+ * https://github.com/flowtype/flow-typed
+ */
+
+declare module 'vue-template-compiler' {
+  declare module.exports: any;
+}
+
+/**
+ * We include stubs for each file inside this npm package in case you need to
+ * require those files directly. Feel free to delete any files that aren't
+ * needed.
+ */
+declare module 'vue-template-compiler/build' {
+  declare module.exports: any;
+}
+
+// Filename aliases
+declare module 'vue-template-compiler/build.js' {
+  declare module.exports: $Exports<'vue-template-compiler/build'>;
+}
+declare module 'vue-template-compiler/index' {
+  declare module.exports: $Exports<'vue-template-compiler'>;
+}
+declare module 'vue-template-compiler/index.js' {
+  declare module.exports: $Exports<'vue-template-compiler'>;
+}


[38/50] [abbrv] incubator-weex git commit: * [html5] fix danger.js

Posted by so...@apache.org.
* [html5] fix danger.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/5f57aa76
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/5f57aa76
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/5f57aa76

Branch: refs/heads/dev
Commit: 5f57aa76dc99aa18de722b7e90c31a5c60e9c48c
Parents: 15f10e6
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Mar 30 16:27:04 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Mar 30 16:27:04 2017 +0800

----------------------------------------------------------------------
 dangerfile.js | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5f57aa76/dangerfile.js
----------------------------------------------------------------------
diff --git a/dangerfile.js b/dangerfile.js
index b62c110..00ab9b8 100644
--- a/dangerfile.js
+++ b/dangerfile.js
@@ -23,7 +23,7 @@ const flowIgnorePaths = [
   'bin',
   'dist',
   'flow-typed'
-].map(absolute(relPath));
+].map(absolute);
 
 // new js files should have `@flow` at the top
 const unFlowedFiles = jsFiles.filter(filepath => {
@@ -31,7 +31,8 @@ const unFlowedFiles = jsFiles.filter(filepath => {
   const len = flowIgnorePaths.length
   while (i < len) {
     const p = flowIgnorePaths[i]
-    if (p.indexOf(filepath) > -1) {
+    console.log(filepath, p, filepath.indexOf(p))
+    if (filepath.indexOf(p) > -1) {
       // ignore this file because it's in the flow-ignore-paths.
       return false;
     }


[36/50] [abbrv] incubator-weex git commit: * [html5] update

Posted by so...@apache.org.
* [html5] update


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

Branch: refs/heads/dev
Commit: 85041f52a52e24dc249994f27de6f6ad90c0df85
Parents: 952c266
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Mar 30 15:39:07 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Mar 30 15:39:07 2017 +0800

----------------------------------------------------------------------
 dangerfile.js | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/85041f52/dangerfile.js
----------------------------------------------------------------------
diff --git a/dangerfile.js b/dangerfile.js
index 8bf99ee..b62c110 100644
--- a/dangerfile.js
+++ b/dangerfile.js
@@ -27,11 +27,15 @@ const flowIgnorePaths = [
 
 // new js files should have `@flow` at the top
 const unFlowedFiles = jsFiles.filter(filepath => {
-  for (const p in flowIgnorePaths) {
-    if (p.indexOf(filepath) >= -1) {
+  let i = 0
+  const len = flowIgnorePaths.length
+  while (i < len) {
+    const p = flowIgnorePaths[i]
+    if (p.indexOf(filepath) > -1) {
       // ignore this file because it's in the flow-ignore-paths.
-      return;
+      return false;
     }
+    i++
   }
   const content = fs.readFileSync(filepath);
   return !content.includes("@flow");