docs: function createInstance (
    instanceId,
    appCode,
    config,
    data,
    env
  ) {
    if ( appCode === void 0 ) appCode = '';
    if ( config === void 0 ) config = {};
    if ( env === void 0 ) env = {};
  
    // Set active instance id and put some information into `instances` map.
    activeId = instanceId;
  
    // Virtual-DOM object.
    var document = new renderer.Document(instanceId, config.bundleUrl);
  
    // All function/callback of parameters before sent to native
    // will be converted as an id. So `callbacks` is used to store
    // these real functions. When a callback invoked and won't be
    // called again, it should be removed from here automatically.
    var callbacks = [];
  
    // The latest callback id, incremental.
    var callbackId = 1;
  
    instances[instanceId] = {
      instanceId: instanceId, config: config, data: data,
      document: document, callbacks: callbacks, callbackId: callbackId
    };
  
    // Prepare native module getter and HTML5 Timer APIs.
    var moduleGetter = genModuleGetter(instanceId);
    var timerAPIs = getInstanceTimer(instanceId, moduleGetter);
  
    // Prepare `jud` instance variable.
    var judInstanceVar = {
      config: config,
      document: document,
      require: moduleGetter
    };
    Object.freeze(judInstanceVar);
  
    // Each instance has a independent `Vue` variable and it should have
    // all top-level public APIs.
    var subVue = Vue$2.extend({});
  
    // ensure plain-object components are extended from the subVue
    subVue.options._base = subVue
  
    // expose global utility
    ;['util', 'set', 'delete', 'nextTick', 'version', 'judVersion', 'config'].forEach(function (name) {
      subVue[name] = Vue$2[name];
    });
  
    // The function which create a closure the JS Bundle will run in.
    // It will declare some instance variables like `Vue`, HTML5 Timer APIs etc.
    var instanceVars = Object.assign({
      Vue: subVue,
      jud: judInstanceVar,
      __jud_require_module__: judInstanceVar.require // deprecated
    }, timerAPIs);
    callFunction(instanceVars, appCode);
  
    // Send `createFinish` signal to native.
    renderer.sendTasks(instanceId + '', [{ module: 'dom', method: 'createFinish', args: [] }], -1);
  }