You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by cx...@apache.org on 2017/03/27 07:42:18 UTC

[12/18] incubator-weex git commit: Merge branch 'v0.10.0-playground' into 0.11-dev

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/93063f14/android/playground/app/src/main/assets/showcase/new-fashion/main.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/showcase/new-fashion/main.js b/android/playground/app/src/main/assets/showcase/new-fashion/main.js
index c9d3d4a..ff4ffd4 100644
--- a/android/playground/app/src/main/assets/showcase/new-fashion/main.js
+++ b/android/playground/app/src/main/assets/showcase/new-fashion/main.js
@@ -44,17 +44,17 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(265)
-	__webpack_require__(266)
-	__webpack_require__(267)
-	__webpack_require__(268)
-	__webpack_require__(269)
-	__webpack_require__(273)
+	__webpack_require__(274)
+	__webpack_require__(275)
+	__webpack_require__(276)
 	__webpack_require__(277)
-	__webpack_require__(281)
-	var __weex_template__ = __webpack_require__(282)
-	var __weex_style__ = __webpack_require__(283)
-	var __weex_script__ = __webpack_require__(284)
+	__webpack_require__(278)
+	__webpack_require__(282)
+	__webpack_require__(286)
+	__webpack_require__(290)
+	var __weex_template__ = __webpack_require__(291)
+	var __weex_style__ = __webpack_require__(292)
+	var __weex_script__ = __webpack_require__(293)
 
 	__weex_define__('@weex-component/7e1771848154855ce84d79183d543f9a', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2988,7 +2988,16 @@
 /* 232 */,
 /* 233 */,
 /* 234 */,
-/* 235 */
+/* 235 */,
+/* 236 */,
+/* 237 */,
+/* 238 */,
+/* 239 */,
+/* 240 */,
+/* 241 */,
+/* 242 */,
+/* 243 */,
+/* 244 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3007,7 +3016,7 @@
 	}
 
 /***/ },
-/* 236 */
+/* 245 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -3036,11 +3045,11 @@
 
 
 /***/ },
-/* 237 */
+/* 246 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(235)
-	var __weex_script__ = __webpack_require__(236)
+	var __weex_template__ = __webpack_require__(244)
+	var __weex_script__ = __webpack_require__(245)
 
 	__weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -3055,7 +3064,7 @@
 
 
 /***/ },
-/* 238 */
+/* 247 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3120,7 +3129,7 @@
 	}
 
 /***/ },
-/* 239 */
+/* 248 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -3151,12 +3160,12 @@
 
 
 /***/ },
-/* 240 */
+/* 249 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	var __weex_template__ = __webpack_require__(238)
-	var __weex_script__ = __webpack_require__(239)
+	__webpack_require__(246)
+	var __weex_template__ = __webpack_require__(247)
+	var __weex_script__ = __webpack_require__(248)
 
 	__weex_define__('@weex-component/banners', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -3171,7 +3180,7 @@
 
 
 /***/ },
-/* 241 */
+/* 250 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3213,7 +3222,7 @@
 	}
 
 /***/ },
-/* 242 */
+/* 251 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3228,7 +3237,7 @@
 	}
 
 /***/ },
-/* 243 */
+/* 252 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";
@@ -3268,7 +3277,7 @@
 
 
 /***/ },
-/* 244 */
+/* 253 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3425,7 +3434,7 @@
 	}
 
 /***/ },
-/* 245 */
+/* 254 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3472,7 +3481,7 @@
 	}
 
 /***/ },
-/* 246 */
+/* 255 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";
@@ -3916,7 +3925,7 @@
 
 
 /***/ },
-/* 247 */
+/* 256 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3980,7 +3989,7 @@
 	}
 
 /***/ },
-/* 248 */
+/* 257 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4027,7 +4036,7 @@
 	}
 
 /***/ },
-/* 249 */
+/* 258 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -4053,10 +4062,10 @@
 
 
 /***/ },
-/* 250 */,
-/* 251 */,
-/* 252 */,
-/* 253 */
+/* 259 */,
+/* 260 */,
+/* 261 */,
+/* 262 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4181,7 +4190,7 @@
 	}
 
 /***/ },
