http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/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
deleted file mode 100644
index a0f6c33..0000000
--- a/ios/playground/bundlejs/vue/modules/clipboard.js
+++ /dev/null
@@ -1,712 +0,0 @@
-// { "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__ = []
-
-       /* script */
-       __vue_exports__ = __webpack_require__(120)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(121)
-       __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/Hanks/Codes/work/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]
-         }
-       })
-       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)
-
-
-/***/ }),
-
-/***/ 3:
-/***/ (function(module, exports, __webpack_require__) {
-
-       var __vue_exports__, __vue_options__
-       var __vue_styles__ = []
-
-       /* styles */
-       __vue_styles__.push(__webpack_require__(4)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(5)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(6)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/include/panel.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-58511ff6"
-       __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__
-
-
-/***/ }),
-
-/***/ 4:
-/***/ (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": {
-           "paddingLeft": 12,
-           "paddingRight": 12,
-           "paddingTop": 20,
-           "paddingBottom": 20
-         }
-       }
-
-/***/ }),
-
-/***/ 5:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       module.exports = {
-         props: {
-           type: { default: 'default' },
-           title: { default: '' },
-           paddingBody: { default: 20 },
-           paddingHead: { default: 20 },
-           dataClass: { default: '' }, // FIXME transfer class
-           border: { default: 0 }
-         }
-       };
-
-/***/ }),
-
-/***/ 6:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('div', {
-           class: ['panel', 'panel-' + _vm.type],
-           style: {
-             borderWidth: _vm.border
-           }
-         }, [_c('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._v(_vm._s(_vm.title))]), _c('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")], 2)])
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 7:
-/***/ (function(module, exports, __webpack_require__) {
-
-       var __vue_exports__, __vue_options__
-       var __vue_styles__ = []
-
-       /* styles */
-       __vue_styles__.push(__webpack_require__(8)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(9)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(10)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/include/button.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-71b34881"
-       __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__
-
-
-/***/ }),
-
-/***/ 8:
-/***/ (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
-         }
-       }
-
-/***/ }),
-
-/***/ 9:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       module.exports = {
-         props: {
-           type: { default: 'default' },
-           size: { default: 'large' },
-           value: { default: '' }
-         }
-       };
-
-/***/ }),
-
-/***/ 10:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('div', {
-           class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-         }, [_c('text', {
-           class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-         }, [_vm._v(_vm._s(_vm.value))])])
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 13:
-/***/ (function(module, exports, __webpack_require__) {
-
-       var __vue_exports__, __vue_options__
-       var __vue_styles__ = []
-
-       /* styles */
-       __vue_styles__.push(__webpack_require__(14)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(15)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(16)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/include/tip.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-36fe495c"
-       __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__
-
-
-/***/ }),
-
-/***/ 14:
-/***/ (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"
-         }
-       }
-
-/***/ }),
-
-/***/ 15:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       module.exports = {
-         props: {
-           type: { default: 'success' },
-           value: { default: '' }
-         }
-       };
-
-/***/ }),
-
-/***/ 16:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('div', {
-           class: ['tip', 'tip-' + _vm.type]
-         }, [_c('text', {
-           class: ['tip-txt', 'tip-txt-' + _vm.type]
-         }, [_vm._v(_vm._s(_vm.value))])])
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 120:
-/***/ (function(module, exports, __webpack_require__) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       var modal = weex.requireModule('modal');
-       var clipboard = weex.requireModule('clipboard');
-       module.exports = {
-         data: function data() {
-           return {
-             textToCopy: '',
-             textFromPaste: '',
-             tips: ''
-           };
-         },
-         components: {
-           panel: __webpack_require__(3),
-           tip: __webpack_require__(13),
-           button: __webpack_require__(7)
-         },
-         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.";
-         },
-         methods: {
-           doCopy: function doCopy() {
-             modal.toast({ 'message': 'doCopy!', duration: 0.5 });
-             textToCopy = "autoGenerateTextToCopy" + Math.random();
-             clipboard.setString(textToCopy);
-             this.textToCopy = textToCopy;
-             this.tips = "copy done. Now system clipboard has string of '" + 
textToCopy + "', try PASTE button, or paste in another app.";
-           },
-           doPaste: function doPaste() {
-             var me = this;
-             modal.toast({ 'message': 'doPaste!', duration: 0.5 });
-             clipboard.getString(function (ret) {
-               console.log("paste result is " + JSON.stringify(ret));
-               me.textFromPaste = ret.data;
-               me.tips = "Paste done. Only support native(Android/iOS) NOW. 
according to security reason, paste in html5 is not supported.";
-             });
-           }
-         }
-       };
-
-/***/ }),
-
-/***/ 121:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('scroller', [_c('panel', {
-           attrs: {
-             "title": "Clipboard",
-             "type": "primary"
-           }
-         }, [_c('panel', {
-           attrs: {
-             "title": "Copy to clipboard5"
-           }
-         }, [_c('text', {
-           staticStyle: {
-             lineHeight: "40px",
-             fontSize: "28px"
-           }
-         }, [_vm._v(_vm._s(_vm.textToCopy))]), _c('button', {
-           attrs: {
-             "type": "info",
-             "size": "middle",
-             "value": "Copy"
-           },
-           nativeOn: {
-             "click": function($event) {
-               _vm.doCopy($event)
-             }
-           }
-         })], 1), _c('panel', {
-           attrs: {
-             "title": "Paste from clipboard"
-           }
-         }, [_c('text', {
-           staticStyle: {
-             lineHeight: "40px",
-             fontSize: "28px"
-           }
-         }, [_vm._v(_vm._s(_vm.textFromPaste))]), _c('button', {
-           attrs: {
-             "type": "info",
-             "size": "middle",
-             "value": "Paste"
-           },
-           nativeOn: {
-             "click": function($event) {
-               _vm.doPaste($event)
-             }
-           }
-         })], 1), _c('panel', {
-           attrs: {
-             "title": "Result"
-           }
-         }, [_c('tip', {
-           staticStyle: {
-             marginBottom: "20px"
-           },
-           attrs: {
-             "value": _vm.tips
-           }
-         })], 1)], 1)], 1)
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/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
deleted file mode 100644
index 8b94ffd..0000000
--- a/ios/playground/bundlejs/vue/modules/instance-api.js
+++ /dev/null
@@ -1,317 +0,0 @@
-// { "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__ = []
-
-       /* script */
-       __vue_exports__ = __webpack_require__(122)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(123)
-       __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/Hanks/Codes/work/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]
-         }
-       })
-       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)
-
-
-/***/ }),
-
-/***/ 3:
-/***/ (function(module, exports, __webpack_require__) {
-
-       var __vue_exports__, __vue_options__
-       var __vue_styles__ = []
-
-       /* styles */
-       __vue_styles__.push(__webpack_require__(4)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(5)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(6)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/include/panel.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-58511ff6"
-       __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__
-
-
-/***/ }),
-
-/***/ 4:
-/***/ (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": {
-           "paddingLeft": 12,
-           "paddingRight": 12,
-           "paddingTop": 20,
-           "paddingBottom": 20
-         }
-       }
-
-/***/ }),
-
-/***/ 5:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       module.exports = {
-         props: {
-           type: { default: 'default' },
-           title: { default: '' },
-           paddingBody: { default: 20 },
-           paddingHead: { default: 20 },
-           dataClass: { default: '' }, // FIXME transfer class
-           border: { default: 0 }
-         }
-       };
-
-/***/ }),
-
-/***/ 6:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('div', {
-           class: ['panel', 'panel-' + _vm.type],
-           style: {
-             borderWidth: _vm.border
-           }
-         }, [_c('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._v(_vm._s(_vm.title))]), _c('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")], 2)])
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 122:
-/***/ (function(module, exports, __webpack_require__) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       module.exports = {
-         data: function data() {
-           return {
-             config: ''
-           };
-         },
-         components: {
-           panel: __webpack_require__(3)
-         },
-         created: function created() {
-           var config = this.$getConfig();
-           console.log('config', JSON.stringify(config));
-           this.config = JSON.stringify(config, null, 2);
-         }
-       };
-
-/***/ }),
-
-/***/ 123:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('scroller', [_c('panel', {
-           attrs: {
-             "title": "$getConfig()",
-             "type": "primary"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.config))])])], 1)
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/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
deleted file mode 100644
index 62e6d51..0000000
--- a/ios/playground/bundlejs/vue/modules/modal.js
+++ /dev/null
@@ -1,598 +0,0 @@
-// { "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__ = []
-
-       /* script */
-       __vue_exports__ = __webpack_require__(124)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(125)
-       __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/Hanks/Codes/work/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]
-         }
-       })
-       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)
-
-
-/***/ }),
-
-/***/ 3:
-/***/ (function(module, exports, __webpack_require__) {
-
-       var __vue_exports__, __vue_options__
-       var __vue_styles__ = []
-
-       /* styles */
-       __vue_styles__.push(__webpack_require__(4)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(5)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(6)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/include/panel.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-58511ff6"
-       __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__
-
-
-/***/ }),
-
-/***/ 4:
-/***/ (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": {
-           "paddingLeft": 12,
-           "paddingRight": 12,
-           "paddingTop": 20,
-           "paddingBottom": 20
-         }
-       }
-
-/***/ }),
-
-/***/ 5:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       module.exports = {
-         props: {
-           type: { default: 'default' },
-           title: { default: '' },
-           paddingBody: { default: 20 },
-           paddingHead: { default: 20 },
-           dataClass: { default: '' }, // FIXME transfer class
-           border: { default: 0 }
-         }
-       };
-
-/***/ }),
-
-/***/ 6:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('div', {
-           class: ['panel', 'panel-' + _vm.type],
-           style: {
-             borderWidth: _vm.border
-           }
-         }, [_c('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._v(_vm._s(_vm.title))]), _c('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")], 2)])
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 7:
-/***/ (function(module, exports, __webpack_require__) {
-
-       var __vue_exports__, __vue_options__
-       var __vue_styles__ = []
-
-       /* styles */
-       __vue_styles__.push(__webpack_require__(8)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(9)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(10)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/include/button.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-71b34881"
-       __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__
-
-
-/***/ }),
-
-/***/ 8:
-/***/ (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
-         }
-       }
-
-/***/ }),
-
-/***/ 9:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       module.exports = {
-         props: {
-           type: { default: 'default' },
-           size: { default: 'large' },
-           value: { default: '' }
-         }
-       };
-
-/***/ }),
-
-/***/ 10:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('div', {
-           class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-         }, [_c('text', {
-           class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-         }, [_vm._v(_vm._s(_vm.value))])])
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 124:
-/***/ (function(module, exports, __webpack_require__) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       var modal = weex.requireModule('modal');
-       module.exports = {
-         data: function data() {
-           return {};
-         },
-         components: {
-           panel: __webpack_require__(3),
-           button: __webpack_require__(7)
-         },
-         methods: {
-           toast: function toast(msg, duration) {
-             if (!msg || typeof msg !== 'string') {
-               msg = 'I am Toast show!';
-             }
-             duration = duration || 2;
-             modal.toast({
-               'message': msg,
-               'duration': duration
-             });
-           },
-           alert: function alert(msg, okTitle, cancelTitle) {
-             if (!msg || typeof msg !== 'string') {
-               msg = "I am Alert!";
-             }
-             modal.alert({
-               'message': msg,
-               'okTitle': okTitle,
-               'cancelTitle': cancelTitle
-             }, function () {
-               modal.toast({ message: "Click Alert OK Bnt!!" });
-             });
-           },
-           confirm: function confirm(msg, okTitle, cancelTitle) {
-             if (!msg || typeof msg !== 'string') {
-               msg = "I am Confirm!";
-             }
-             okTitle = okTitle || "OK";
-             cancelTitle = cancelTitle || "Cancel";
-             modal.confirm({
-               'message': msg,
-               'okTitle': okTitle,
-               'cancelTitle': cancelTitle
-             }, function (result) {
-               modal.toast({ message: "Click Confirm  " + 
JSON.stringify(result) });
-             });
-           },
-           prompt: function prompt() {
-             modal.prompt({
-               'message': 'I am Prompt!',
-               'okTitle': 'ok',
-               'cancelTitle': 'cancel'
-             }, function (result) {
-               modal.toast({ message: "Click Prompt  " + 
JSON.stringify(result) });
-             });
-           }
-         }
-       };
-
-/***/ }),
-
-/***/ 125:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('scroller', [_c('panel', {
-           attrs: {
-             "title": "Toast",
-             "type": "primary"
-           }
-         }, [_c('button', {
-           attrs: {
-             "type": "primary",
-             "value": "Toast"
-           },
-           nativeOn: {
-             "click": function($event) {
-               _vm.toast($event)
-             }
-           }
-         })], 1), _c('panel', {
-           attrs: {
-             "title": "Dialog",
-             "type": "primary"
-           }
-         }, [_c('button', {
-           staticStyle: {
-             marginBottom: "20px"
-           },
-           attrs: {
-             "type": "success",
-             "value": "Alert"
-           },
-           nativeOn: {
-             "click": function($event) {
-               _vm.alert($event)
-             }
-           }
-         }), _c('button', {
-           staticStyle: {
-             marginBottom: "20px"
-           },
-           attrs: {
-             "type": "primary",
-             "value": "Confirm"
-           },
-           nativeOn: {
-             "click": function($event) {
-               _vm.confirm($event)
-             }
-           }
-         }), _c('button', {
-           attrs: {
-             "type": "warning",
-             "value": "Prompt"
-           },
-           nativeOn: {
-             "click": function($event) {
-               _vm.prompt($event)
-             }
-           }
-         })], 1)], 1)
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/ios/playground/bundlejs/vue/modules/picker.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/modules/picker.js 
b/ios/playground/bundlejs/vue/modules/picker.js
deleted file mode 100644
index 3b5bf46..0000000
--- a/ios/playground/bundlejs/vue/modules/picker.js
+++ /dev/null
@@ -1,242 +0,0 @@
-// { "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__(126)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(127)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(128)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/modules/picker.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-4373d0c4"
-       __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)
-
-
-/***/ }),
-
-/***/ 126:
-/***/ (function(module, exports) {
-
-       module.exports = {
-         "container": {
-           "flex": 1
-         }
-       }
-
-/***/ }),
-
-/***/ 127:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       var picker = weex.requireModule('picker');
-       module.exports = {
-         data: {
-           normalpickData: '',
-           pickDateData: '',
-           pickTimeData: ''
-         },
-         methods: {
-           normalpick: function normalpick() {
-             var self = this;
-             picker.pick({
-               height: '300px',
-               items: [1, 2, 3, 4]
-             }, function (ret) {
-               var result = ret.result;
-               if (result == 'success') {
-                 self.normalpickData = ret.data;
-               }
-             });
-           },
-           pickDate: function pickDate(e) {
-             var self = this;
-             picker.pickDate({
-               'value': '2016-12-20',
-               'max': '2016-12-30',
-               'min': '2014-12-30'
-             }, function (ret) {
-               var result = ret.result;
-               if (result == 'success') {
-                 self.pickDateData = ret.data;
-               }
-             });
-           },
-           pickTime: function pickTime() {
-             var self = this;
-             picker.pickTime({}, function (ret) {
-               var result = ret.result;
-               if (result == 'success') {
-                 self.pickTimeData = ret.data;
-               }
-             });
-           }
-         }
-       };
-
-/***/ }),
-
-/***/ 128:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('div', {
-           staticClass: ["conatiner"]
-         }, [_vm._m(0), _c('div', {
-           staticStyle: {
-             margin: "20px",
-             padding: "20px",
-             backgroundColor: "#1ba1e2",
-             color: "#fff"
-           },
-           on: {
-             "click": _vm.normalpick
-           }
-         }, [_c('text', {
-           staticStyle: {
-             color: "#fff"
-           }
-         }, [_vm._v("normalpick" + _vm._s(_vm.normalpickData))])]), _c('div', {
-           staticStyle: {
-             margin: "20px",
-             padding: "20px",
-             backgroundColor: "#1ba1e2",
-             color: "#fff"
-           },
-           on: {
-             "click": _vm.pickDate
-           }
-         }, [_c('text', {
-           staticStyle: {
-             color: "#fff"
-           }
-         }, [_vm._v("pickDate" + _vm._s(_vm.pickDateData))])]), _c('div', {
-           staticStyle: {
-             margin: "20px",
-             padding: "20px",
-             backgroundColor: "#1ba1e2",
-             color: "#fff"
-           },
-           on: {
-             "click": _vm.pickTime
-           }
-         }, [_c('text', {
-           staticStyle: {
-             color: "#fff"
-           }
-         }, [_vm._v("pickTime" + _vm._s(_vm.pickTimeData))])])])
-       },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: "80px",
-             padding: "20px",
-             color: "white"
-           }
-         }, [_vm._v("picker")])])
-       }]}
-       module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/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
deleted file mode 100644
index e98287c..0000000
--- a/ios/playground/bundlejs/vue/modules/storage.js
+++ /dev/null
@@ -1,394 +0,0 @@
-// { "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__ = []
-
-       /* script */
-       __vue_exports__ = __webpack_require__(129)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(130)
-       __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/Hanks/Codes/work/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]
-         }
-       })
-       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)
-
-
-/***/ }),
-
-/***/ 3:
-/***/ (function(module, exports, __webpack_require__) {
-
-       var __vue_exports__, __vue_options__
-       var __vue_styles__ = []
-
-       /* styles */
-       __vue_styles__.push(__webpack_require__(4)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(5)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(6)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/include/panel.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-58511ff6"
-       __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__
-
-
-/***/ }),
-
-/***/ 4:
-/***/ (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": {
-           "paddingLeft": 12,
-           "paddingRight": 12,
-           "paddingTop": 20,
-           "paddingBottom": 20
-         }
-       }
-
-/***/ }),
-
-/***/ 5:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       module.exports = {
-         props: {
-           type: { default: 'default' },
-           title: { default: '' },
-           paddingBody: { default: 20 },
-           paddingHead: { default: 20 },
-           dataClass: { default: '' }, // FIXME transfer class
-           border: { default: 0 }
-         }
-       };
-
-/***/ }),
-
-/***/ 6:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('div', {
-           class: ['panel', 'panel-' + _vm.type],
-           style: {
-             borderWidth: _vm.border
-           }
-         }, [_c('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._v(_vm._s(_vm.title))]), _c('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")], 2)])
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 129:
-/***/ (function(module, exports, __webpack_require__) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       var storage = weex.requireModule('storage');
-       module.exports = {
-         data: function data() {
-           return {
-             setItemResult: 'loading',
-             getItemResult: 'loading',
-             removeItemResult: 'loading',
-             lengthResult: 'loading',
-             getAllKeysResult: 'loading'
-           };
-         },
-         components: {
-           panel: __webpack_require__(3)
-         },
-         created: function created() {
-           var me = this;
-
-           //setItem
-           storage.setItem('foo', 'foo-value', function (e) {
-             console.log('set [foo<->foo-value]:' + JSON.stringify(e));
-             me.setItemResult = 'foo:' + JSON.stringify(e) + '\n';
-           });
-           storage.setItem('bar', 'bar-value', function (e) {
-             console.log('set [bar<->bar-value]:' + JSON.stringify(e));
-             me.setItemResult = me.setItemResult + 'bar:' + JSON.stringify(e);
-           });
-
-           //getItem
-           storage.getItem('foo', function (e) {
-             console.log('get foo result:' + JSON.stringify(e));
-             me.getItemResult = 'get foo,value is ' + e.data + '\n';
-           });
-           storage.getItem('bar', function (e) {
-             console.log('get bar result:' + JSON.stringify(e));
-             me.getItemResult += 'get bar,value is ' + e.data;
-           });
-
-           //length
-           storage.length(function (e) {
-             console.log('length:' + JSON.stringify(e));
-             me.lengthResult = 'current length is ' + e.data;
-           });
-
-           //getAllKeys
-           storage.getAllKeys(function (e) {
-             console.log('getAllKeys:' + JSON.stringify(e));
-             me.getAllKeysResult = '' + e.data;
-             //me.getAllKeysResult +=' '+ typeof e.data
-           });
-
-           //removeItem
-           storage.removeItem('foo', function (e) {
-             console.log('remove foo:' + JSON.stringify(e));
-             me.removeItemResult = 'remove item foo ' + e.result;
-           });
-         }
-       };
-
-/***/ }),
-
-/***/ 130:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('scroller', [_c('panel', {
-           attrs: {
-             "title": "storage API",
-             "type": "primary"
-           }
-         }, [_c('panel', {
-           attrs: {
-             "title": "setItem"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.setItemResult))])]), _c('panel', {
-           attrs: {
-             "title": "getItem"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.getItemResult))])]), _c('panel', {
-           attrs: {
-             "title": "length"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.lengthResult))])]), _c('panel', {
-           attrs: {
-             "title": "getAllKeys"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.getAllKeysResult))])]), _c('panel', 
{
-           attrs: {
-             "title": "removeItem"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.removeItemResult))])])], 1)], 1)
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/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
deleted file mode 100644
index f08f183..0000000
--- a/ios/playground/bundlejs/vue/modules/stream.js
+++ /dev/null
@@ -1,490 +0,0 @@
-// { "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__ = []
-
-       /* script */
-       __vue_exports__ = __webpack_require__(131)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(132)
-       __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/Hanks/Codes/work/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]
-         }
-       })
-       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)
-
-
-/***/ }),
-
-/***/ 3:
-/***/ (function(module, exports, __webpack_require__) {
-
-       var __vue_exports__, __vue_options__
-       var __vue_styles__ = []
-
-       /* styles */
-       __vue_styles__.push(__webpack_require__(4)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(5)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(6)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/include/panel.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-58511ff6"
-       __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__
-
-
-/***/ }),
-
-/***/ 4:
-/***/ (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": {
-           "paddingLeft": 12,
-           "paddingRight": 12,
-           "paddingTop": 20,
-           "paddingBottom": 20
-         }
-       }
-
-/***/ }),
-
-/***/ 5:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       module.exports = {
-         props: {
-           type: { default: 'default' },
-           title: { default: '' },
-           paddingBody: { default: 20 },
-           paddingHead: { default: 20 },
-           dataClass: { default: '' }, // FIXME transfer class
-           border: { default: 0 }
-         }
-       };
-
-/***/ }),
-
-/***/ 6:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('div', {
-           class: ['panel', 'panel-' + _vm.type],
-           style: {
-             borderWidth: _vm.border
-           }
-         }, [_c('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._v(_vm._s(_vm.title))]), _c('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")], 2)])
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 131:
-/***/ (function(module, exports, __webpack_require__) {
-
-       'use strict';
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       var stream = weex.requireModule('stream');
-       module.exports = {
-         data: function data() {
-           return {
-             getJsonpResult: 'loading...',
-             getResult: 'loading...',
-             postResult: 'loading...',
-             putResult: 'loading...',
-             deleteResult: 'loading...',
-             headResult: 'loading...',
-             patchResult: 'loading...'
-           };
-         },
-         components: {
-           panel: __webpack_require__(3)
-         },
-         created: function created() {
-           var me = this;
-           var GET_URL_JSONP = 
'http://jsfiddle.net/echo/jsonp/?callback=anything&result=content_in_response';
-           var GET_URL = 'http://httpbin.org/get';
-           var POST_URL = 'http://httpbin.org/post';
-           var PUT_URL = 'http://httpbin.org/put';
-           var DELETE_URL = 'http://httpbin.org/delete';
-           var HEAD_URL = 'http://httpbin.org/status/418';
-           var PATCH_URL = 'http://httpbin.org/patch';
-
-           stream.fetch({
-             method: 'GET',
-             url: GET_URL_JSONP,
-             type: 'jsonp'
-           }, function (ret) {
-             if (!ret.ok) {
-               me.getJsonpResult = "request failed";
-             } else {
-               console.log('get:' + ret);
-               me.getJsonpResult = JSON.stringify(ret.data);
-             }
-           }, function (response) {
-             console.log('get jsonp in progress:' + response.length);
-             me.getJsonpResult = "bytes received:" + response.length;
-           });
-
-           stream.fetch({
-             method: 'GET',
-             url: GET_URL,
-             type: 'json'
-           }, function (ret) {
-             if (!ret.ok) {
-               me.getResult = "request failed";
-             } else {
-               console.log('get:' + ret);
-               me.getResult = JSON.stringify(ret.data);
-             }
-           }, function (response) {
-             console.log('get in progress:' + response.length);
-             me.getResult = "bytes received:" + response.length;
-           });
-
-           stream.fetch({
-             method: 'POST',
-             url: POST_URL,
-             type: 'json'
-           }, function (ret) {
-             if (!ret.ok) {
-               me.postResult = "request failed";
-             } else {
-               console.log('get:' + JSON.stringify(ret));
-               me.postResult = JSON.stringify(ret.data);
-             }
-           }, function (response) {
-             console.log('get in progress:' + response.length);
-             me.postResult = "bytes received:" + response.length;
-           });
-
-           stream.fetch({
-             method: 'PUT',
-             url: PUT_URL,
-             type: 'json'
-           }, function (ret) {
-             if (!ret.ok) {
-               me.putResult = "request failed";
-             } else {
-               console.log('get:' + JSON.stringify(ret));
-               me.putResult = JSON.stringify(ret.data);
-             }
-           }, function (response) {
-             console.log('get in progress:' + response.length);
-             me.putResult = "bytes received:" + response.length;
-           });
-
-           stream.fetch({
-             method: 'DELETE',
-             url: DELETE_URL,
-             type: 'json'
-           }, function (ret) {
-
-             if (!ret.ok) {
-               me.deleteResult = "request failed";
-             } else {
-               console.log('get:' + JSON.stringify(ret));
-               me.deleteResult = JSON.stringify(ret.data);
-             }
-           }, function (response) {
-             console.log('get in progress:' + response.length);
-             me.deleteResult = "bytes received:" + response.length;
-           });
-
-           stream.fetch({
-             method: 'HEAD',
-             url: HEAD_URL,
-             type: 'json'
-           }, function (ret) {
-             if (ret.statusText !== 'I\'m a teapot') {
-               me.headResult = "request failed";
-             } else {
-               console.log('get:' + JSON.stringify(ret));
-               me.headResult = ret.statusText;
-             }
-           }, function (response) {
-             console.log('get in progress:' + response.length);
-             me.headResult = "bytes received:" + response.length;
-           });
-
-           stream.fetch({
-             method: 'PATCH',
-             url: PATCH_URL,
-             type: 'json'
-           }, function (ret) {
-             if (!ret.ok) {
-               me.patchResult = "request failed";
-             } else {
-               console.log('get:' + JSON.stringify(ret));
-               me.patchResult = JSON.stringify(ret.data);
-             }
-           }, function (response) {
-             console.log('get in progress:' + response.length);
-             me.patchResult = "bytes received:" + response.length;
-           });
-         }
-       };
-
-/***/ }),
-
-/***/ 132:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('scroller', [_c('panel', {
-           attrs: {
-             "title": "stream.fetch",
-             "type": "primary"
-           }
-         }, [_c('panel', {
-           attrs: {
-             "title": "method = GET"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.getResult))])]), _c('panel', {
-           attrs: {
-             "title": "method = GET / type = jsonp"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.getJsonpResult))])]), _c('panel', {
-           attrs: {
-             "title": "method = POST"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.postResult))])]), _c('panel', {
-           attrs: {
-             "title": "method = PUT"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.putResult))])]), _c('panel', {
-           attrs: {
-             "title": "method = DELETE"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.deleteResult))])]), _c('panel', {
-           attrs: {
-             "title": "method = HEAD"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.headResult))])]), _c('panel', {
-           attrs: {
-             "title": "method = PATCH"
-           }
-         }, [_c('text', [_vm._v(_vm._s(_vm.patchResult))])])], 1)], 1)
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/ios/playground/bundlejs/vue/modules/websocket.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/modules/websocket.js 
b/ios/playground/bundlejs/vue/modules/websocket.js
deleted file mode 100644
index 69eb4cc..0000000
--- a/ios/playground/bundlejs/vue/modules/websocket.js
+++ /dev/null
@@ -1,437 +0,0 @@
-// { "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__(133)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(134)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(135)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/modules/websocket.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-35ca2732"
-       __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)
-
-
-/***/ }),
-
-/***/ 133:
-/***/ (function(module, exports) {
-
-       module.exports = {
-         "input": {
-           "fontSize": 40,
-           "height": 80,
-           "width": 600
-         },
-         "button": {
-           "fontSize": 36,
-           "width": 150,
-           "color": "#41B883",
-           "textAlign": "center",
-           "paddingTop": 25,
-           "paddingBottom": 25,
-           "borderWidth": 2,
-           "borderStyle": "solid",
-           "marginRight": 20,
-           "borderColor": "rgb(162,217,192)",
-           "backgroundColor": "rgba(162,217,192,0.2)"
-         }
-       }
-
-/***/ }),
-
-/***/ 134:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       Object.defineProperty(exports, "__esModule", {
-         value: true
-       });
-
-       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; };
-
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       var websocket = weex.requireModule('webSocket');
-       exports.default = {
-         data: function data() {
-           return {
-             connectinfo: '',
-             sendinfo: '',
-             onopeninfo: '',
-             onmessage: '',
-             oncloseinfo: '',
-             onerrorinfo: '',
-             closeinfo: '',
-             txtInput: '',
-             navBarHeight: 88,
-             title: 'Navigator',
-             dir: 'examples',
-             baseURL: ''
-           };
-         },
-
-         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) {
-               console.log(_typeof(e.data));
-               if (typeof e.data === 'string') {
-                 self.onmessage = e.data;
-               } else {
-                 var str = 'receive array buffer show with string:' + 
String.fromCharCode.apply(null, new Float32Array(e.data));
-                 self.onmessage = str;
-               }
-             };
-             websocket.onerror = function (e) {
-               self.onerrorinfo = e.data;
-             };
-             websocket.onclose = function (e) {
-               self.onopeninfo = '';
-               self.oncloseinfo = e.code;
-             };
-           },
-           send: function send(e) {
-             var input = this.$refs.input;
-             input.blur();
-             websocket.send(this.txtInput);
-             this.sendinfo = this.txtInput;
-           },
-           sendArrayBuffer: function sendArrayBuffer(e) {
-             var input = this.$refs.input;
-             input.blur();
-             var buffer = new ArrayBuffer(16);
-             var view = new Float32Array(buffer);
-             view.set([4, 89, 36.9, 0.765]);
-             console.log(buffer);
-             var str = 'send array buffer show with string:' + 
String.fromCharCode.apply(null, new Float32Array(buffer));
-             this.sendinfo = str;
-             websocket.send(buffer);
-           },
-           oninput: function oninput(event) {
-             this.txtInput = event.value;
-           },
-           close: function close(e) {
-             this.closeinfo = 'close connect';
-             websocket.close();
-           }
-         }
-       };
-
-/***/ }),
-
-/***/ 135:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('scroller', [_c('div', [_vm._m(0), _c('input', {
-           ref: "input",
-           staticClass: ["input"],
-           attrs: {
-             "type": "text",
-             "placeholder": "please input message to send",
-             "autofocus": "false",
-             "value": ""
-           },
-           on: {
-             "input": _vm.oninput
-           }
-         }), _c('div', {
-           staticStyle: {
-             flexDirection: "row",
-             justifyContent: "center"
-           }
-         }, [_c('text', {
-           staticClass: ["button"],
-           on: {
-             "click": _vm.connect
-           }
-         }, [_vm._v("connect")]), _c('text', {
-           staticClass: ["button"],
-           on: {
-             "click": _vm.send
-           }
-         }, [_vm._v("send")]), _c('text', {
-           staticClass: ["button"],
-           on: {
-             "click": _vm.sendArrayBuffer
-           }
-         }, [_vm._v("sendArrayBuffer")]), _c('text', {
-           staticClass: ["button"],
-           on: {
-             "click": _vm.close
-           }
-         }, [_vm._v("close")])]), _vm._m(1), _c('text', {
-           staticStyle: {
-             color: "black",
-             height: "80px"
-           }
-         }, [_vm._v(_vm._s(_vm.closeinfo))]), _vm._m(2), _c('text', {
-           staticStyle: {
-             color: "black",
-             height: "80px"
-           }
-         }, [_vm._v(_vm._s(_vm.sendinfo))]), _vm._m(3), _c('text', {
-           staticStyle: {
-             color: "black",
-             height: "80px"
-           }
-         }, [_vm._v(_vm._s(_vm.onopeninfo))]), _vm._m(4), _c('text', {
-           staticStyle: {
-             color: "black",
-             height: "400px"
-           }
-         }, [_vm._v(_vm._s(_vm.onmessage))]), _vm._m(5), _c('text', {
-           staticStyle: {
-             color: "black",
-             height: "80px"
-           }
-         }, [_vm._v(_vm._s(_vm.oncloseinfo))]), _vm._m(6), _c('text', {
-           staticStyle: {
-             color: "black",
-             height: "80px"
-           }
-         }, [_vm._v(_vm._s(_vm.onerrorinfo))])])])
-       },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: "80px",
-             padding: "20px",
-             color: "white"
-           }
-         }, [_vm._v("websocket")])])
-       },function (){var _vm=this;var _h=_vm.$createElement;var 
_c=_vm._self._c||_h;
-         return _c('div', {
-           staticStyle: {
-             backgroundColor: "lightgray"
-           }
-         }, [_c('text', {
-           staticClass: ["title"],
-           staticStyle: {
-             height: "80px",
-             padding: "20px",
-             color: "black"
-           }
-         }, [_vm._v("method = close")])])
-       },function (){var _vm=this;var _h=_vm.$createElement;var 
_c=_vm._self._c||_h;
-         return _c('div', {
-           staticStyle: {
-             backgroundColor: "lightgray"
-           }
-         }, [_c('text', {
-           staticClass: ["title"],
-           staticStyle: {
-             height: "80px",
-             padding: "20px",
-             color: "black"
-           }
-         }, [_vm._v("method = send")])])
-       },function (){var _vm=this;var _h=_vm.$createElement;var 
_c=_vm._self._c||_h;
-         return _c('div', {
-           staticStyle: {
-             backgroundColor: "lightgray"
-           }
-         }, [_c('text', {
-           staticClass: ["title"],
-           staticStyle: {
-             height: "80px",
-             padding: "20px",
-             color: "black"
-           }
-         }, [_vm._v("method = onopen")])])
-       },function (){var _vm=this;var _h=_vm.$createElement;var 
_c=_vm._self._c||_h;
-         return _c('div', {
-           staticStyle: {
-             backgroundColor: "lightgray"
-           }
-         }, [_c('text', {
-           staticClass: ["title"],
-           staticStyle: {
-             height: "80px",
-             padding: "20px",
-             color: "black"
-           }
-         }, [_vm._v("method = onmessage")])])
-       },function (){var _vm=this;var _h=_vm.$createElement;var 
_c=_vm._self._c||_h;
-         return _c('div', {
-           staticStyle: {
-             backgroundColor: "lightgray"
-           }
-         }, [_c('text', {
-           staticClass: ["title"],
-           staticStyle: {
-             height: "80px",
-             padding: "20px",
-             color: "black"
-           }
-         }, [_vm._v("method = onclose")])])
-       },function (){var _vm=this;var _h=_vm.$createElement;var 
_c=_vm._self._c||_h;
-         return _c('div', {
-           staticStyle: {
-             backgroundColor: "lightgray"
-           }
-         }, [_c('text', {
-           staticClass: ["title"],
-           staticStyle: {
-             height: "80px",
-             padding: "20px",
-             color: "black"
-           }
-         }, [_vm._v("method = onerror")])])
-       }]}
-       module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/ios/playground/bundlejs/vue/showcase/a-node-click.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/vue/showcase/a-node-click.js 
b/ios/playground/bundlejs/vue/showcase/a-node-click.js
deleted file mode 100644
index 7f4f090..0000000
--- a/ios/playground/bundlejs/vue/showcase/a-node-click.js
+++ /dev/null
@@ -1,244 +0,0 @@
-// { "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__(136)
-       )
-
-       /* script */
-       __vue_exports__ = __webpack_require__(137)
-
-       /* template */
-       var __vue_template__ = __webpack_require__(138)
-       __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/Hanks/Codes/work/incubator-weex/examples/vue/showcase/a-node-click.vue"
-       __vue_options__.render = __vue_template__.render
-       __vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-       __vue_options__._scopeId = "data-v-07076933"
-       __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)
-
-
-/***/ }),
-
-/***/ 136:
-/***/ (function(module, exports) {
-
-       module.exports = {
-         "list": {
-           "height": 2000
-         },
-         "cell": {
-           "height": 400,
-           "backgroundColor": "#0000FF"
-         },
-         "txt": {
-           "fontSize": 64,
-           "height": 84,
-           "lineHeight": 84,
-           "paddingTop": 10,
-           "paddingRight": 10,
-           "paddingBottom": 10,
-           "paddingLeft": 10
-         },
-         "ct": {
-           "width": 200,
-           "height": 200,
-           "backgroundColor": "#ffffff"
-         }
-       }
-
-/***/ }),
-
-/***/ 137:
-/***/ (function(module, exports) {
-
-       'use strict';
-
-       Object.defineProperty(exports, "__esModule", {
-         value: true
-       });
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-       //
-
-       exports.default = {
-         data: function data() {
-           return {
-             // url: '//m.taobao.com'
-             url: '#'
-           };
-         },
-
-         components: {
-           xlink: {
-             props: {
-               href: String
-             },
-             render: function render(createElement) {
-               return createElement('a', {
-                 ref: 'link',
-                 attrs: {
-                   'component-name': 'link',
-                   'href': this.href
-                 }
-               }, this.$slots.default);
-             }
-           }
-         },
-         methods: {
-           click: function click(evt) {
-             evt.preventDefault();
-             // var d = Date.now()
-             // while (true) {
-             //   var now = Date.now()
-             //   if (now - d > 2000) { break }
-             // }
-             // throw new Error('test')
-             console.log('click on inner');
-           },
-           clickCell: function clickCell(evt) {
-             console.log('click on cell');
-           }
-         }
-       };
-
-/***/ }),
-
-/***/ 138:
-/***/ (function(module, exports) {
-
-       module.exports={render:function (){var _vm=this;var 
_h=_vm.$createElement;var _c=_vm._self._c||_h;
-         return _c('list', {
-           staticClass: ["list"]
-         }, [_c('cell', {
-           staticClass: ["cell"],
-           appendAsTree: true,
-           attrs: {
-             "append": "tree"
-           },
-           on: {
-             "click": _vm.clickCell
-           }
-         }, [_c('xlink', {
-           staticStyle: {
-             width: "400px",
-             height: "400px",
-             backgroundColor: "yellow"
-           },
-           attrs: {
-             "target": "_blank",
-             "href": _vm.url
-           }
-         }, [_c('div', {
-           staticClass: ["ct"],
-           on: {
-             "click": _vm.click
-           }
-         }, [_c('text', [_vm._v("CLICK ME")])])])], 1)])
-       },staticRenderFns: []}
-       module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file


Reply via email to