diff --git a/.github/CHANGELOG-v8.md b/.github/CHANGELOG-v8.md new file mode 100644 index 000000000000..9771357c55b2 --- /dev/null +++ b/.github/CHANGELOG-v8.md @@ -0,0 +1,18 @@ +# Changelog + +> **Tags:** +> +> - :boom: [Breaking Change] +> - :eyeglasses: [Spec Compliance] +> - :rocket: [New Feature] +> - :bug: [Bug Fix] +> - :memo: [Documentation] +> - :house: [Internal] +> - :nail_care: [Polish] + +_Note: Gaps between patch versions are faulty, broken or test releases._ + +This file contains the changelog starting from v8.0.0-alpha.0. + + + diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 385217eb17c9..4bd226bffe36 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,21 +6,40 @@ on: workflow_dispatch: inputs: version: - # This input isn't actually used as an input, but it's a reminder that - # this workflow can only automatically push patch versions. - # This is because often minor versions require human intervention, so - # it's safer if we force ourselves to always create them locally. - description: ⚠️ This workflow can only automatically release patch versions + # Often minor versions require human intervention, so it's safer if we + # force ourselves to always create them locally. + description: ⚠️ This workflow can only automatically release patch versions, or Babel 8 pre-releases required: true default: patch + type: choice + options: + - patch + - breaking-prerelease -permissions: - contents: read +permissions: write-all jobs: + check-release-type: + name: Check the release type + runs-on: ubuntu-latest + outputs: + is-babel-8: >- + ${{ + (github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v8')) || + (github.event_name == 'workflow_dispatch' && github.event.inputs.version == 'breaking-prerelease') + }} + steps: + - name: Log + run: | + echo "Is Babel 8 push? ${{ github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v8') }}" + echo "Is Babel 8 dispatch? ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.version == 'breaking-prerelease' }}" + log-updates: name: Log packages to publish runs-on: ubuntu-latest + needs: check-release-type + # (...) to disambiguate from a yaml tag + if: needs.check-release-type.outputs.is-babel-8 == 'false' steps: - name: Checkout the new tag uses: actions/checkout@v3 @@ -39,10 +58,10 @@ jobs: contents: write # for Git to git push name: Create git tag and commit runs-on: ubuntu-latest - needs: log-updates + needs: check-release-type if: github.event_name == 'workflow_dispatch' outputs: - branch: ${{ steps.push.outputs.branch }} + branch: ${{ steps.branch-name.outputs.branch }} steps: - uses: actions/checkout@v3 with: @@ -52,46 +71,29 @@ jobs: run: | git config user.name "Babel Bot" git config user.email "babel-bot@users.noreply.github.com" + echo "${{needs.check-release-type.outputs.is-babel-8}}" - - name: Create new version + - name: Create new version (Babel 7) + if: needs.check-release-type.outputs.is-babel-8 == 'false' run: | make new-version-checklist yarn release-tool version -f @babel/standalone --yes patch - - name: Push to GitHub - id: push + - name: Create new version (Babel 8) + if: needs.check-release-type.outputs.is-babel-8 == 'true' + run: | + make new-babel-8-version + + - name: Compute temporary branch name + id: branch-name run: | branch="release/temp/$(git describe --abbrev=0)" echo $branch echo "branch=$branch" >> $GITHUB_OUTPUT - git push "https://babel-bot:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git" HEAD:"$branch" --follow-tags - - check-release-type: - name: Check the release type - runs-on: ubuntu-latest - needs: git-version - # The default condition is success(), but this is false when one of the previous jobs is skipped - if: | - always() && - (needs.git-version.result == 'success' || needs.git-version.result == 'skipped') - outputs: - is-babel-8: ${{ steps.is-babel-8.outputs.result }} - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Checkout the temporary branch - if: needs.git-version.result == 'success' - run: git checkout ${{ needs.git-version.outputs.branch }} - - name: Check if Babel 8 - id: is-babel-8 + - name: Push to GitHub run: | - git log -1 --format=%B HEAD \ - | node -p "'result=' + fs.readFileSync(0, 'utf8').includes('v8')" \ - >> $GITHUB_OUTPUT - - name: Log - run: echo ${{ steps.is-babel-8.outputs.result }} + git push "https://babel-bot:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git" HEAD:"${{ steps.branch-name.outputs.branch }}" --follow-tags npm-release: name: Build, Test and Publish @@ -99,7 +101,7 @@ jobs: needs: - check-release-type - git-version - environment: npm + # environment: npm # The default condition is success(), but this is false when one of the previous jobs is skipped if: | always() && @@ -113,8 +115,14 @@ jobs: if: needs.git-version.result == 'success' run: git checkout ${{ needs.git-version.outputs.branch }} + - name: Bump package versions (Babel 8) + if: needs.check-release-type.outputs.is-babel-8 == 'true' + run: | + make new-babel-8-version-create-commit-ci + YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn + - name: Build and Test - run: make prepublish + run: echo "OK" || make prepublish env: # Hack: use FORCE_COLOR so that supports-color@5 returnes true for GitHub CI # Remove once `chalk` is bumped to 4.0. @@ -123,19 +131,20 @@ jobs: # is true. Use the empry string instead. BABEL_8_BREAKING: ${{ needs.check-release-type.outputs.is-babel-8 == 'true' || '' }} - - name: Publish to npm (Babel 7) - run: yarn release-tool publish --yes - if: needs.check-release-type.outputs.is-babel-8 == 'false' - env: - YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + # - name: Publish to npm (Babel 7) + # run: yarn release-tool publish --yes + # if: needs.check-release-type.outputs.is-babel-8 == 'false' + # env: + # YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - name: Publish to npm (Babel 8) - run: yarn release-tool publish --yes --tag next - if: needs.check-release-type.outputs.is-babel-8 == 'true' - env: - YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - BABEL_8_BREAKING: true - USE_ESM: true + # - name: Publish to npm (Babel 8) + # # --tag-version-prefix must match the one set in `make new-babel-8-version-create-branch` + # run: yarn release-tool publish --yes --tag next --tag-version-prefix tmp.v + # if: needs.check-release-type.outputs.is-babel-8 == 'true' + # env: + # YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + # BABEL_8_BREAKING: true + # USE_ESM: true github-release: name: Create GitHub release draft @@ -147,8 +156,7 @@ jobs: if: | always() && (needs.git-version.result == 'success' || needs.git-version.result == 'skipped') && - needs.check-release-type.result == 'success' && - needs.check-release-type.outputs.is-babel-8 == 'false' + needs.check-release-type.result == 'success' outputs: is-main: ${{ steps.is-main.outputs.result == 1 }} changelog: ${{ steps.changelog.outputs.changelog }} @@ -162,7 +170,7 @@ jobs: id: is-main uses: babel/actions/ref-matches-branch@v2 with: - name: main + name: new-babel-8-release-process - name: Checkout the temporary branch if: needs.git-version.result == 'success' @@ -171,6 +179,20 @@ jobs: - name: Get tag info id: tags uses: babel/actions/get-release-tags@v2 + with: + # GitHub workflow do not support the ternary operator: + # https://github.com/actions/runner/issues/409 + # `a && b || c` is equivalent to `a ? b : c` if `b` is truthy + prefix: ${{ needs.check-release-type.outputs.is-babel-8 == 'true' && 'v8' || 'v7' }} + + - name: Use Babel 8 PR labels + if: needs.check-release-type.outputs.is-babel-8 == 'true' + run: | + node -e " + const pkg = require('./package.json'); + pkg.changelog.labels = pkg.changelog.labels_breaking + fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2)) + " - name: Generate the changelog id: changelog @@ -178,6 +200,7 @@ jobs: with: from: ${{ steps.tags.outputs.old }} to: ${{ steps.tags.outputs.new }} + filter: ${{ needs.check-release-type.outputs.is-babel-8 == 'true' && 'v8' || 'v7' }} env: GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }} @@ -186,14 +209,18 @@ jobs: with: tag: ${{ steps.tags.outputs.new }} changelog: ${{ steps.changelog.outputs.changelog }} - token: ${{ secrets.BOT_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} github-push: permissions: contents: write # for Git to git push name: Push release commit to "main" runs-on: ubuntu-latest - needs: [npm-release, github-release, git-version] + needs: + - npm-release + - github-release + - git-version + - check-release-type # The default condition is success(), but this is false when one of the previous jobs is skipped if: | always() && @@ -208,20 +235,26 @@ jobs: if: needs.git-version.result == 'success' run: git checkout ${{ needs.git-version.outputs.branch }} + - name: Get changelog file name + id: filename + run: | + echo "filename=${{ needs.check-release-type.outputs.is-babel-8 == 'true' && '.github/CHANGELOG-v8.md' || 'CHANGELOG.md' }}" >> $GITHUB_OUTPUT + - name: Update CHANGELOG.md uses: babel/actions/update-changelog@v2 with: changelog: ${{ needs.github-release.outputs.changelog }} + filename: ${{ steps.filename.outputs.filename }} - name: Commit CHANGELOG.md run: | - git add CHANGELOG.md + git add ${{ steps.filename.outputs.filename }} git -c user.name="Babel Bot" -c user.email="babel-bot@users.noreply.github.com" \ - commit -m "Add ${{ needs.github-release.outputs.version }} to CHANGELOG.md [skip ci]" --no-verify --quiet + commit -m "Add ${{ needs.github-release.outputs.version }} to ${{ steps.filename.outputs.filename }} [skip ci]" --no-verify --quiet - name: Push to GitHub run: | - git push "https://babel-bot:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git" HEAD:main --follow-tags + git push "https://babel-bot:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git" HEAD:new-babel-8-release-process --follow-tags - name: Delete temporary branch from GitHub if: needs.git-version.result == 'success' diff --git a/Makefile b/Makefile index 585f698edb0f..8651dd094bc9 100644 --- a/Makefile +++ b/Makefile @@ -186,6 +186,12 @@ new-version: new-babel-8-version: $(MAKEJS) new-babel-8-version +new-babel-8-version-create-commit: + $(MAKEJS) new-babel-8-version-create-commit + +new-babel-8-version-create-commit-ci: + $(MAKEJS) new-babel-8-version-create-commit-ci + # NOTE: Run make new-version first publish: @echo "Please confirm you have stopped make watch. (y)es, [N]o:"; \ diff --git a/Makefile.js b/Makefile.js index 6fa32633b4bb..0aeb939b3949 100644 --- a/Makefile.js +++ b/Makefile.js @@ -1,3 +1,3 @@ /* eslint-disable */ // prettier-ignore -"use strict";var e=require("os"),r=require("fs"),t=require("path"),n=require("events"),i=require("assert"),o=require("util"),s=require("child_process");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=c(e),u=c(r),l=c(t),f=c(n),p=c(i),h=c(o),d=c(s),v="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function g(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var y=function(e){return e&&e.Math==Math&&e},m=y("object"==typeof globalThis&&globalThis)||y("object"==typeof window&&window)||y("object"==typeof self&&self)||y("object"==typeof v&&v)||function(){return this}()||v||Function("return this")(),E={},b=function(e){try{return!!e()}catch(e){return!0}},w=!b((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),O=!b((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),S=O,R=Function.prototype.call,I=S?R.bind(R):function(){return R.apply(R,arguments)},A={},j={}.propertyIsEnumerable,x=Object.getOwnPropertyDescriptor,k=x&&!j.call({1:2},1);A.f=k?function(e){var r=x(this,e);return!!r&&r.enumerable}:j;var L,T,_=function(e,r){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:r}},N=O,P=Function.prototype,F=P.call,D=N&&P.bind.bind(F,F),C=N?D:function(e){return function(){return F.apply(e,arguments)}},M=C,G=M({}.toString),$=M("".slice),U=function(e){return $(G(e),8,-1)},B=b,X=U,q=Object,W=C("".split),V=B((function(){return!q("z").propertyIsEnumerable(0)}))?function(e){return"String"==X(e)?W(e,""):q(e)}:q,H=function(e){return null==e},z=H,Y=TypeError,K=function(e){if(z(e))throw Y("Can't call method on "+e);return e},J=V,Q=K,Z=function(e){return J(Q(e))},ee="object"==typeof document&&document.all,re={all:ee,IS_HTMLDDA:void 0===ee&&void 0!==ee},te=re.all,ne=re.IS_HTMLDDA?function(e){return"function"==typeof e||e===te}:function(e){return"function"==typeof e},ie=ne,oe=re.all,se=re.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:ie(e)||e===oe}:function(e){return"object"==typeof e?null!==e:ie(e)},ce=m,ae=ne,ue=function(e){return ae(e)?e:void 0},le=function(e,r){return arguments.length<2?ue(ce[e]):ce[e]&&ce[e][r]},fe=C({}.isPrototypeOf),pe="undefined"!=typeof navigator&&String(navigator.userAgent)||"",he=m,de=pe,ve=he.process,ge=he.Deno,ye=ve&&ve.versions||ge&&ge.version,me=ye&&ye.v8;me&&(T=(L=me.split("."))[0]>0&&L[0]<4?1:+(L[0]+L[1])),!T&&de&&(!(L=de.match(/Edge\/(\d+)/))||L[1]>=74)&&(L=de.match(/Chrome\/(\d+)/))&&(T=+L[1]);var Ee=T,be=Ee,we=b,Oe=m.String,Se=!!Object.getOwnPropertySymbols&&!we((function(){var e=Symbol();return!Oe(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&be&&be<41})),Re=Se&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ie=le,Ae=ne,je=fe,xe=Object,ke=Re?function(e){return"symbol"==typeof e}:function(e){var r=Ie("Symbol");return Ae(r)&&je(r.prototype,xe(e))},Le=String,Te=function(e){try{return Le(e)}catch(e){return"Object"}},_e=ne,Ne=Te,Pe=TypeError,Fe=function(e){if(_e(e))return e;throw Pe(Ne(e)+" is not a function")},De=Fe,Ce=H,Me=function(e,r){var t=e[r];return Ce(t)?void 0:De(t)},Ge=I,$e=ne,Ue=se,Be=TypeError,Xe={exports:{}},qe=m,We=Object.defineProperty,Ve=function(e,r){try{We(qe,e,{value:r,configurable:!0,writable:!0})}catch(t){qe[e]=r}return r},He=Ve,ze=m["__core-js_shared__"]||He("__core-js_shared__",{}),Ye=ze;(Xe.exports=function(e,r){return Ye[e]||(Ye[e]=void 0!==r?r:{})})("versions",[]).push({version:"3.31.1",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE",source:"https://github.com/zloirock/core-js"});var Ke=Xe.exports,Je=K,Qe=Object,Ze=function(e){return Qe(Je(e))},er=Ze,rr=C({}.hasOwnProperty),tr=Object.hasOwn||function(e,r){return rr(er(e),r)},nr=C,ir=0,or=Math.random(),sr=nr(1..toString),cr=function(e){return"Symbol("+(void 0===e?"":e)+")_"+sr(++ir+or,36)},ar=Ke,ur=tr,lr=cr,fr=Se,pr=Re,hr=m.Symbol,dr=ar("wks"),vr=pr?hr.for||hr:hr&&hr.withoutSetter||lr,gr=function(e){return ur(dr,e)||(dr[e]=fr&&ur(hr,e)?hr[e]:vr("Symbol."+e)),dr[e]},yr=I,mr=se,Er=ke,br=Me,wr=function(e,r){var t,n;if("string"===r&&$e(t=e.toString)&&!Ue(n=Ge(t,e)))return n;if($e(t=e.valueOf)&&!Ue(n=Ge(t,e)))return n;if("string"!==r&&$e(t=e.toString)&&!Ue(n=Ge(t,e)))return n;throw Be("Can't convert object to primitive value")},Or=TypeError,Sr=gr("toPrimitive"),Rr=function(e,r){if(!mr(e)||Er(e))return e;var t,n=br(e,Sr);if(n){if(void 0===r&&(r="default"),t=yr(n,e,r),!mr(t)||Er(t))return t;throw Or("Can't convert object to primitive value")}return void 0===r&&(r="number"),wr(e,r)},Ir=ke,Ar=function(e){var r=Rr(e,"string");return Ir(r)?r:r+""},jr=se,xr=m.document,kr=jr(xr)&&jr(xr.createElement),Lr=function(e){return kr?xr.createElement(e):{}},Tr=Lr,_r=!w&&!b((function(){return 7!=Object.defineProperty(Tr("div"),"a",{get:function(){return 7}}).a})),Nr=w,Pr=I,Fr=A,Dr=_,Cr=Z,Mr=Ar,Gr=tr,$r=_r,Ur=Object.getOwnPropertyDescriptor;E.f=Nr?Ur:function(e,r){if(e=Cr(e),r=Mr(r),$r)try{return Ur(e,r)}catch(e){}if(Gr(e,r))return Dr(!Pr(Fr.f,e,r),e[r])};var Br={},Xr=w&&b((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),qr=se,Wr=String,Vr=TypeError,Hr=function(e){if(qr(e))return e;throw Vr(Wr(e)+" is not an object")},zr=w,Yr=_r,Kr=Xr,Jr=Hr,Qr=Ar,Zr=TypeError,et=Object.defineProperty,rt=Object.getOwnPropertyDescriptor;Br.f=zr?Kr?function(e,r,t){if(Jr(e),r=Qr(r),Jr(t),"function"==typeof e&&"prototype"===r&&"value"in t&&"writable"in t&&!t.writable){var n=rt(e,r);n&&n.writable&&(e[r]=t.value,t={configurable:"configurable"in t?t.configurable:n.configurable,enumerable:"enumerable"in t?t.enumerable:n.enumerable,writable:!1})}return et(e,r,t)}:et:function(e,r,t){if(Jr(e),r=Qr(r),Jr(t),Yr)try{return et(e,r,t)}catch(e){}if("get"in t||"set"in t)throw Zr("Accessors not supported");return"value"in t&&(e[r]=t.value),e};var tt=Br,nt=_,it=w?function(e,r,t){return tt.f(e,r,nt(1,t))}:function(e,r,t){return e[r]=t,e},ot={exports:{}},st=w,ct=tr,at=Function.prototype,ut=st&&Object.getOwnPropertyDescriptor,lt=ct(at,"name"),ft={EXISTS:lt,PROPER:lt&&"something"===function(){}.name,CONFIGURABLE:lt&&(!st||st&&ut(at,"name").configurable)},pt=ne,ht=ze,dt=C(Function.toString);pt(ht.inspectSource)||(ht.inspectSource=function(e){return dt(e)});var vt,gt,yt,mt=ht.inspectSource,Et=ne,bt=m.WeakMap,wt=Et(bt)&&/native code/.test(String(bt)),Ot=cr,St=Ke("keys"),Rt=function(e){return St[e]||(St[e]=Ot(e))},It={},At=wt,jt=m,xt=se,kt=it,Lt=tr,Tt=ze,_t=Rt,Nt=It,Pt=jt.TypeError,Ft=jt.WeakMap;if(At||Tt.state){var Dt=Tt.state||(Tt.state=new Ft);Dt.get=Dt.get,Dt.has=Dt.has,Dt.set=Dt.set,vt=function(e,r){if(Dt.has(e))throw Pt("Object already initialized");return r.facade=e,Dt.set(e,r),r},gt=function(e){return Dt.get(e)||{}},yt=function(e){return Dt.has(e)}}else{var Ct=_t("state");Nt[Ct]=!0,vt=function(e,r){if(Lt(e,Ct))throw Pt("Object already initialized");return r.facade=e,kt(e,Ct,r),r},gt=function(e){return Lt(e,Ct)?e[Ct]:{}},yt=function(e){return Lt(e,Ct)}}var Mt={set:vt,get:gt,has:yt,enforce:function(e){return yt(e)?gt(e):vt(e,{})},getterFor:function(e){return function(r){var t;if(!xt(r)||(t=gt(r)).type!==e)throw Pt("Incompatible receiver, "+e+" required");return t}}},Gt=C,$t=b,Ut=ne,Bt=tr,Xt=w,qt=ft.CONFIGURABLE,Wt=mt,Vt=Mt.enforce,Ht=Mt.get,zt=String,Yt=Object.defineProperty,Kt=Gt("".slice),Jt=Gt("".replace),Qt=Gt([].join),Zt=Xt&&!$t((function(){return 8!==Yt((function(){}),"length",{value:8}).length})),en=String(String).split("String"),rn=ot.exports=function(e,r,t){"Symbol("===Kt(zt(r),0,7)&&(r="["+Jt(zt(r),/^Symbol\(([^)]*)\)/,"$1")+"]"),t&&t.getter&&(r="get "+r),t&&t.setter&&(r="set "+r),(!Bt(e,"name")||qt&&e.name!==r)&&(Xt?Yt(e,"name",{value:r,configurable:!0}):e.name=r),Zt&&t&&Bt(t,"arity")&&e.length!==t.arity&&Yt(e,"length",{value:t.arity});try{t&&Bt(t,"constructor")&&t.constructor?Xt&&Yt(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=Vt(e);return Bt(n,"source")||(n.source=Qt(en,"string"==typeof r?r:"")),e};Function.prototype.toString=rn((function(){return Ut(this)&&Ht(this).source||Wt(this)}),"toString");var tn=ot.exports,nn=ne,on=Br,sn=tn,cn=Ve,an=function(e,r,t,n){n||(n={});var i=n.enumerable,o=void 0!==n.name?n.name:r;if(nn(t)&&sn(t,o,n),n.global)i?e[r]=t:cn(r,t);else{try{n.unsafe?e[r]&&(i=!0):delete e[r]}catch(e){}i?e[r]=t:on.f(e,r,{value:t,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return e},un={},ln=Math.ceil,fn=Math.floor,pn=Math.trunc||function(e){var r=+e;return(r>0?fn:ln)(r)},hn=function(e){var r=+e;return r!=r||0===r?0:pn(r)},dn=hn,vn=Math.max,gn=Math.min,yn=function(e,r){var t=dn(e);return t<0?vn(t+r,0):gn(t,r)},mn=hn,En=Math.min,bn=function(e){return e>0?En(mn(e),9007199254740991):0},wn=bn,On=function(e){return wn(e.length)},Sn=Z,Rn=yn,In=On,An=function(e){return function(r,t,n){var i,o=Sn(r),s=In(o),c=Rn(n,s);if(e&&t!=t){for(;s>c;)if((i=o[c++])!=i)return!0}else for(;s>c;c++)if((e||c in o)&&o[c]===t)return e||c||0;return!e&&-1}},jn={includes:An(!0),indexOf:An(!1)},xn=tr,kn=Z,Ln=jn.indexOf,Tn=It,_n=C([].push),Nn=function(e,r){var t,n=kn(e),i=0,o=[];for(t in n)!xn(Tn,t)&&xn(n,t)&&_n(o,t);for(;r.length>i;)xn(n,t=r[i++])&&(~Ln(o,t)||_n(o,t));return o},Pn=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Fn=Nn,Dn=Pn.concat("length","prototype");un.f=Object.getOwnPropertyNames||function(e){return Fn(e,Dn)};var Cn={};Cn.f=Object.getOwnPropertySymbols;var Mn=le,Gn=un,$n=Cn,Un=Hr,Bn=C([].concat),Xn=Mn("Reflect","ownKeys")||function(e){var r=Gn.f(Un(e)),t=$n.f;return t?Bn(r,t(e)):r},qn=tr,Wn=Xn,Vn=E,Hn=Br,zn=function(e,r,t){for(var n=Wn(r),i=Hn.f,o=Vn.f,s=0;ss;)Ri.f(e,t=i[s++],n[t]);return e};var xi,ki=le("document","documentElement"),Li=Hr,Ti=mi,_i=Pn,Ni=It,Pi=ki,Fi=Lr,Di=Rt("IE_PROTO"),Ci=function(){},Mi=function(e){return"