-/* 254 */
+/* 263 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4206,7 +4215,7 @@
 	}
 
 /***/ },
-/* 255 */
+/* 264 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";
@@ -4234,11 +4243,11 @@
 
 
 /***/ },
-/* 256 */
+/* 265 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(257)
-	var __weex_script__ = __webpack_require__(258)
+	var __weex_template__ = __webpack_require__(266)
+	var __weex_script__ = __webpack_require__(267)
 
 	__weex_define__('@weex-component/link', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -4253,7 +4262,7 @@
 
 
 /***/ },
-/* 257 */
+/* 266 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4271,7 +4280,7 @@
 	}
 
 /***/ },
-/* 258 */
+/* 267 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -4294,7 +4303,7 @@
 
 
 /***/ },
-/* 259 */
+/* 268 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4367,7 +4376,7 @@
 	}
 
 /***/ },
-/* 260 */
+/* 269 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4422,7 +4431,7 @@
 	}
 
 /***/ },
-/* 261 */
+/* 270 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";
@@ -4447,17 +4456,17 @@
 
 
 /***/ },
-/* 262 */,
-/* 263 */,
-/* 264 */,
-/* 265 */
+/* 271 */,
+/* 272 */,
+/* 273 */,
+/* 274 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(256)
-	__webpack_require__(240)
-	var __weex_template__ = __webpack_require__(259)
-	var __weex_style__ = __webpack_require__(260)
-	var __weex_script__ = __webpack_require__(261)
+	__webpack_require__(265)
+	__webpack_require__(249)
+	var __weex_template__ = __webpack_require__(268)
+	var __weex_style__ = __webpack_require__(269)
+	var __weex_script__ = __webpack_require__(270)
 
 	__weex_define__('@weex-component/headlines', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -4474,13 +4483,13 @@
 
 
 /***/ },
-/* 266 */
+/* 275 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	var __weex_template__ = __webpack_require__(244)
-	var __weex_style__ = __webpack_require__(245)
-	var __weex_script__ = __webpack_require__(246)
+	__webpack_require__(246)
+	var __weex_template__ = __webpack_require__(253)
+	var __weex_style__ = __webpack_require__(254)
+	var __weex_script__ = __webpack_require__(255)
 
 	__weex_define__('@weex-component/category', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -4497,12 +4506,12 @@
 
 
 /***/ },
-/* 267 */
+/* 276 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(247)
-	var __weex_style__ = __webpack_require__(248)
-	var __weex_script__ = __webpack_require__(249)
+	var __weex_template__ = __webpack_require__(256)
+	var __weex_style__ = __webpack_require__(257)
+	var __weex_script__ = __webpack_require__(258)
 
 	__weex_define__('@weex-component/coupon', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -4519,13 +4528,13 @@
 
 
 /***/ },
-/* 268 */
+/* 277 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	var __weex_template__ = __webpack_require__(253)
-	var __weex_style__ = __webpack_require__(254)
-	var __weex_script__ = __webpack_require__(255)
+	__webpack_require__(246)
+	var __weex_template__ = __webpack_require__(262)
+	var __weex_style__ = __webpack_require__(263)
+	var __weex_script__ = __webpack_require__(264)
 
 	__weex_define__('@weex-component/goods', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -4542,14 +4551,14 @@
 
 
 /***/ },
-/* 269 */
+/* 278 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	__webpack_require__(240)
-	var __weex_template__ = __webpack_require__(270)
-	var __weex_style__ = __webpack_require__(271)
-	var __weex_script__ = __webpack_require__(272)
+	__webpack_require__(246)
+	__webpack_require__(249)
+	var __weex_template__ = __webpack_require__(279)
+	var __weex_style__ = __webpack_require__(280)
+	var __weex_script__ = __webpack_require__(281)
 
 	__weex_define__('@weex-component/resource', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -4566,7 +4575,7 @@
 
 
 /***/ },
-/* 270 */
+/* 279 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4604,7 +4613,7 @@
 	}
 
 /***/ },
-/* 271 */
+/* 280 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4618,7 +4627,7 @@
 	}
 
 /***/ },
