Best JavaScript code snippet using playwright-internal
size-check.global.js
Source:size-check.global.js  
...4461          });4462      }4463  }4464  // dev only4465  function exposeSetupStateOnRenderContext(instance) {4466      const { ctx, setupState } = instance;4467      Object.keys(toRaw(setupState)).forEach(key => {4468          Object.defineProperty(ctx, key, {4469              enumerable: true,4470              configurable: true,4471              get: () => setupState[key],4472              set: NOOP4473          });4474      });4475  }4476  const emptyAppContext = createAppContext();4477  let uid$1 = 0;4478  function createComponentInstance(vnode, parent, suspense) {4479      // inherit parent app context - or - if root, adopt from root vnode4480      const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;4481      const instance = {4482          uid: uid$1++,4483          vnode,4484          parent,4485          appContext,4486          type: vnode.type,4487          root: null,4488          next: null,4489          subTree: null,4490          update: null,4491          render: null,4492          proxy: null,4493          withProxy: null,4494          effects: null,4495          provides: parent ? parent.provides : Object.create(appContext.provides),4496          accessCache: null,4497          renderCache: [],4498          // state4499          ctx: EMPTY_OBJ,4500          data: EMPTY_OBJ,4501          props: EMPTY_OBJ,4502          attrs: EMPTY_OBJ,4503          slots: EMPTY_OBJ,4504          refs: EMPTY_OBJ,4505          setupState: EMPTY_OBJ,4506          setupContext: null,4507          // per-instance asset storage (mutable during options resolution)4508          components: Object.create(appContext.components),4509          directives: Object.create(appContext.directives),4510          // suspense related4511          suspense,4512          asyncDep: null,4513          asyncResolved: false,4514          // lifecycle hooks4515          // not using enums here because it results in computed properties4516          isMounted: false,4517          isUnmounted: false,4518          isDeactivated: false,4519          bc: null,4520          c: null,4521          bm: null,4522          m: null,4523          bu: null,4524          u: null,4525          um: null,4526          bum: null,4527          da: null,4528          a: null,4529          rtg: null,4530          rtc: null,4531          ec: null,4532          emit: null // to be set immediately4533      };4534      {4535          instance.ctx = createRenderContext(instance);4536      }4537      instance.root = parent ? parent.root : instance;4538      instance.emit = emit.bind(null, instance);4539      return instance;4540  }4541  let currentInstance = null;4542  const setCurrentInstance = (instance) => {4543      currentInstance = instance;4544  };4545  const isBuiltInTag = /*#__PURE__*/ makeMap('slot,component');4546  function validateComponentName(name, config) {4547      const appIsNativeTag = config.isNativeTag || NO;4548      if (isBuiltInTag(name) || appIsNativeTag(name)) {4549          warn('Do not use built-in or reserved HTML elements as component id: ' + name);4550      }4551  }4552  let isInSSRComponentSetup = false;4553  function setupComponent(instance, isSSR = false) {4554      isInSSRComponentSetup = isSSR;4555      const { props, children, shapeFlag } = instance.vnode;4556      const isStateful = shapeFlag & 4 /* STATEFUL_COMPONENT */;4557      initProps(instance, props, isStateful, isSSR);4558      initSlots(instance, children);4559      const setupResult = isStateful4560          ? setupStatefulComponent(instance, isSSR)4561          : undefined;4562      isInSSRComponentSetup = false;4563      return setupResult;4564  }4565  function setupStatefulComponent(instance, isSSR) {4566      const Component = instance.type;4567      {4568          if (Component.name) {4569              validateComponentName(Component.name, instance.appContext.config);4570          }4571          if (Component.components) {4572              const names = Object.keys(Component.components);4573              for (let i = 0; i < names.length; i++) {4574                  validateComponentName(names[i], instance.appContext.config);4575              }4576          }4577          if (Component.directives) {4578              const names = Object.keys(Component.directives);4579              for (let i = 0; i < names.length; i++) {4580                  validateDirectiveName(names[i]);4581              }4582          }4583      }4584      // 0. create render proxy property access cache4585      instance.accessCache = {};4586      // 1. create public instance / render proxy4587      instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);4588      {4589          exposePropsOnRenderContext(instance);4590      }4591      // 2. call setup()4592      const { setup } = Component;4593      if (setup) {4594          const setupContext = (instance.setupContext =4595              setup.length > 1 ? createSetupContext(instance) : null);4596          currentInstance = instance;4597          pauseTracking();4598          const setupResult = callWithErrorHandling(setup, instance, 0 /* SETUP_FUNCTION */, [ shallowReadonly(instance.props) , setupContext]);4599          resetTracking();4600          currentInstance = null;4601          if (isPromise(setupResult)) {4602              if (isSSR) {4603                  // return the promise so server-renderer can wait on it4604                  return setupResult.then((resolvedResult) => {4605                      handleSetupResult(instance, resolvedResult);4606                  });4607              }4608              else {4609                  // async setup returned Promise.4610                  // bail here and wait for re-entry.4611                  instance.asyncDep = setupResult;4612              }4613          }4614          else {4615              handleSetupResult(instance, setupResult);4616          }4617      }4618      else {4619          finishComponentSetup(instance);4620      }4621  }4622  function handleSetupResult(instance, setupResult, isSSR) {4623      if (isFunction(setupResult)) {4624          // setup returned an inline render function4625          instance.render = setupResult;4626      }4627      else if (isObject(setupResult)) {4628          if ( isVNode(setupResult)) {4629              warn(`setup() should not return VNodes directly - ` +4630                  `return a render function instead.`);4631          }4632          // setup returned bindings.4633          // assuming a render function compiled from template is present.4634          instance.setupState = reactive(setupResult);4635          {4636              exposeSetupStateOnRenderContext(instance);4637          }4638      }4639      else if ( setupResult !== undefined) {4640          warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);4641      }4642      finishComponentSetup(instance);4643  }4644  function finishComponentSetup(instance, isSSR) {4645      const Component = instance.type;4646      // template / render function normalization4647      if (!instance.render) {4648          if ( !Component.render) {4649              /* istanbul ignore if */4650              if ( Component.template) {
...bundle.esm.js
Source:bundle.esm.js  
...4639        });4640    }4641}4642// dev only4643function exposeSetupStateOnRenderContext(instance) {4644    const { ctx, setupState } = instance;4645    Object.keys(toRaw(setupState)).forEach(key => {4646        Object.defineProperty(ctx, key, {4647            enumerable: true,4648            configurable: true,4649            get: () => setupState[key],4650            set: NOOP4651        });4652    });4653}4654const emptyAppContext = createAppContext();4655let uid$1 = 0;4656function createComponentInstance(vnode, parent, suspense) {4657    // inherit parent app context - or - if root, adopt from root vnode4658    const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;4659    const instance = {4660        uid: uid$1++,4661        vnode,4662        parent,4663        appContext,4664        type: vnode.type,4665        root: null,4666        next: null,4667        subTree: null,4668        update: null,4669        render: null,4670        proxy: null,4671        withProxy: null,4672        effects: null,4673        provides: parent ? parent.provides : Object.create(appContext.provides),4674        accessCache: null,4675        renderCache: [],4676        // state4677        ctx: EMPTY_OBJ,4678        data: EMPTY_OBJ,4679        props: EMPTY_OBJ,4680        attrs: EMPTY_OBJ,4681        slots: EMPTY_OBJ,4682        refs: EMPTY_OBJ,4683        setupState: EMPTY_OBJ,4684        setupContext: null,4685        // per-instance asset storage (mutable during options resolution)4686        components: Object.create(appContext.components),4687        directives: Object.create(appContext.directives),4688        // suspense related4689        suspense,4690        asyncDep: null,4691        asyncResolved: false,4692        // lifecycle hooks4693        // not using enums here because it results in computed properties4694        isMounted: false,4695        isUnmounted: false,4696        isDeactivated: false,4697        bc: null,4698        c: null,4699        bm: null,4700        m: null,4701        bu: null,4702        u: null,4703        um: null,4704        bum: null,4705        da: null,4706        a: null,4707        rtg: null,4708        rtc: null,4709        ec: null,4710        emit: null // to be set immediately4711    };4712    {4713        instance.ctx = createRenderContext(instance);4714    }4715    instance.root = parent ? parent.root : instance;4716    instance.emit = emit.bind(null, instance);4717    return instance;4718}4719let currentInstance = null;4720const setCurrentInstance = (instance) => {4721    currentInstance = instance;4722};4723const isBuiltInTag = /*#__PURE__*/ makeMap('slot,component');4724function validateComponentName(name, config) {4725    const appIsNativeTag = config.isNativeTag || NO;4726    if (isBuiltInTag(name) || appIsNativeTag(name)) {4727        warn('Do not use built-in or reserved HTML elements as component id: ' + name);4728    }4729}4730let isInSSRComponentSetup = false;4731function setupComponent(instance, isSSR = false) {4732    isInSSRComponentSetup = isSSR;4733    const { props, children, shapeFlag } = instance.vnode;4734    const isStateful = shapeFlag & 4 /* STATEFUL_COMPONENT */;4735    initProps(instance, props, isStateful, isSSR);4736    initSlots(instance, children);4737    const setupResult = isStateful4738        ? setupStatefulComponent(instance, isSSR)4739        : undefined;4740    isInSSRComponentSetup = false;4741    return setupResult;4742}4743function setupStatefulComponent(instance, isSSR) {4744    const Component = instance.type;4745    {4746        if (Component.name) {4747            validateComponentName(Component.name, instance.appContext.config);4748        }4749        if (Component.components) {4750            const names = Object.keys(Component.components);4751            for (let i = 0; i < names.length; i++) {4752                validateComponentName(names[i], instance.appContext.config);4753            }4754        }4755        if (Component.directives) {4756            const names = Object.keys(Component.directives);4757            for (let i = 0; i < names.length; i++) {4758                validateDirectiveName(names[i]);4759            }4760        }4761    }4762    // 0. create render proxy property access cache4763    instance.accessCache = {};4764    // 1. create public instance / render proxy4765    // also mark it raw so it's never observed4766    instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);4767    {4768        exposePropsOnRenderContext(instance);4769    }4770    // 2. call setup()4771    const { setup } = Component;4772    if (setup) {4773        const setupContext = (instance.setupContext =4774            setup.length > 1 ? createSetupContext(instance) : null);4775        currentInstance = instance;4776        pauseTracking();4777        const setupResult = callWithErrorHandling(setup, instance, 0 /* SETUP_FUNCTION */, [ shallowReadonly(instance.props) , setupContext]);4778        resetTracking();4779        currentInstance = null;4780        if (isPromise(setupResult)) {4781            if (isSSR) {4782                // return the promise so server-renderer can wait on it4783                return setupResult.then((resolvedResult) => {4784                    handleSetupResult(instance, resolvedResult);4785                });4786            }4787            else {4788                // async setup returned Promise.4789                // bail here and wait for re-entry.4790                instance.asyncDep = setupResult;4791            }4792        }4793        else {4794            handleSetupResult(instance, setupResult);4795        }4796    }4797    else {4798        finishComponentSetup(instance);4799    }4800}4801function handleSetupResult(instance, setupResult, isSSR) {4802    if (isFunction(setupResult)) {4803        // setup returned an inline render function4804        instance.render = setupResult;4805    }4806    else if (isObject(setupResult)) {4807        if ( isVNode(setupResult)) {4808            warn(`setup() should not return VNodes directly - ` +4809                `return a render function instead.`);4810        }4811        // setup returned bindings.4812        // assuming a render function compiled from template is present.4813        instance.setupState = reactive(setupResult);4814        {4815            exposeSetupStateOnRenderContext(instance);4816        }4817    }4818    else if ( setupResult !== undefined) {4819        warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);4820    }4821    finishComponentSetup(instance);4822}4823function finishComponentSetup(instance, isSSR) {4824    const Component = instance.type;4825    // template / render function normalization4826    if (!instance.render) {4827        if ( !Component.render) {4828            /* istanbul ignore if */4829            if ( Component.template) {
...vendor.js
Source:vendor.js  
...3081      });3082    });3083  }3084}3085function exposeSetupStateOnRenderContext(instance) {3086  const { ctx, setupState } = instance;3087  Object.keys(toRaw(setupState)).forEach((key) => {3088    if (!setupState.__isScriptSetup) {3089      if (key[0] === "$" || key[0] === "_") {3090        warn$1(`setup() return property ${JSON.stringify(key)} should not start with "$" or "_" which are reserved prefixes for Vue internals.`);3091        return;3092      }3093      Object.defineProperty(ctx, key, {3094        enumerable: true,3095        configurable: true,3096        get: () => setupState[key],3097        set: NOOP3098      });3099    }3100  });3101}3102const emptyAppContext = createAppContext();3103let uid$1 = 0;3104function createComponentInstance(vnode, parent, suspense) {3105  const type = vnode.type;3106  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;3107  const instance = {3108    uid: uid$1++,3109    vnode,3110    type,3111    parent,3112    appContext,3113    root: null,3114    next: null,3115    subTree: null,3116    effect: null,3117    update: null,3118    scope: new EffectScope(true),3119    render: null,3120    proxy: null,3121    exposed: null,3122    exposeProxy: null,3123    withProxy: null,3124    provides: parent ? parent.provides : Object.create(appContext.provides),3125    accessCache: null,3126    renderCache: [],3127    components: null,3128    directives: null,3129    propsOptions: normalizePropsOptions(type, appContext),3130    emitsOptions: normalizeEmitsOptions(type, appContext),3131    emit: null,3132    emitted: null,3133    propsDefaults: EMPTY_OBJ,3134    inheritAttrs: type.inheritAttrs,3135    ctx: EMPTY_OBJ,3136    data: EMPTY_OBJ,3137    props: EMPTY_OBJ,3138    attrs: EMPTY_OBJ,3139    slots: EMPTY_OBJ,3140    refs: EMPTY_OBJ,3141    setupState: EMPTY_OBJ,3142    setupContext: null,3143    suspense,3144    suspenseId: suspense ? suspense.pendingId : 0,3145    asyncDep: null,3146    asyncResolved: false,3147    isMounted: false,3148    isUnmounted: false,3149    isDeactivated: false,3150    bc: null,3151    c: null,3152    bm: null,3153    m: null,3154    bu: null,3155    u: null,3156    um: null,3157    bum: null,3158    da: null,3159    a: null,3160    rtg: null,3161    rtc: null,3162    ec: null,3163    sp: null3164  };3165  {3166    instance.ctx = createDevRenderContext(instance);3167  }3168  instance.root = parent ? parent.root : instance;3169  instance.emit = emit$1.bind(null, instance);3170  if (vnode.ce) {3171    vnode.ce(instance);3172  }3173  return instance;3174}3175let currentInstance = null;3176const getCurrentInstance = () => currentInstance || currentRenderingInstance;3177const setCurrentInstance = (instance) => {3178  currentInstance = instance;3179  instance.scope.on();3180};3181const unsetCurrentInstance = () => {3182  currentInstance && currentInstance.scope.off();3183  currentInstance = null;3184};3185const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");3186function validateComponentName(name, config) {3187  const appIsNativeTag = config.isNativeTag || NO;3188  if (isBuiltInTag(name) || appIsNativeTag(name)) {3189    warn$1("Do not use built-in or reserved HTML elements as component id: " + name);3190  }3191}3192function isStatefulComponent(instance) {3193  return instance.vnode.shapeFlag & 4;3194}3195let isInSSRComponentSetup = false;3196function setupComponent(instance, isSSR = false) {3197  isInSSRComponentSetup = isSSR;3198  const { props } = instance.vnode;3199  const isStateful = isStatefulComponent(instance);3200  initProps$1(instance, props, isStateful, isSSR);3201  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;3202  isInSSRComponentSetup = false;3203  return setupResult;3204}3205function setupStatefulComponent(instance, isSSR) {3206  const Component2 = instance.type;3207  {3208    if (Component2.name) {3209      validateComponentName(Component2.name, instance.appContext.config);3210    }3211    if (Component2.components) {3212      const names = Object.keys(Component2.components);3213      for (let i = 0; i < names.length; i++) {3214        validateComponentName(names[i], instance.appContext.config);3215      }3216    }3217    if (Component2.directives) {3218      const names = Object.keys(Component2.directives);3219      for (let i = 0; i < names.length; i++) {3220        validateDirectiveName(names[i]);3221      }3222    }3223    if (Component2.compilerOptions && isRuntimeOnly()) {3224      warn$1(`"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`);3225    }3226  }3227  instance.accessCache = Object.create(null);3228  instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));3229  {3230    exposePropsOnRenderContext(instance);3231  }3232  const { setup } = Component2;3233  if (setup) {3234    const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;3235    setCurrentInstance(instance);3236    pauseTracking();3237    const setupResult = callWithErrorHandling(setup, instance, 0, [shallowReadonly(instance.props), setupContext]);3238    resetTracking();3239    unsetCurrentInstance();3240    if (isPromise(setupResult)) {3241      setupResult.then(unsetCurrentInstance, unsetCurrentInstance);3242      {3243        warn$1(`setup() returned a Promise, but the version of Vue you are using does not support it yet.`);3244      }3245    } else {3246      handleSetupResult(instance, setupResult, isSSR);3247    }3248  } else {3249    finishComponentSetup(instance, isSSR);3250  }3251}3252function handleSetupResult(instance, setupResult, isSSR) {3253  if (isFunction(setupResult)) {3254    {3255      instance.render = setupResult;3256    }3257  } else if (isObject(setupResult)) {3258    if (isVNode(setupResult)) {3259      warn$1(`setup() should not return VNodes directly - return a render function instead.`);3260    }3261    {3262      instance.devtoolsRawSetupState = setupResult;3263    }3264    instance.setupState = proxyRefs(setupResult);3265    {3266      exposeSetupStateOnRenderContext(instance);3267    }3268  } else if (setupResult !== void 0) {3269    warn$1(`setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}`);3270  }3271  finishComponentSetup(instance, isSSR);3272}3273let compile;3274const isRuntimeOnly = () => !compile;3275function finishComponentSetup(instance, isSSR, skipOptions) {3276  const Component2 = instance.type;3277  if (!instance.render) {3278    instance.render = Component2.render || NOOP;3279  }3280  {...vue.runtime.esm.js
Source:vue.runtime.esm.js  
...2739        });2740    }2741}2742// dev only2743function exposeSetupStateOnRenderContext(instance) {2744    const { ctx, setupState } = instance;2745    Object.keys(toRaw(setupState)).forEach(key => {2746        if (key[0] === '$' || key[0] === '_') {2747            warn(`setup() return property ${JSON.stringify(key)} should not start with "$" or "_" ` +2748                `which are reserved prefixes for Vue internals.`);2749            return;2750        }2751        Object.defineProperty(ctx, key, {2752            enumerable: true,2753            configurable: true,2754            get: () => setupState[key],2755            set: NOOP2756        });2757    });2758}2759const emptyAppContext = createAppContext();2760let uid$2 = 0;2761function createComponentInstance(vnode, parent, suspense) {2762    const type = vnode.type;2763    // inherit parent app context - or - if root, adopt from root vnode2764    const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;2765    const instance = {2766        uid: uid$2++,2767        vnode,2768        type,2769        parent,2770        appContext,2771        root: null,2772        next: null,2773        subTree: null,2774        update: null,2775        render: null,2776        proxy: null,2777        withProxy: null,2778        effects: null,2779        provides: parent ? parent.provides : Object.create(appContext.provides),2780        accessCache: null,2781        renderCache: [],2782        // local resovled assets2783        components: null,2784        directives: null,2785        // resolved props and emits options2786        propsOptions: normalizePropsOptions(type, appContext),2787        emitsOptions: normalizeEmitsOptions(type, appContext),2788        // emit2789        emit: null,2790        emitted: null,2791        // state2792        ctx: EMPTY_OBJ,2793        data: EMPTY_OBJ,2794        props: EMPTY_OBJ,2795        attrs: EMPTY_OBJ,2796        slots: EMPTY_OBJ,2797        refs: EMPTY_OBJ,2798        setupState: EMPTY_OBJ,2799        setupContext: null,2800        // suspense related2801        suspense,2802        suspenseId: suspense ? suspense.pendingId : 0,2803        asyncDep: null,2804        asyncResolved: false,2805        // lifecycle hooks2806        // not using enums here because it results in computed properties2807        isMounted: false,2808        isUnmounted: false,2809        isDeactivated: false,2810        bc: null,2811        c: null,2812        bm: null,2813        m: null,2814        bu: null,2815        u: null,2816        um: null,2817        bum: null,2818        da: null,2819        a: null,2820        rtg: null,2821        rtc: null,2822        ec: null2823    };2824    if ((process.env.NODE_ENV !== 'production')) {2825        instance.ctx = createRenderContext(instance);2826    }2827    else {2828        instance.ctx = { _: instance };2829    }2830    instance.root = parent ? parent.root : instance;2831    instance.emit = emit.bind(null, instance);2832    if ((process.env.NODE_ENV !== 'production') || false) ;2833    return instance;2834}2835let currentInstance = null;2836const setCurrentInstance = (instance) => {2837    currentInstance = instance;2838};2839const isBuiltInTag = /*#__PURE__*/ makeMap('slot,component');2840function validateComponentName(name, config) {2841    const appIsNativeTag = config.isNativeTag || NO;2842    if (isBuiltInTag(name) || appIsNativeTag(name)) {2843        warn('Do not use built-in or reserved HTML elements as component id: ' + name);2844    }2845}2846let isInSSRComponentSetup = false;2847function setupComponent(instance, isSSR = false) {2848    isInSSRComponentSetup = isSSR;2849    const { props, /* children, */ shapeFlag } = instance.vnode;2850    const isStateful = shapeFlag & 4 /* STATEFUL_COMPONENT */;2851    initProps(instance, props, isStateful, isSSR);2852    // initSlots(instance, children) // fixed by xxxxxx2853    const setupResult = isStateful2854        ? setupStatefulComponent(instance, isSSR)2855        : undefined;2856    isInSSRComponentSetup = false;2857    return setupResult;2858}2859function setupStatefulComponent(instance, isSSR) {2860    const Component = instance.type;2861    if ((process.env.NODE_ENV !== 'production')) {2862        if (Component.name) {2863            validateComponentName(Component.name, instance.appContext.config);2864        }2865        if (Component.components) {2866            const names = Object.keys(Component.components);2867            for (let i = 0; i < names.length; i++) {2868                validateComponentName(names[i], instance.appContext.config);2869            }2870        }2871        if (Component.directives) {2872            const names = Object.keys(Component.directives);2873            for (let i = 0; i < names.length; i++) {2874                validateDirectiveName(names[i]);2875            }2876        }2877    }2878    // 0. create render proxy property access cache2879    instance.accessCache = {};2880    // 1. create public instance / render proxy2881    // also mark it raw so it's never observed2882    instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);2883    if ((process.env.NODE_ENV !== 'production')) {2884        exposePropsOnRenderContext(instance);2885    }2886    // 2. call setup()2887    const { setup } = Component;2888    if (setup) {2889        const setupContext = (instance.setupContext =2890            setup.length > 1 ? createSetupContext(instance) : null);2891        currentInstance = instance;2892        pauseTracking();2893        const setupResult = callWithErrorHandling(setup, instance, 0 /* SETUP_FUNCTION */, [(process.env.NODE_ENV !== 'production') ? shallowReadonly(instance.props) : instance.props, setupContext]);2894        resetTracking();2895        currentInstance = null;2896        if (isPromise(setupResult)) {2897            if (isSSR) {2898                // return the promise so server-renderer can wait on it2899                return setupResult.then((resolvedResult) => {2900                    handleSetupResult(instance, resolvedResult);2901                });2902            }2903            else if ((process.env.NODE_ENV !== 'production')) {2904                warn(`setup() returned a Promise, but the version of Vue you are using ` +2905                    `does not support it yet.`);2906            }2907        }2908        else {2909            handleSetupResult(instance, setupResult);2910        }2911    }2912    else {2913        finishComponentSetup(instance);2914    }2915}2916function handleSetupResult(instance, setupResult, isSSR) {2917    if (isFunction(setupResult)) {2918        // setup returned an inline render function2919        instance.render = setupResult;2920    }2921    else if (isObject(setupResult)) {2922        // if ((process.env.NODE_ENV !== 'production') && isVNode(setupResult)) {2923        //   warn(2924        //     `setup() should not return VNodes directly - ` +2925        //       `return a render function instead.`2926        //   )2927        // }2928        // setup returned bindings.2929        // assuming a render function compiled from template is present.2930        if ((process.env.NODE_ENV !== 'production') || false) {2931            instance.devtoolsRawSetupState = setupResult;2932        }2933        instance.setupState = proxyRefs(setupResult);2934        if ((process.env.NODE_ENV !== 'production')) {2935            exposeSetupStateOnRenderContext(instance);2936        }2937    }2938    else if ((process.env.NODE_ENV !== 'production') && setupResult !== undefined) {2939        warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);2940    }2941    finishComponentSetup(instance);2942}2943function finishComponentSetup(instance, isSSR) {2944    const Component = instance.type;2945    // template / render function normalization2946    if (!instance.render) {2947        instance.render = (Component.render || NOOP);2948        // for runtime-compiled render functions using `with` blocks, the render2949        // proxy used needs a different `has` handler which is more performant and
...render.js
Source:render.js  
...907                                        instance.devtoolsRawSetupState = setupResult;908                                    }909                                    instance.setupState = proxyRefs(setupResult);910                                    {911                                        exposeSetupStateOnRenderContext(instance);912                                    }913                                }914                                else if ( setupResult !== undefined) {915                                    warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);916                                }917                                finishComponentSetup(instance);918                            }919                            function finishComponentSetup(instance, isSSR) {920                                const Component = instance.type;921                                // template / render function normalization922                                if (!instance.render) {923                                    // could be set from setup()924                                    if (compile && Component.template && !Component.render) {925                                        {926                                            startMeasure(instance, `compile`);927                                        }928                                        Component.render = compile(Component.template, {929                                            isCustomElement: instance.appContext.config.isCustomElement,930                                            delimiters: Component.delimiters931                                        });932                                        {933                                            endMeasure(instance, `compile`);934                                        }935                                    }936                                    instance.render = (Component.render || NOOP);937                                    // for runtime-compiled render functions using `with` blocks, the render938                                    // proxy used needs a different `has` handler which is more performant and939                                    // also only allows a whitelist of globals to fallthrough.940                                    if (instance.render._rc) {941                                        instance.withProxy = new Proxy(instance.ctx, RuntimeCompiledPublicInstanceProxyHandlers);942                                    }943                                }944                                // support for 2.x options945                                {946                                    currentInstance = instance;947                                    applyOptions(instance, Component);948                                    currentInstance = null;949                                }950                                // warn missing template/render951                                if ( !Component.render && instance.render === NOOP) {952                                    /* istanbul ignore if */953                                    if (!compile && Component.template) {954                                        warn(`Component provided template option but ` +955                                            `runtime compilation is not supported in this build of Vue.` +956                                            (  ` Use "vue.esm-browser.js" instead.`957                                                    ) /* should not happen */);958                                    }959                                    else {960                                        warn(`Component is missing template or render function.`);961                                    }962                                }963                            }964                                // Return a reactive-copy of the original object, where only the root level965                                // properties are readonly, and does NOT unwrap refs nor recursively convert966                                // returned properties.967                                // This is used for creating the props proxy object for stateful components.968                                function shallowReadonly(target) {969                                    return createReactiveObject(target, true, shallowReadonlyHandlers, readonlyCollectionHandlers);970                                }971                                        const shallowReadonlyHandlers = extend({}, readonlyHandlers, {972                                            get: shallowReadonlyGet973                                        });974                                        const shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);975                                        const readonlyHandlers = {976                                            get: readonlyGet,977                                            set(target, key) {978                                                {979                                                    console.warn(`Set operation on key "${String(key)}" failed: target is readonly.`, target);980                                                }981                                                return true;982                                            },983                                            deleteProperty(target, key) {984                                                {985                                                    console.warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target);986                                                }987                                                return true;988                                            }989                                        };990                                                function createGetter(isReadonly = false, shallow = false) {991                                                    return function get(target, key, receiver) {992                                                        if (key === "__v_isReactive" /* IS_REACTIVE */) {993                                                            return !isReadonly;994                                                        }995                                                        else if (key === "__v_isReadonly" /* IS_READONLY */) {996                                                            return isReadonly;997                                                        }998                                                        else if (key === "__v_raw" /* RAW */ &&999                                                            receiver === (isReadonly ? readonlyMap : reactiveMap).get(target)) {1000                                                            return target;1001                                                        }1002                                                        const targetIsArray = isArray(target);1003                                                        if (targetIsArray && hasOwn(arrayInstrumentations, key)) {1004                                                            return Reflect.get(arrayInstrumentations, key, receiver);1005                                                        }1006                                                        const res = Reflect.get(target, key, receiver);1007                                                        const keyIsSymbol = isSymbol(key);1008                                                        if (keyIsSymbol1009                                                            ? builtInSymbols.has(key)1010                                                            : key === `__proto__` || key === `__v_isRef`) {1011                                                            return res;1012                                                        }1013                                                        if (!isReadonly) {1014                                                            track(target, "get" /* GET */, key);1015                                                        }1016                                                        if (shallow) {1017                                                            return res;1018                                                        }1019                                                        if (isRef(res)) {1020                                                            // ref unwrapping - does not apply for Array + integer key.1021                                                            const shouldUnwrap = !targetIsArray || !isIntegerKey(key);1022                                                            return shouldUnwrap ? res.value : res;1023                                                        }1024                                                        if (isObject(res)) {1025                                                            // Convert returned value into a proxy as well. we do the isObject check1026                                                            // here to avoid invalid value warning. Also need to lazy access readonly1027                                                            // and reactive here to avoid circular dependency.1028                                                            return isReadonly ? readonly(res) : reactive(res);1029                                                        }1030                                                        return res;1031                                                    };1032                                                }1033                                                        function readonly(target) {1034                                                            return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers);1035                                                        }1036                                                        function reactive(target) {1037                                                            // if trying to observe a readonly proxy, return the readonly version.1038                                                            if (target && target["__v_isReadonly" /* IS_READONLY */]) {1039                                                                return target;1040                                                            }1041                                                            return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers);1042                                                        }1043                                                        const isObject = (val) => val !== null && typeof val === 'object';1044                                                        function isRef(r) {1045                                                            return Boolean(r && r.__v_isRef === true);1046                                                        }1047                                                        function pauseTracking() {1048                                                            trackStack.push(shouldTrack);1049                                                            shouldTrack = false;1050                                                        }1051                                                        function enableTracking() {1052                                                            trackStack.push(shouldTrack);1053                                                            shouldTrack = true;1054                                                        }1055                                                        function resetTracking() {1056                                                            const last = trackStack.pop();1057                                                            shouldTrack = last === undefined ? true : last;1058                                                        }1059                                                        function track(target, type, key) {1060                                                            if (!shouldTrack || activeEffect === undefined) {1061                                                                return;1062                                                            }1063                                                            let depsMap = targetMap.get(target);1064                                                            if (!depsMap) {1065                                                                targetMap.set(target, (depsMap = new Map()));1066                                                            }1067                                                            let dep = depsMap.get(key);1068                                                            if (!dep) {1069                                                                depsMap.set(key, (dep = new Set()));1070                                                            }1071                                                            if (!dep.has(activeEffect)) {1072                                                                dep.add(activeEffect);1073                                                                activeEffect.deps.push(dep);1074                                                                if ( activeEffect.options.onTrack) {1075                                                                    activeEffect.options.onTrack({1076                                                                        effect: activeEffect,1077                                                                        target,1078                                                                        type,1079                                                                        key1080                                                                    });1081                                                                }1082                                                            }1083                                                        }1084                                                            function effect(fn, options = EMPTY_OBJ) {1085                                                                if (isEffect(fn)) {1086                                                                    fn = fn.raw;1087                                                                }1088                                                                const effect = createReactiveEffect(fn, options);1089                                                                if (!options.lazy) {1090                                                                    effect();1091                                                                }1092                                                                return effect;1093                                                            }1094                                                            function createReactiveEffect(fn, options) {1095                                                                const effect = function reactiveEffect() {1096                                                                    if (!effect.active) {1097                                                                        return options.scheduler ? undefined : fn();1098                                                                    }1099                                                                    if (!effectStack.includes(effect)) {1100                                                                        cleanup(effect);1101                                                                        try {1102                                                                            enableTracking();1103                                                                            effectStack.push(effect);1104                                                                            activeEffect = effect;1105                                                                            return fn();1106                                                                        }1107                                                                        finally {1108                                                                            effectStack.pop();1109                                                                            resetTracking();1110                                                                            activeEffect = effectStack[effectStack.length - 1];1111                                                                        }1112                                                                    }1113                                                                };1114                                                                effect.id = uid++;1115                                                                effect._isEffect = true;1116                                                                effect.active = true;1117                                                                effect.raw = fn;1118                                                                effect.deps = [];1119                                                                effect.options = options;1120                                                                return effect;1121                                                            }1122                                        const readonlyCollectionHandlers = {1123                                            get: createInstrumentationGetter(true, false)1124                                        };1125                                        function createInstrumentationGetter(isReadonly, shallow) {1126                                            const instrumentations = shallow1127                                                ? shallowInstrumentations1128                                                : isReadonly1129                                                    ? readonlyInstrumentations1130                                                    : mutableInstrumentations;1131                                            return (target, key, receiver) => {1132                                                if (key === "__v_isReactive" /* IS_REACTIVE */) {1133                                                    return !isReadonly;1134                                                }1135                                                else if (key === "__v_isReadonly" /* IS_READONLY */) {1136                                                    return isReadonly;1137                                                }1138                                                else if (key === "__v_raw" /* RAW */) {1139                                                    return target;1140                                                }1141                                                return Reflect.get(hasOwn(instrumentations, key) && key in target1142                                                    ? instrumentations1143                                                    : target, key, receiver);1144                                            };1145                                        }1146                                                const shallowInstrumentations = {1147                                                    get(key) {1148                                                        return get$1(this, key, false, true);1149                                                    },1150                                                    get size() {1151                                                        return size(this);1152                                                    },1153                                                    has: has$1,1154                                                    add,1155                                                    set: set$1,1156                                                    delete: deleteEntry,1157                                                    clear,1158                                                    forEach: createForEach(false, true)1159                                                };1160                                                const readonlyInstrumentations = {1161                                                    get(key) {1162                                                        return get$1(this, key, true);1163                                                    },1164                                                    get size() {1165                                                        return size(this, true);1166                                                    },1167                                                    has(key) {1168                                                        return has$1.call(this, key, true);1169                                                    },1170                                                    add: createReadonlyMethod("add" /* ADD */),1171                                                    set: createReadonlyMethod("set" /* SET */),1172                                                    delete: createReadonlyMethod("delete" /* DELETE */),1173                                                    clear: createReadonlyMethod("clear" /* CLEAR */),1174                                                    forEach: createForEach(true, false)1175                                                };1176                                                const mutableInstrumentations = {1177                                                    get(key) {1178                                                        return get$1(this, key);1179                                                    },1180                                                    get size() {1181                                                        return size(this);1182                                                    },1183                                                    has: has$1,1184                                                    add,1185                                                    set: set$1,1186                                                    delete: deleteEntry,1187                                                    clear,1188                                                    forEach: createForEach(false, false)1189                                                };1190                                        function createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers) {1191                                            if (!isObject(target)) {1192                                                {1193                                                    console.warn(`value cannot be made reactive: ${String(target)}`);1194                                                }1195                                                return target;1196                                            }1197                                            // target is already a Proxy, return it.1198                                            // exception: calling readonly() on a reactive object1199                                            if (target["__v_raw" /* RAW */] &&1200                                                !(isReadonly && target["__v_isReactive" /* IS_REACTIVE */])) {1201                                                return target;1202                                            }1203                                            // target already has corresponding Proxy1204                                            const proxyMap = isReadonly ? readonlyMap : reactiveMap;1205                                            const existingProxy = proxyMap.get(target);1206                                            if (existingProxy) {1207                                                return existingProxy;1208                                            }1209                                            // only a whitelist of value types can be observed.1210                                            const targetType = getTargetType(target);1211                                            if (targetType === 0 /* INVALID */) {1212                                                return target;1213                                            }1214                                            const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);1215                                            proxyMap.set(target, proxy);1216                                            return proxy;1217                                        }1218                                                function getTargetType(value) {1219                                                    return value["__v_skip" /* SKIP */] || !Object.isExtensible(value)1220                                                        ? 0 /* INVALID */1221                                                        : targetTypeMap(toRawType(value));1222                                                }1223                                                function targetTypeMap(rawType) {1224                                                    switch (rawType) {1225                                                        case 'Object':1226                                                        case 'Array':1227                                                            return 1 /* COMMON */;1228                                                        case 'Map':1229                                                        case 'Set':1230                                                        case 'WeakMap':1231                                                        case 'WeakSet':1232                                                            return 2 /* COLLECTION */;1233                                                        default:1234                                                            return 0 /* INVALID */;1235                                                    }1236                                                }1237                                                const toTypeString = (value) => objectToString.call(value);1238                                                const toRawType = (value) => {1239                                                    return toTypeString(value).slice(8, -1);1240                                                };1241                                        const readonlyHandlers = {1242                                            get: readonlyGet,1243                                            set(target, key) {1244                                                {1245                                                    console.warn(`Set operation on key "${String(key)}" failed: target is readonly.`, target);1246                                                }1247                                                return true;1248                                            },1249                                            deleteProperty(target, key) {1250                                                {1251                                                    console.warn(`Delete operation on key "${String(key)}" failed: target is readonly.`, target);1252                                                }1253                                                return true;1254                                            }1255                                        };1256                                const publicPropertiesMap = extend(Object.create(null), {1257                                    $: i => i,1258                                    $el: i => i.vnode.el,1259                                    $data: i => i.data,1260                                    $props: i => ( shallowReadonly(i.props) ),1261                                    $attrs: i => ( shallowReadonly(i.attrs) ),1262                                    $slots: i => ( shallowReadonly(i.slots) ),1263                                    $refs: i => ( shallowReadonly(i.refs) ),1264                                    $parent: i => i.parent && i.parent.proxy,1265                                    $root: i => i.root && i.root.proxy,1266                                    $emit: i => i.emit,1267                                    $options: i => ( resolveMergedOptions(i) ),1268                                    $forceUpdate: i => () => queueJob(i.update),1269                                    $nextTick: () => nextTick,1270                                    $watch: i => ( instanceWatch.bind(i) )1271                                });1272                                const PublicInstanceProxyHandlers = {1273                                    get({ _: instance }, key) {1274                                        const { ctx, setupState, data, props, accessCache, type, appContext } = instance;1275                                        // let @vue/reactivity know it should never observe Vue public instances.1276                                        if (key === "__v_skip" /* SKIP */) {1277                                            return true;1278                                        }1279                                        // data / props / ctx1280                                        // This getter gets called for every property access on the render context1281                                        // during render and is a major hotspot. The most expensive part of this1282                                        // is the multiple hasOwn() calls. It's much faster to do a simple property1283                                        // access on a plain object, so we use an accessCache object (with null1284                                        // prototype) to memoize what access type a key corresponds to.1285                                        let normalizedProps;1286                                        if (key[0] !== '$') {1287                                            const n = accessCache[key];1288                                            if (n !== undefined) {1289                                                switch (n) {1290                                                    case 0 /* SETUP */:1291                                                        return setupState[key];1292                                                    case 1 /* DATA */:1293                                                        return data[key];1294                                                    case 3 /* CONTEXT */:1295                                                        return ctx[key];1296                                                    case 2 /* PROPS */:1297                                                        return props[key];1298                                                    // default: just fallthrough1299                                                }1300                                            }1301                                            else if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {1302                                                accessCache[key] = 0 /* SETUP */;1303                                                return setupState[key];1304                                            }1305                                            else if (data !== EMPTY_OBJ && hasOwn(data, key)) {1306                                                accessCache[key] = 1 /* DATA */;1307                                                return data[key];1308                                            }1309                                            else if (1310                                            // only cache other properties when instance has declared (thus stable)1311                                            // props1312                                            (normalizedProps = instance.propsOptions[0]) &&1313                                                hasOwn(normalizedProps, key)) {1314                                                accessCache[key] = 2 /* PROPS */;1315                                                return props[key];1316                                            }1317                                            else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {1318                                                accessCache[key] = 3 /* CONTEXT */;1319                                                return ctx[key];1320                                            }1321                                            else if ( !isInBeforeCreate) {1322                                                accessCache[key] = 4 /* OTHER */;1323                                            }1324                                        }1325                                        const publicGetter = publicPropertiesMap[key];1326                                        let cssModule, globalProperties;1327                                        // public $xxx properties1328                                        if (publicGetter) {1329                                            if (key === '$attrs') {1330                                                track(instance, "get" /* GET */, key);1331                                                markAttrsAccessed();1332                                            }1333                                            return publicGetter(instance);1334                                        }1335                                        else if (1336                                        // css module (injected by vue-loader)1337                                        (cssModule = type.__cssModules) &&1338                                            (cssModule = cssModule[key])) {1339                                            return cssModule;1340                                        }1341                                        else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {1342                                            // user may set custom properties to `this` that start with `$`1343                                            accessCache[key] = 3 /* CONTEXT */;1344                                            return ctx[key];1345                                        }1346                                        else if (1347                                        // global properties1348                                        ((globalProperties = appContext.config.globalProperties),1349                                            hasOwn(globalProperties, key))) {1350                                            return globalProperties[key];1351                                        }1352                                        else if (1353                                            currentRenderingInstance &&1354                                            (!isString(key) ||1355                                                // #1091 avoid internal isRef/isVNode checks on component instance leading1356                                                // to infinite warning loop1357                                                key.indexOf('__v') !== 0)) {1358                                            if (data !== EMPTY_OBJ &&1359                                                (key[0] === '$' || key[0] === '_') &&1360                                                hasOwn(data, key)) {1361                                                warn(`Property ${JSON.stringify(key)} must be accessed via $data because it starts with a reserved ` +1362                                                    `character ("$" or "_") and is not proxied on the render context.`);1363                                            }1364                                            else {1365                                                warn(`Property ${JSON.stringify(key)} was accessed during render ` +1366                                                    `but is not defined on instance.`);1367                                            }1368                                        }1369                                    },1370                                    set({ _: instance }, key, value) {1371                                        const { data, setupState, ctx } = instance;1372                                        if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {1373                                            setupState[key] = value;1374                                        }1375                                        else if (data !== EMPTY_OBJ && hasOwn(data, key)) {1376                                            data[key] = value;1377                                        }1378                                        else if (key in instance.props) {1379                                            1380                                                warn(`Attempting to mutate prop "${key}". Props are readonly.`, instance);1381                                            return false;1382                                        }1383                                        if (key[0] === '$' && key.slice(1) in instance) {1384                                            1385                                                warn(`Attempting to mutate public property "${key}". ` +1386                                                    `Properties starting with $ are reserved and readonly.`, instance);1387                                            return false;1388                                        }1389                                        else {1390                                            if ( key in instance.appContext.config.globalProperties) {1391                                                Object.defineProperty(ctx, key, {1392                                                    enumerable: true,1393                                                    configurable: true,1394                                                    value1395                                                });1396                                            }1397                                            else {1398                                                ctx[key] = value;1399                                            }1400                                        }1401                                        return true;1402                                    },1403                                    has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {1404                                        let normalizedProps;1405                                        return (accessCache[key] !== undefined ||1406                                            (data !== EMPTY_OBJ && hasOwn(data, key)) ||1407                                            (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) ||1408                                            ((normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key)) ||1409                                            hasOwn(ctx, key) ||1410                                            hasOwn(publicPropertiesMap, key) ||1411                                            hasOwn(appContext.config.globalProperties, key));1412                                    }1413                                };1414                                PublicInstanceProxyHandlers.ownKeys = (target) => {1415                                    warn(`Avoid app logic that relies on enumerating keys on a component instance. ` +1416                                        `The keys will be empty in production mode to avoid performance overhead.`);1417                                    return Reflect.ownKeys(target);1418                                };1419                                const RuntimeCompiledPublicInstanceProxyHandlers = extend({}, PublicInstanceProxyHandlers, {1420                                    get(target, key) {1421                                        // fast path for unscopables when using `with` block1422                                        if (key === Symbol.unscopables) {1423                                            return;1424                                        }1425                                        return PublicInstanceProxyHandlers.get(target, key, target);1426                                    },1427                                    has(_, key) {1428                                        const has = key[0] !== '_' && !isGloballyWhitelisted(key);1429                                        if ( !has && PublicInstanceProxyHandlers.has(_, key)) {1430                                            warn(`Property ${JSON.stringify(key)} should not start with _ which is a reserved prefix for Vue internals.`);1431                                        }1432                                        return has;1433                                    }1434                                });1435                            function proxyRefs(objectWithRefs) {1436                                return isReactive(objectWithRefs)1437                                    ? objectWithRefs1438                                    : new Proxy(objectWithRefs, shallowUnwrapHandlers);1439                            }1440                                function unref(ref) {1441                                    return isRef(ref) ? ref.value : ref;1442                                }1443                                const shallowUnwrapHandlers = {1444                                    get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),1445                                    set: (target, key, value, receiver) => {1446                                        const oldValue = target[key];1447                                        if (isRef(oldValue) && !isRef(value)) {1448                                            oldValue.value = value;1449                                            return true;1450                                        }1451                                        else {1452                                            return Reflect.set(target, key, value, receiver);1453                                        }1454                                    }1455                                };1456                            function toRaw(observed) {1457                                return ((observed && toRaw(observed["__v_raw" /* RAW */])) || observed);1458                            }1459                            // dev only1460                            function exposeSetupStateOnRenderContext(instance) {1461                                const { ctx, setupState } = instance;1462                                Object.keys(toRaw(setupState)).forEach(key => {1463                                    if (key[0] === '$' || key[0] === '_') {1464                                        warn(`setup() return property ${JSON.stringify(key)} should not start with "$" or "_" ` +1465                                            `which are reserved prefixes for Vue internals.`);1466                                        return;1467                                    }1468                                    Object.defineProperty(ctx, key, {1469                                        enumerable: true,1470                                        configurable: true,1471                                        get: () => setupState[key],1472                                        set: NOOP1473                                    });1474                                });...note.js
Source:note.js  
...2226            instance.devtoolsRawSetupState = setupResult;2227        }2228        instance.setupState = proxyRefs(setupResult);2229        {2230            exposeSetupStateOnRenderContext(instance);2231        }2232    }2233    else if ( setupResult !== undefined) {2234        warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);2235    }2236    finishComponentSetup(instance);2237}2238function proxyRefs(objectWithRefs) {2239    return isReactive(objectWithRefs)2240        ? objectWithRefs2241        : new Proxy(objectWithRefs, shallowUnwrapHandlers);2242}2243function exposePropsOnRenderContext(instance) {2244    const { ctx, propsOptions: [propsOptions] } = instance;...setup.js
Source:setup.js  
...243            instance.devtoolsRawSetupState = setupResult;244        }245        instance.setupState = proxyRefs(setupResult);246        {247            exposeSetupStateOnRenderContext(instance);248        }249    }250    else if ( setupResult !== undefined) {251        warn(`setup() should return an object. Received: ${setupResult === null ? 'null' : typeof setupResult}`);252    }253    finishComponentSetup(instance);254}255        function proxyRefs(objectWithRefs) {256            return isReactive(objectWithRefs)257                ? objectWithRefs258                : new Proxy(objectWithRefs, shallowUnwrapHandlers);259        }260        const shallowUnwrapHandlers = {261            get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),262            set: (target, key, value, receiver) => {263                const oldValue = target[key];264                if (isRef(oldValue) && !isRef(value)) {265                    oldValue.value = value;266                    return true;267                }268                else {269                    return Reflect.set(target, key, value, receiver);270                }271            }272        };273        // dev only274        function exposeSetupStateOnRenderContext(instance) {275            const { ctx, setupState } = instance;276            Object.keys(toRaw(setupState)).forEach(key => {277                if (key[0] === '$' || key[0] === '_') {278                    warn(`setup() return property ${JSON.stringify(key)} should not start with "$" or "_" ` +279                        `which are reserved prefixes for Vue internals.`);280                    return;281                }282                Object.defineProperty(ctx, key, {283                    enumerable: true,284                    configurable: true,285                    get: () => setupState[key],286                    set: NOOP287                });288            });...Vue2.0.js
Source:Vue2.0.js  
...12/**13 * @param setupState14 * @param {object} context15 */16function exposeSetupStateOnRenderContext(setupState,17                                         context) {18    for (let key of Reflect.ownKeys(setupState)) {19        Reflect.defineProperty(context,20                               key,21                               {22                                   enumerable: false, configurable: false,23                                   get                            : () => setupState[key], set: NOOP,24                               });25    }26}27/**28 * @param {any[]} AST29 */30function exposeOnRenderNode(AST) {31    return () => AST.map((/** @type {{ type: any; value: any; }} */32                          child) => new Function(`with(this){return ${h(child)}}`).call({33                                                                                            _v_,34                                                                                            _t_,35                                                                                            _c_,36                                                                                        }),);37}38const initState = Object.assign;39function mount(properties,40               children) {41    properties.append(...children);42    return properties;43}44class Vue {45    static reactive = reactive;46    static ref = toRef;47    static watch = watcher;48    isVue = true;49    V_ID = VUE_UID++;50    #component = {};51    isMound = false;52    /**53     * @param {{}} config54     */55    constructor(config) {56        this.#component = config;57    }58    static createApp(config) {59        return new Vue(config)60    }61    $emit([message, payload]) {62        switch (message) {63            case "ref": {64                Reflect.set(this,65                            `$${payload.key}`,66                            payload.elm,67                            this);68            }69                break;70        }71    }72    /**73     * @param {any} containerOrSelector74     */75    mount(containerOrSelector) {76        const container = normalizeContainer(containerOrSelector);77        if (!container) return;78        const {79            template = container.innerHTML, setup = emptyFunction, data = emptyFunction,80            methods = emptyObject, created = emptyFunction, mounted = emptyFunction,81        } = this.#component;82        container.innerHTML = ``;83        const vm = {};84        initState(vm,85                  methods);86        initState(vm,87                  setup(this));88        initState(vm,89                  data?.() ?? data)90        exposeSetupStateOnRenderContext(vm,91                                        this,);92        created.call(vm);93        const parser = new Parser();94        parser.init(template);95        const AST = parser.ChildrenLiteral();96        const h = exposeOnRenderNode(AST);97        let environment = h();98        compileChild(environment,99                     [this]);100        /**101         *102         * @type {Node[]}103         */104        const c = environment.map(render);...Using AI Code Generation
1const playwright = require('playwright');2(async () => {3  const browser = await playwright.chromium.launch();4  const context = await browser.newContext();5  const page = await context.newPage();6  await page.exposeSetupStateOnRenderContext();7  await page.screenshot({ path: `example.png` });8  await browser.close();9})();Using AI Code Generation
1const { exposeSetupStateOnRenderContext } = require('playwright/lib/server/browserContext');2const { chromium } = require('playwright');3(async () => {4    const browser = await chromium.launch();5    const context = await browser.newContext();6    exposeSetupStateOnRenderContext(context);7    const page = await context.newPage();8    await page.screenshot({ path: `example.png` });9    await browser.close();10})();11const { test, expect } = require('@playwright/test');12test('should expose setup state on render context', async ({ page }) => {13    await page.screenshot({ path: `example.png` });14    expect(page.context().setupState).toBeTruthy();15});16module.exports = {17};18      6 | test('should expose setup state on render context', async ({ page }) => {19    > 8 |     await page.screenshot({ path: `example.png` });20      9 |     expect(page.context().setupState).toBeTruthy();21     10 | });22      at Object.<anonymous> (test.spec.js:8:12)Using AI Code Generation
1const { exposeSetupStateOnRenderContext } = require('playwright/lib/server/browserContext');2const { chromium } = require('playwright');3const context = await chromium.launch().newContext();4exposeSetupStateOnRenderContext(context);5context.setupState = {6};7const { chromium } = require('playwright');8const { test, expect } = require('@playwright/test');9test('setup state', async ({ page }) => {10  const name = await page.evaluate(() => {11    return window.context.setupState.name;12  });13  expect(name).toBe('John Doe');14});Using AI Code Generation
1const { exposeSetupStateOnRenderContext } = require('playwright/lib/server/browserContext');2const { chromium } = require('playwright');3const path = require('path');4const fs = require('fs');5(async () => {6  const browser = await chromium.launch();7  const context = await browser.newContext();8  const page = await context.newPage();9  exposeSetupStateOnRenderContext(context);10  await page.screenshot({ path: 'example.png' });11  await browser.close();12})();13const { exposeSetupStateOnRenderContext } = require('playwright/lib/server/browserContext');14const { chromium } = require('playwright');15const path = require('path');16const fs = require('fs');17module.exports = {18  use: {19    viewport: { width: 1280, height: 720 },20  },21    {22      use: {23        launchOptions: {24        },25      },26    },27};28const { exposeSetupStateOnRenderContext } = require('playwright/lib/server/browserContext');29const { chromium } = require('playwright');30const path = require('path');31const fs = require('fs');32describe('Playwright Test', () => {33  it('should work', async ({ page }) => {34    await page.screenshot({ path: 'example.png' });35  });36});37Q: What are the steps to reproduce the issue? (If possible, please attach a simple script that reproduces the issue)Using AI Code Generation
1const playwright = require('playwright/lib/server/playwright');2playwright.exposeSetupStateOnRenderContext();3const playwright = require('playwright/lib/server/playwright');4playwright.exposeSetupStateOnRenderContext();5const playwright = require('playwright/lib/server/playwright');6playwright.exposeSetupStateOnRenderContext();7const playwright = require('playwright/lib/server/playwright');8playwright.exposeSetupStateOnRenderContext();9const playwright = require('playwright/lib/server/playwright');10playwright.exposeSetupStateOnRenderContext();11const playwright = require('playwright/lib/server/playwright');12playwright.exposeSetupStateOnRenderContext();13const playwright = require('playwright/lib/server/playwright');14playwright.exposeSetupStateOnRenderContext();15const playwright = require('playwright/lib/server/playwright');16playwright.exposeSetupStateOnRenderContext();17const playwright = require('playwright/lib/server/playwright');18playwright.exposeSetupStateOnRenderContext();19const playwright = require('playwright/lib/server/playwright');20playwright.exposeSetupStateOnRenderContext();21const playwright = require('playwright/lib/server/playwright');22playwright.exposeSetupStateOnRenderContext();23const playwright = require('playwright/libUsing AI Code Generation
1const { exposeSetupStateOnRenderContext } = require('playwright/lib/server/browserContext');2const { test, expect } = require('@playwright/test');3test('test', async ({ page }) => {4  await page.waitForTimeout(5000);5  await exposeSetupStateOnRenderContext(page, { hello: 'world' });6  const result = await page.evaluate(() => window.hello);7  expect(result).toBe('world');8});9const { exposeSetupStateOnRenderContext } = require('playwright/lib/server/browserContext');10const { test, expect } = require('@playwright/test');11test('test', async ({ page }) => {12  await page.waitForTimeout(5000);13  await exposeSetupStateOnRenderContext(page, { hello: 'world' });14  const result = await page.evaluate(() => window.hello);15  expect(result).toBe('world');16});17const { test, expect } = require('@playwright/test');18test('test', async ({ page }) => {19  await page.waitForTimeout(5000);20  await exposeSetupStateOnRenderContext(page, { hello: 'world' });21  const result = await page.evaluate(() => window.hello);22  expect(result).toBe('world');23});24const { test, expect } = require('@playwright/test');25test('test', async ({ page }) => {26  await page.waitForTimeout(5000);27  await exposeSetupStateOnRenderContext(page, { hello: 'world' });28  const result = await page.evaluate(() => window.hello);29  expect(result).toBe('world');30});Using AI Code Generation
1import { exposeSetupStateOnRenderContext } from 'playwright/lib/internal';2const { test } = require('@playwright/test');3test.beforeEach(async ({ page }) => {4});5test('exposeSetupStateOnRenderContext', async ({ page }) => {6  const context = await page.context();7  exposeSetupStateOnRenderContext(context);8  await page.evaluate(() => {9    console.log('page: ', page);10  });11});12test('exposeSetupStateOnRenderContext', async ({ page }) => {13  await page.evaluate(() => {14    console.log('page: ', page);15  });16});Using AI Code Generation
1const { exposeSetupStateOnRenderContext } = require('@playwright/test/lib/server/kit');2const { setupState } = require('./setupState');3exposeSetupStateOnRenderContext(setupState);4const { exposeSetupStateOnRenderContext } = require('@playwright/test/lib/server/kit');5const { setupState } = require('./setupState');6exposeSetupStateOnRenderContext(setupState);7const { test, expect } = require('@playwright/test');8test('test', async ({ page }) => {9  const { setupState } = page.context();10  expect(setupState).toBe('setupState');11});12import { Test } from '@playwright/test';13declare global {14  const test: Test;15}16import { expect } from '@playwright/test';17test.beforeEach(({ page }) => {18  const { setupState } = page.context();19  test['setupState'] = setupState;20});21test('test', async ({ page }) => {22  const { setupState } = test;23  expect(setupState).toBe('setupState');24});Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('expose setup state on render context', async ({page}) => {3  await page.exposeSetupStateOnRenderContext({4  });5  const text = await page.evaluate(() => window.mySetupState);6  expect(text).toBe('Hello');7});8const { PlaywrightTestConfig } = require('@playwright/test');9const config = {10  use: {11  },12};13module.exports = config;14const { test, expect } = require('@playwright/test');15test.use({16});17test('expose setup state on render context', async ({page}) => {18  await page.exposeSetupStateOnRenderContext({19  });20  const text = await page.evaluate(() => window.mySetupState);21  expect(text).toBe('Hello');22});23const { test, expect } = require('@playwright/test');24test('expose setup state on render context', async ({page}) => {25  await page.exposeSetupStateOnRenderContext({26  });27  const text = await page.evaluate(() => window.mySetupState);28  expect(text).toBe('Hello');29});30const { test, expect } = require('@playwright/test');31test('expose setup state on render contextLambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