-/* 272 */
+/* 281 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";
@@ -4636,13 +4645,13 @@
 
 
 /***/ },
-/* 273 */
+/* 282 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	var __weex_template__ = __webpack_require__(274)
-	var __weex_style__ = __webpack_require__(275)
-	var __weex_script__ = __webpack_require__(276)
+	__webpack_require__(246)
+	var __weex_template__ = __webpack_require__(283)
+	var __weex_style__ = __webpack_require__(284)
+	var __weex_script__ = __webpack_require__(285)
 
 	__weex_define__('@weex-component/scene', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -4659,7 +4668,7 @@
 
 
 /***/ },
-/* 274 */
+/* 283 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4751,7 +4760,7 @@
 	}
 
 /***/ },
-/* 275 */
+/* 284 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -4810,7 +4819,7 @@
 	}
 
 /***/ },
-/* 276 */
+/* 285 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -5022,13 +5031,13 @@
 
 
 /***/ },
-/* 277 */
+/* 286 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	var __weex_template__ = __webpack_require__(278)
-	var __weex_style__ = __webpack_require__(279)
-	var __weex_script__ = __webpack_require__(280)
+	__webpack_require__(246)
+	var __weex_template__ = __webpack_require__(287)
+	var __weex_style__ = __webpack_require__(288)
+	var __weex_script__ = __webpack_require__(289)
 
 	__weex_define__('@weex-component/match', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -5045,7 +5054,7 @@
 
 
 /***/ },
-/* 278 */
+/* 287 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -5124,7 +5133,7 @@
 	}
 
 /***/ },
-/* 279 */
+/* 288 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -5138,7 +5147,7 @@
 	}
 
 /***/ },
-/* 280 */
+/* 289 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";
@@ -5175,13 +5184,13 @@
 
 
 /***/ },
-/* 281 */
+/* 290 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(240)
-	var __weex_template__ = __webpack_require__(241)
-	var __weex_style__ = __webpack_require__(242)
-	var __weex_script__ = __webpack_require__(243)
+	__webpack_require__(249)
+	var __weex_template__ = __webpack_require__(250)
+	var __weex_style__ = __webpack_require__(251)
+	var __weex_script__ = __webpack_require__(252)
 
 	__weex_define__('@weex-component/brand', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -5198,7 +5207,7 @@
 
 
 /***/ },
-/* 282 */
+/* 291 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -5341,7 +5350,7 @@
 	}
 
 /***/ },
-/* 283 */
+/* 292 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -5367,7 +5376,7 @@
 	}
 
 /***/ },
-/* 284 */
+/* 293 */
 /***/ 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/93063f14/android/playground/app/src/main/assets/showcase/new-fashion/match.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/showcase/new-fashion/match.js b/android/playground/app/src/main/assets/showcase/new-fashion/match.js
index c1beb2f..96976e4 100644
--- a/android/playground/app/src/main/assets/showcase/new-fashion/match.js
+++ b/android/playground/app/src/main/assets/showcase/new-fashion/match.js
@@ -45,10 +45,10 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	var __weex_template__ = __webpack_require__(278)
-	var __weex_style__ = __webpack_require__(279)
-	var __weex_script__ = __webpack_require__(280)
+	__webpack_require__(246)
+	var __weex_template__ = __webpack_require__(287)
+	var __weex_style__ = __webpack_require__(288)
+	var __weex_script__ = __webpack_require__(289)
 
 	__weex_define__('@weex-component/e4f94096a035d75578fa1eb2d8967b5f', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -67,7 +67,7 @@
 
 /***/ },
 
-/***/ 235:
+/***/ 244:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -87,7 +87,7 @@
 
 /***/ },
 
-/***/ 236:
+/***/ 245:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -117,11 +117,11 @@
 
 /***/ },
 
-/***/ 237:
+/***/ 246:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(235)
-	var __weex_script__ = __webpack_require__(236)
+	var __weex_template__ = __webpack_require__(244)
+	var __weex_script__ = __webpack_require__(245)
 
 	__weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -137,7 +137,7 @@
 
 /***/ },
 
-/***/ 278:
+/***/ 287:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -217,7 +217,7 @@
 
 /***/ },
 
-/***/ 279:
+/***/ 288:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -232,7 +232,7 @@
 
 /***/ },
 
-/***/ 280:
+/***/ 289:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/93063f14/android/playground/app/src/main/assets/showcase/new-fashion/resource.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/showcase/new-fashion/resource.js b/android/playground/app/src/main/assets/showcase/new-fashion/resource.js
index fea6f14..b08afa9 100644
--- a/android/playground/app/src/main/assets/showcase/new-fashion/resource.js
+++ b/android/playground/app/src/main/assets/showcase/new-fashion/resource.js
@@ -45,11 +45,11 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	__webpack_require__(240)
-	var __weex_template__ = __webpack_require__(270)
-	var __weex_style__ = __webpack_require__(271)
-	var __weex_script__ = __webpack_require__(272)
+	__webpack_require__(246)
+	__webpack_require__(249)
+	var __weex_template__ = __webpack_require__(279)
+	var __weex_style__ = __webpack_require__(280)
+	var __weex_script__ = __webpack_require__(281)
 
 	__weex_define__('@weex-component/898d20378eee87156b93aef1be724cdb', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -68,7 +68,7 @@
 
 /***/ },
 
-/***/ 235:
+/***/ 244:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -88,7 +88,7 @@
 
 /***/ },
 
-/***/ 236:
+/***/ 245:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -118,11 +118,11 @@
 
 /***/ },
 
-/***/ 237:
+/***/ 246:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(235)
-	var __weex_script__ = __webpack_require__(236)
+	var __weex_template__ = __webpack_require__(244)
+	var __weex_script__ = __webpack_require__(245)
 
 	__weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -138,7 +138,7 @@
 
 /***/ },
 
-/***/ 238:
+/***/ 247:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -204,7 +204,7 @@
 
 /***/ },
 
-/***/ 239:
+/***/ 248:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -236,12 +236,12 @@
 
 /***/ },
 
-/***/ 240:
+/***/ 249:
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	var __weex_template__ = __webpack_require__(238)
-	var __weex_script__ = __webpack_require__(239)
+	__webpack_require__(246)
+	var __weex_template__ = __webpack_require__(247)
+	var __weex_script__ = __webpack_require__(248)
 
 	__weex_define__('@weex-component/banners', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -257,7 +257,7 @@
 
 /***/ },
 
-/***/ 270:
+/***/ 279:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -296,7 +296,7 @@
 
 /***/ },
 
-/***/ 271:
+/***/ 280:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -311,7 +311,7 @@
 
 /***/ },
 
-/***/ 272:
+/***/ 281:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){"use strict";

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/93063f14/android/playground/app/src/main/assets/showcase/new-fashion/scene.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/showcase/new-fashion/scene.js b/android/playground/app/src/main/assets/showcase/new-fashion/scene.js
index 962341e..a30842a 100644
--- a/android/playground/app/src/main/assets/showcase/new-fashion/scene.js
+++ b/android/playground/app/src/main/assets/showcase/new-fashion/scene.js
@@ -45,10 +45,10 @@
 /***/ 0:
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(237)
-	var __weex_template__ = __webpack_require__(274)
-	var __weex_style__ = __webpack_require__(275)
-	var __weex_script__ = __webpack_require__(276)
+	__webpack_require__(246)
+	var __weex_template__ = __webpack_require__(283)
+	var __weex_style__ = __webpack_require__(284)
+	var __weex_script__ = __webpack_require__(285)
 
 	__weex_define__('@weex-component/18e03f6e7e4b9d87e4b470dfec07a573', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -67,7 +67,7 @@
 
 /***/ },
 
-/***/ 235:
+/***/ 244:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -87,7 +87,7 @@
 
 /***/ },
 
-/***/ 236:
+/***/ 245:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -117,11 +117,11 @@
 
 /***/ },
 
-/***/ 237:
+/***/ 246:
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(235)
-	var __weex_script__ = __webpack_require__(236)
+	var __weex_template__ = __webpack_require__(244)
+	var __weex_script__ = __webpack_require__(245)
 
 	__weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -137,7 +137,7 @@
 
 /***/ },
 
-/***/ 274:
+/***/ 283:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -230,7 +230,7 @@
 
 /***/ },
 
-/***/ 275:
+/***/ 284:
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -290,7 +290,7 @@
 
 /***/ },
 
-/***/ 276:
+/***/ 285:
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/93063f14/android/playground/app/src/main/assets/showcase/pseudo-class.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/showcase/pseudo-class.js b/android/playground/app/src/main/assets/showcase/pseudo-class.js
new file mode 100644
index 0000000..59a8b52
--- /dev/null
+++ b/android/playground/app/src/main/assets/showcase/pseudo-class.js
@@ -0,0 +1,2425 @@
+/******/ (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__(294)
+	var __weex_style__ = __webpack_require__(295)
+	var __weex_script__ = __webpack_require__(296)
+
+	__weex_define__('@weex-component/07aaf1221ad656e37ebe37291f40d193', [], 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/07aaf1221ad656e37ebe37291f40d193',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"
+	  },
+	  "panel-body": {}
+	}
+
+/***/ },
+/* 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_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__
+
+	})
+
+
+/***/ },
+/* 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 */
+/***/ 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},
+	          "attr": {
+	            "index": function () {return this.index},
+	            "icon": function () {return this.icon},
+	            "title": function () {return this.title},
+	            "titleColor": function () {return this.titleColor}
+	          }
+	        }
+	      ]
+	    }
+	  ]
+	}
+
+/***/ },
+/* 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 */,
+/* 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 */,
+/* 153 */,
+/* 154 */,
+/* 155 */,
+/* 156 */,
+/* 157 */,
+/* 158 */,
+/* 159 */,
+/* 160 */,
+/* 161 */,
+/* 162 */,
+/* 163 */,
+/* 164 */,
+/* 165 */,
+/* 166 */,
+/* 167 */,
+/* 168 */,
+/* 169 */,
+/* 170 */,
+/* 171 */,
+/* 172 */,
+/* 173 */,
+/* 174 */,
+/* 175 */,
+/* 176 */,
+/* 177 */,
+/* 178 */,
+/* 179 */,
+/* 180 */,
+/* 181 */,
+/* 182 */,
+/* 183 */,
+/* 184 */,
+/* 185 */,
+/* 186 */,
+/* 187 */,
+/* 188 */,
+/* 189 */,
+/* 190 */,
+/* 191 */,
+/* 192 */,
+/* 193 */,
+/* 194 */,
+/* 195 */,
+/* 196 */,
+/* 197 */,
+/* 198 */,
+/* 199 */,
+/* 200 */,
+/* 201 */,
+/* 202 */,
+/* 203 */,
+/* 204 */,
+/* 205 */,
+/* 206 */,
+/* 207 */,
+/* 208 */,
+/* 209 */,
+/* 210 */,
+/* 211 */,
+/* 212 */,
+/* 213 */,
+/* 214 */,
+/* 215 */,
+/* 216 */,
+/* 217 */,
+/* 218 */,
+/* 219 */,
+/* 220 */,
+/* 221 */,
+/* 222 */,
+/* 223 */,
+/* 224 */,
+/* 225 */,
+/* 226 */,
+/* 227 */,
+/* 228 */,
+/* 229 */,
+/* 230 */,
+/* 231 */,
+/* 232 */,
+/* 233 */,
+/* 234 */,
+/* 235 */,
+/* 236 */,
+/* 237 */,
+/* 238 */,
+/* 239 */,
+/* 240 */,
+/* 241 */,
+/* 242 */,
+/* 243 */,
+/* 244 */,
+/* 245 */,
+/* 246 */,
+/* 247 */,
+/* 248 */,
+/* 249 */,
+/* 250 */,
+/* 251 */,
+/* 252 */,
+/* 253 */,
+/* 254 */,
+/* 255 */,
+/* 256 */,
+/* 257 */,
+/* 258 */,
+/* 259 */,
+/* 260 */,
+/* 261 */,
+/* 262 */,
+/* 263 */,
+/* 264 */,
+/* 265 */,
+/* 266 */,
+/* 267 */,
+/* 268 */,
+/* 269 */,
+/* 270 */,
+/* 271 */,
+/* 272 */,
+/* 273 */,
+/* 274 */,
+/* 275 */,
+/* 276 */,
+/* 277 */,
+/* 278 */,
+/* 279 */,
+/* 280 */,
+/* 281 */,
+/* 282 */,
+/* 283 */,
+/* 284 */,
+/* 285 */,
+/* 286 */,
+/* 287 */,
+/* 288 */,
+/* 289 */,
+/* 290 */,
+/* 291 */,
+/* 292 */,
+/* 293 */,
+/* 294 */
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "type": "div",
+	  "children": [
+	    {
+	      "type": "scroller",
+	      "children": [
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "active",
+	            "type": "primary"
+	          },
+	          "children": [
+	            {
+	              "type": "div",
+	              "classList": [
+	                "wrapper"
+	              ],
+	              "children": [
+	                {
+	                  "type": "image",
+	                  "attr": {
+	                    "src": function () {return this.logoUrl}
+	                  },
+	                  "classList": [
+	                    "logo"
+	                  ]
+	                },
+	                {
+	                  "type": "text",
+	                  "classList": [
+	                    "title"
+	                  ],
+	                  "attr": {
+	                    "value": "please click image"
+	                  }
+	                }
+	              ]
+	            }
+	          ]
+	        },
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "focus",
+	            "type": "primary"
+	          },
+	          "children": [
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "text",
+	                "placeholder": "Input Text",
+	                "autofocus": function () {return this.autofocus},
+	                "value": "test active"
+	              },
+	              "classList": [
+	                "focusinput"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "enabled",
+	            "type": "primary"
+	          },
+	          "children": [
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "text",
+	                "placeholder": "Input Text",
+	                "autofocus": function () {return this.autofocus},
+	                "value": "test active"
+	              },
+	              "classList": [
+	                "enabledinput"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "disabled",
+	            "type": "primary"
+	          },
+	          "children": [
+	            {
+	              "type": "input",
+	              "attr": {
+	                "type": "text",
+	                "placeholder": "Input Text",
+	                "autofocus": function () {return this.autofocus},
+	                "value": "test active",
+	                "disabled": "true"
+	              },
+	              "classList": [
+	                "disabledinput"
+	              ],
+	              "events": {
+	                "change": "onchange",
+	                "input": "oninput"
+	              }
+	            }
+	          ]
+	        }
+	      ]
+	    }
+	  ]
+	}
+
+/***/ },
+/* 295 */
+/***/ function(module, exports) {
+
+	module.exports = {
+	  "wrapper": {
+	    "alignItems": "center",
+	    "marginTop": 20
+	  },
+	  "title": {
+	    "fontSize": 24
+	  },
+	  "logo": {
+	    "width": 360,
+	    "height": 82,
+	    "backgroundColor": "#008000",
+	    "width:active": 180,
+	    "height:active": 82,
+	    "backgroundColor:active": "#FF0000"
+	  },
+	  "focusinput": {
+	    "fontSize": 60,
+	    "height": 80,
+	    "width": 700,
+	    "color:focus": "#008000",
+	    "backgroundColor:focus": "#FF0000"
+	  },
+	  "enabledinput": {
+	    "fontSize": 60,
+	    "height": 80,
+	    "width": 700,
+	    "color:enabled": "#FFFF00",
+	    "backgroundColor:enabled": "#0000FF"
+	  },
+	  "disabledinput": {
+	    "fontSize": 60,
+	    "height": 80,
+	    "width": 700,
+	    "color:disabled": "#FFFFFF",
+	    "backgroundColor:disabled": "#808080"
+	  }
+	}
+
+/***/ },
+/* 296 */
+/***/ function(module, exports, __webpack_require__) {
+
+	module.exports = function(module, exports, __weex_require__){'use strict';
+
+	__webpack_require__(4);
+	module.exports = {
+	    data: function () {return {
+	        logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png',
+	        autofocus: false
+	    }},
+	    methods: {}
+	};}
+	/* generated by weex-loader */
+
+
+/***/ }
+/******/ ]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/93063f14/android/playground/app/src/main/assets/showcase/ui.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/showcase/ui.js b/android/playground/app/src/main/assets/showcase/ui.js
index edab05c..fb73ceb 100644
--- a/android/playground/app/src/main/assets/showcase/ui.js
+++ b/android/playground/app/src/main/assets/showcase/ui.js
@@ -44,9 +44,9 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(285)
-	var __weex_style__ = __webpack_require__(286)
-	var __weex_script__ = __webpack_require__(287)
+	var __weex_template__ = __webpack_require__(297)
+	var __weex_style__ = __webpack_require__(298)
+	var __weex_script__ = __webpack_require__(299)
 
 	__weex_define__('@weex-component/045f40e22d4b6e9c9f36354367812ecd', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2227,7 +2227,19 @@
 /* 282 */,
 /* 283 */,
 /* 284 */,
-/* 285 */
+/* 285 */,
+/* 286 */,
+/* 287 */,
+/* 288 */,
+/* 289 */,
+/* 290 */,
+/* 291 */,
+/* 292 */,
+/* 293 */,
+/* 294 */,
+/* 295 */,
+/* 296 */,
+/* 297 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2390,7 +2402,7 @@
 	}
 
 /***/ },
-/* 286 */
+/* 298 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2401,7 +2413,7 @@
 	}
 
 /***/ },
-/* 287 */
+/* 299 */
 /***/ 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/93063f14/android/playground/app/src/main/assets/style/index.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/style/index.js b/android/playground/app/src/main/assets/style/index.js
index 9f1c024..3bccccf 100644
--- a/android/playground/app/src/main/assets/style/index.js
+++ b/android/playground/app/src/main/assets/style/index.js
@@ -44,12 +44,12 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(288)
-	__webpack_require__(296)
-	__webpack_require__(289)
-	var __weex_template__ = __webpack_require__(300)
-	var __weex_style__ = __webpack_require__(301)
-	var __weex_script__ = __webpack_require__(302)
+	__webpack_require__(300)
+	__webpack_require__(308)
+	__webpack_require__(301)
+	var __weex_template__ = __webpack_require__(312)
+	var __weex_style__ = __webpack_require__(313)
+	var __weex_script__ = __webpack_require__(314)
 
 	__weex_define__('@weex-component/2bb97ed0198ea3308e26ee13c0047c9c', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2233,13 +2233,25 @@
 /* 285 */,
 /* 286 */,
 /* 287 */,
-/* 288 */
+/* 288 */,
+/* 289 */,
+/* 290 */,
+/* 291 */,
+/* 292 */,
+/* 293 */,
+/* 294 */,
+/* 295 */,
+/* 296 */,
+/* 297 */,
+/* 298 */,
+/* 299 */,
+/* 300 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(289)
-	var __weex_template__ = __webpack_require__(293)
-	var __weex_style__ = __webpack_require__(294)
-	var __weex_script__ = __webpack_require__(295)
+	__webpack_require__(301)
+	var __weex_template__ = __webpack_require__(305)
+	var __weex_style__ = __webpack_require__(306)
+	var __weex_script__ = __webpack_require__(307)
 
 	__weex_define__('@weex-component/style-box', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2256,12 +2268,12 @@
 
 
 /***/ },
-/* 289 */
+/* 301 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(290)
-	var __weex_style__ = __webpack_require__(291)
-	var __weex_script__ = __webpack_require__(292)
+	var __weex_template__ = __webpack_require__(302)
+	var __weex_style__ = __webpack_require__(303)
+	var __weex_script__ = __webpack_require__(304)
 
 	__weex_define__('@weex-component/style-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2278,7 +2290,7 @@
 
 
 /***/ },
-/* 290 */
+/* 302 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2296,7 +2308,7 @@
 	}
 
 /***/ },
-/* 291 */
+/* 303 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2315,7 +2327,7 @@
 	}
 
 /***/ },
-/* 292 */
+/* 304 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -2334,7 +2346,7 @@
 
 
 /***/ },
-/* 293 */
+/* 305 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2600,7 +2612,7 @@
 	}
 
 /***/ },
-/* 294 */
+/* 306 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2623,7 +2635,7 @@
 	}
 
 /***/ },
-/* 295 */
+/* 307 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -2638,13 +2650,13 @@
 
 
 /***/ },
-/* 296 */
+/* 308 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(289)
-	var __weex_template__ = __webpack_require__(297)
-	var __weex_style__ = __webpack_require__(298)
-	var __weex_script__ = __webpack_require__(299)
+	__webpack_require__(301)
+	var __weex_template__ = __webpack_require__(309)
+	var __weex_style__ = __webpack_require__(310)
+	var __weex_script__ = __webpack_require__(311)
 
 	__weex_define__('@weex-component/style-flex', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2661,7 +2673,7 @@
 
 
 /***/ },
-/* 297 */
+/* 309 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3287,7 +3299,7 @@
 	}
 
 /***/ },
-/* 298 */
+/* 310 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3304,7 +3316,7 @@
 	}
 
 /***/ },
-/* 299 */
+/* 311 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -3314,7 +3326,7 @@
 
 
 /***/ },
-/* 300 */
+/* 312 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3457,7 +3469,7 @@
 	}
 
 /***/ },
-/* 301 */
+/* 313 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -3468,7 +3480,7 @@
 	}
 
 /***/ },
-/* 302 */
+/* 314 */
 /***/ 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/93063f14/android/playground/app/src/main/assets/style/style-box.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/style/style-box.js b/android/playground/app/src/main/assets/style/style-box.js
index 9d5e89a..21eb15b 100644
--- a/android/playground/app/src/main/assets/style/style-box.js
+++ b/android/playground/app/src/main/assets/style/style-box.js
@@ -44,10 +44,10 @@
 /* 0 */
 /***/ function(module, exports, __webpack_require__) {
 
-	__webpack_require__(289)
-	var __weex_template__ = __webpack_require__(293)
-	var __weex_style__ = __webpack_require__(294)
-	var __weex_script__ = __webpack_require__(295)
+	__webpack_require__(301)
+	var __weex_template__ = __webpack_require__(305)
+	var __weex_style__ = __webpack_require__(306)
+	var __weex_script__ = __webpack_require__(307)
 
 	__weex_define__('@weex-component/1cc382dbc23ca75e8dd34af712ba54f1', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2232,12 +2232,24 @@
 /* 286 */,
 /* 287 */,
 /* 288 */,
-/* 289 */
+/* 289 */,
+/* 290 */,
+/* 291 */,
+/* 292 */,
+/* 293 */,
+/* 294 */,
+/* 295 */,
+/* 296 */,
+/* 297 */,
+/* 298 */,
+/* 299 */,
+/* 300 */,
+/* 301 */
 /***/ function(module, exports, __webpack_require__) {
 
-	var __weex_template__ = __webpack_require__(290)
-	var __weex_style__ = __webpack_require__(291)
-	var __weex_script__ = __webpack_require__(292)
+	var __weex_template__ = __webpack_require__(302)
+	var __weex_style__ = __webpack_require__(303)
+	var __weex_script__ = __webpack_require__(304)
 
 	__weex_define__('@weex-component/style-item', [], function(__weex_require__, __weex_exports__, __weex_module__) {
 
@@ -2254,7 +2266,7 @@
 
 
 /***/ },
-/* 290 */
+/* 302 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2272,7 +2284,7 @@
 	}
 
 /***/ },
-/* 291 */
+/* 303 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2291,7 +2303,7 @@
 	}
 
 /***/ },
-/* 292 */
+/* 304 */
 /***/ function(module, exports) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';
@@ -2310,7 +2322,7 @@
 
 
 /***/ },
-/* 293 */
+/* 305 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2576,7 +2588,7 @@
 	}
 
 /***/ },
-/* 294 */
+/* 306 */
 /***/ function(module, exports) {
 
 	module.exports = {
@@ -2599,7 +2611,7 @@
 	}
 
 /***/ },
-/* 295 */
+/* 307 */
 /***/ function(module, exports, __webpack_require__) {
 
 	module.exports = function(module, exports, __weex_require__){'use strict';