mirror of https://github.com/vuejs/core.git
chore: Merge branch 'vapor' into edison/fix/cacheSameExpr
This commit is contained in:
commit
fee67e5bc6
|
@ -984,7 +984,7 @@ export function compileScript(
|
||||||
ctx.s.prependLeft(
|
ctx.s.prependLeft(
|
||||||
startOffset,
|
startOffset,
|
||||||
`\n${genDefaultAs} /*@__PURE__*/${ctx.helper(
|
`\n${genDefaultAs} /*@__PURE__*/${ctx.helper(
|
||||||
vapor ? `defineVaporComponent` : `defineComponent`,
|
vapor && !ssr ? `defineVaporComponent` : `defineComponent`,
|
||||||
)}({${def}${runtimeOptions}\n ${
|
)}({${def}${runtimeOptions}\n ${
|
||||||
hasAwait ? `async ` : ``
|
hasAwait ? `async ` : ``
|
||||||
}setup(${args}) {\n${exposeCall}`,
|
}setup(${args}) {\n${exposeCall}`,
|
||||||
|
|
|
@ -63,6 +63,15 @@ export function render(_ctx) {
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`compiler: template ref transform > static ref (inline mode) 1`] = `
|
||||||
|
"
|
||||||
|
const _setTemplateRef = _createTemplateRefSetter()
|
||||||
|
const n0 = t0()
|
||||||
|
_setTemplateRef(n0, foo)
|
||||||
|
return n0
|
||||||
|
"
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`compiler: template ref transform > static ref 1`] = `
|
exports[`compiler: template ref transform > static ref 1`] = `
|
||||||
"import { createTemplateRefSetter as _createTemplateRefSetter, template as _template } from 'vue';
|
"import { createTemplateRefSetter as _createTemplateRefSetter, template as _template } from 'vue';
|
||||||
const t0 = _template("<div></div>", true)
|
const t0 = _template("<div></div>", true)
|
||||||
|
|
|
@ -128,6 +128,20 @@ export function render(_ctx) {
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`cache multiple access > optional chaining 1`] = `
|
||||||
|
"import { setProp as _setProp, renderEffect as _renderEffect, template as _template } from 'vue';
|
||||||
|
const t0 = _template("<div></div>", true)
|
||||||
|
|
||||||
|
export function render(_ctx) {
|
||||||
|
const n0 = t0()
|
||||||
|
_renderEffect(() => {
|
||||||
|
const _obj = _ctx.obj
|
||||||
|
_setProp(n0, "id", _obj?.foo + _obj?.bar)
|
||||||
|
})
|
||||||
|
return n0
|
||||||
|
}"
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`cache multiple access > repeated expression in expressions 1`] = `
|
exports[`cache multiple access > repeated expression in expressions 1`] = `
|
||||||
"import { setProp as _setProp, renderEffect as _renderEffect, template as _template } from 'vue';
|
"import { setProp as _setProp, renderEffect as _renderEffect, template as _template } from 'vue';
|
||||||
const t0 = _template("<div></div>")
|
const t0 = _template("<div></div>")
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { BindingTypes } from '@vue/compiler-dom'
|
||||||
import {
|
import {
|
||||||
DynamicFlag,
|
DynamicFlag,
|
||||||
type ForIRNode,
|
type ForIRNode,
|
||||||
|
@ -48,6 +49,16 @@ describe('compiler: template ref transform', () => {
|
||||||
expect(code).contains('_setTemplateRef(n0, "foo")')
|
expect(code).contains('_setTemplateRef(n0, "foo")')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('static ref (inline mode)', () => {
|
||||||
|
const { code } = compileWithTransformRef(`<div ref="foo" />`, {
|
||||||
|
inline: true,
|
||||||
|
bindingMetadata: { foo: BindingTypes.SETUP_REF },
|
||||||
|
})
|
||||||
|
expect(code).matchSnapshot()
|
||||||
|
// pass the actual ref
|
||||||
|
expect(code).contains('_setTemplateRef(n0, foo)')
|
||||||
|
})
|
||||||
|
|
||||||
test('dynamic ref', () => {
|
test('dynamic ref', () => {
|
||||||
const { ir, code } = compileWithTransformRef(`<div :ref="foo" />`)
|
const { ir, code } = compileWithTransformRef(`<div :ref="foo" />`)
|
||||||
|
|
||||||
|
|
|
@ -813,6 +813,13 @@ describe('cache multiple access', () => {
|
||||||
expect(code).contains('_setStyle(n0, {color: _color})')
|
expect(code).contains('_setStyle(n0, {color: _color})')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('optional chaining', () => {
|
||||||
|
const { code } = compileWithVBind(`<div :id="obj?.foo + obj?.bar"></div>`)
|
||||||
|
expect(code).matchSnapshot()
|
||||||
|
expect(code).contains('const _obj = _ctx.obj')
|
||||||
|
expect(code).contains('_setProp(n0, "id", _obj?.foo + _obj?.bar)')
|
||||||
|
})
|
||||||
|
|
||||||
test('not cache variable only used in property shorthand', () => {
|
test('not cache variable only used in property shorthand', () => {
|
||||||
const { code } = compileWithVBind(`
|
const { code } = compileWithVBind(`
|
||||||
<div :style="{color}" />
|
<div :style="{color}" />
|
||||||
|
|
|
@ -656,6 +656,7 @@ function extractMemberExpression(
|
||||||
case 'CallExpression': // foo[bar(baz)]
|
case 'CallExpression': // foo[bar(baz)]
|
||||||
return `${extractMemberExpression(exp.callee, onIdentifier)}(${exp.arguments.map(arg => extractMemberExpression(arg, onIdentifier)).join(', ')})`
|
return `${extractMemberExpression(exp.callee, onIdentifier)}(${exp.arguments.map(arg => extractMemberExpression(arg, onIdentifier)).join(', ')})`
|
||||||
case 'MemberExpression': // foo[bar.baz]
|
case 'MemberExpression': // foo[bar.baz]
|
||||||
|
case 'OptionalMemberExpression': // foo?.bar
|
||||||
const object = extractMemberExpression(exp.object, onIdentifier)
|
const object = extractMemberExpression(exp.object, onIdentifier)
|
||||||
const prop = exp.computed
|
const prop = exp.computed
|
||||||
? `[${extractMemberExpression(exp.property, onIdentifier)}]`
|
? `[${extractMemberExpression(exp.property, onIdentifier)}]`
|
||||||
|
|
|
@ -2,6 +2,7 @@ import { genExpression } from './expression'
|
||||||
import type { CodegenContext } from '../generate'
|
import type { CodegenContext } from '../generate'
|
||||||
import type { DeclareOldRefIRNode, SetTemplateRefIRNode } from '../ir'
|
import type { DeclareOldRefIRNode, SetTemplateRefIRNode } from '../ir'
|
||||||
import { type CodeFragment, NEWLINE, genCall } from './utils'
|
import { type CodeFragment, NEWLINE, genCall } from './utils'
|
||||||
|
import { BindingTypes, type SimpleExpressionNode } from '@vue/compiler-dom'
|
||||||
|
|
||||||
export const setTemplateRefIdent = `_setTemplateRef`
|
export const setTemplateRefIdent = `_setTemplateRef`
|
||||||
|
|
||||||
|
@ -15,7 +16,7 @@ export function genSetTemplateRef(
|
||||||
...genCall(
|
...genCall(
|
||||||
setTemplateRefIdent, // will be generated in root scope
|
setTemplateRefIdent, // will be generated in root scope
|
||||||
`n${oper.element}`,
|
`n${oper.element}`,
|
||||||
genExpression(oper.value, context),
|
genRefValue(oper.value, context),
|
||||||
oper.effect ? `r${oper.element}` : oper.refFor ? 'void 0' : undefined,
|
oper.effect ? `r${oper.element}` : oper.refFor ? 'void 0' : undefined,
|
||||||
oper.refFor && 'true',
|
oper.refFor && 'true',
|
||||||
),
|
),
|
||||||
|
@ -25,3 +26,20 @@ export function genSetTemplateRef(
|
||||||
export function genDeclareOldRef(oper: DeclareOldRefIRNode): CodeFragment[] {
|
export function genDeclareOldRef(oper: DeclareOldRefIRNode): CodeFragment[] {
|
||||||
return [NEWLINE, `let r${oper.id}`]
|
return [NEWLINE, `let r${oper.id}`]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function genRefValue(value: SimpleExpressionNode, context: CodegenContext) {
|
||||||
|
// in inline mode there is no setupState object, so we can't use string
|
||||||
|
// keys to set the ref. Instead, we need to transform it to pass the
|
||||||
|
// actual ref instead.
|
||||||
|
if (!__BROWSER__ && value && context.options.inline) {
|
||||||
|
const binding = context.options.bindingMetadata[value.content]
|
||||||
|
if (
|
||||||
|
binding === BindingTypes.SETUP_LET ||
|
||||||
|
binding === BindingTypes.SETUP_REF ||
|
||||||
|
binding === BindingTypes.SETUP_MAYBE_REF
|
||||||
|
) {
|
||||||
|
return [value.content]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return genExpression(value, context)
|
||||||
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ import {
|
||||||
isEmitListener,
|
isEmitListener,
|
||||||
onScopeDispose,
|
onScopeDispose,
|
||||||
renderSlot,
|
renderSlot,
|
||||||
|
shallowReactive,
|
||||||
shallowRef,
|
shallowRef,
|
||||||
simpleSetCurrentInstance,
|
simpleSetCurrentInstance,
|
||||||
} from '@vue/runtime-dom'
|
} from '@vue/runtime-dom'
|
||||||
|
@ -163,7 +164,8 @@ function createVDOMComponent(
|
||||||
|
|
||||||
// overwrite how the vdom instance handles props
|
// overwrite how the vdom instance handles props
|
||||||
vnode.vi = (instance: ComponentInternalInstance) => {
|
vnode.vi = (instance: ComponentInternalInstance) => {
|
||||||
instance.props = wrapper.props
|
// ensure props are shallow reactive to align with VDOM behavior.
|
||||||
|
instance.props = shallowReactive(wrapper.props)
|
||||||
|
|
||||||
const attrs = (instance.attrs = createInternalObject())
|
const attrs = (instance.attrs = createInternalObject())
|
||||||
for (const key in wrapper.attrs) {
|
for (const key in wrapper.attrs) {
|
||||||
|
|
|
@ -55,7 +55,7 @@ importers:
|
||||||
version: 5.0.4(rollup@4.44.0)
|
version: 5.0.4(rollup@4.44.0)
|
||||||
'@swc/core':
|
'@swc/core':
|
||||||
specifier: ^1.11.24
|
specifier: ^1.11.24
|
||||||
version: 1.12.3
|
version: 1.12.4
|
||||||
'@types/hash-sum':
|
'@types/hash-sum':
|
||||||
specifier: ^1.0.2
|
specifier: ^1.0.2
|
||||||
version: 1.0.2
|
version: 1.0.2
|
||||||
|
@ -1288,68 +1288,68 @@ packages:
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@swc/core-darwin-arm64@1.12.3':
|
'@swc/core-darwin-arm64@1.12.4':
|
||||||
resolution: {integrity: sha512-QCV9vQ/s27AMxm8j8MTDL/nDoiEMrANiENRrWnb0Fxvz/O39CajPVShp/W7HlOkzt1GYtUXPdQJpSKylugfrWw==}
|
resolution: {integrity: sha512-HihKfeitjZU2ab94Zf893sxzFryLKX0TweGsNXXOLNtkSMLw50auuYfpRM0BOL9/uXXtuCWgRIF6P030SAX5xQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@swc/core-darwin-x64@1.12.3':
|
'@swc/core-darwin-x64@1.12.4':
|
||||||
resolution: {integrity: sha512-LylCMfzGhdvl5tyKaTT9ePetHUX7wSsST7hxWiHzS+cUMj7FnhcfdEr6kcNVT7y1RJn3fCvuv7T98ZB+T2q3HA==}
|
resolution: {integrity: sha512-meYCXHyYb6RDdu2N5PNAf0EelyxPBFhRcVo4kBFLuvuNb0m6EUg///VWy8MUMXq9/s9uzGS9kJVXXdRdr/d6FA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@swc/core-linux-arm-gnueabihf@1.12.3':
|
'@swc/core-linux-arm-gnueabihf@1.12.4':
|
||||||
resolution: {integrity: sha512-DQODb7S+q+pwQY41Azcavwb2rb4rGxP70niScRDxB9X68hHOM9D0w9fxzC+Nr3AHcPSmVJUYUIiq5h38O5hVgQ==}
|
resolution: {integrity: sha512-szfDbf7mE8V64of0q/LSqbk+em+T+TD3uqnH40Z7Qu/aL8vi5CHgyLjWG2SLkLLpyjgkAUF6AKrupgnBYcC2NA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@swc/core-linux-arm64-gnu@1.12.3':
|
'@swc/core-linux-arm64-gnu@1.12.4':
|
||||||
resolution: {integrity: sha512-nTxtJSq78AjeaQBueYImoFBs5j7qXbgOxtirpyt8jE29NQBd0VFzDzRBhkr6I9jq0hNiChgMkqBN4eUkEQjytg==}
|
resolution: {integrity: sha512-n0IY76w+Scx8m3HIVRvLkoResuwsQgjDfAk9bxn99dq4leQO+mE0fkPl0Yw/1BIsPh+kxGfopIJH9zsZ1Z2YrA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@swc/core-linux-arm64-musl@1.12.3':
|
'@swc/core-linux-arm64-musl@1.12.4':
|
||||||
resolution: {integrity: sha512-lBGvC5UgPSxqLr/y1NZxQhyRQ7nXy3/Ec1Z47YNXtqtpKiG1EcOGPyS0UZgwiYQkXqq8NBFMHnyHmpKnXTvRDA==}
|
resolution: {integrity: sha512-wE5jmFi5cEQyLy8WmCWmNwfKETrnzy2D8YNi/xpYWpLPWqPhcelpa6tswkfYlbsMmmOh7hQNoTba1QdGu0jvHQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@swc/core-linux-x64-gnu@1.12.3':
|
'@swc/core-linux-x64-gnu@1.12.4':
|
||||||
resolution: {integrity: sha512-61wZ8hwxNYzBY9MCWB50v90ICzdIhOuPk1O1qXswz9AXw5O6iQStEBHQ1rozPkfQ/rmhepk0pOf/6LCwssJOwg==}
|
resolution: {integrity: sha512-6S50Xd/7ePjEwrXyHMxpKTZ+KBrgUwMA8hQPbArUOwH4S5vHBr51heL0iXbUkppn1bkSr0J0IbOove5hzn+iqQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@swc/core-linux-x64-musl@1.12.3':
|
'@swc/core-linux-x64-musl@1.12.4':
|
||||||
resolution: {integrity: sha512-NNeBiTpCgWt80vumTKVoaj6Fa/ZjUcaNQNM7np3PIgB8EbuXfyztboV7vUxpkmD/lUgsk8GlEFYViHvo6VMefQ==}
|
resolution: {integrity: sha512-hbYRyaHhC13vYKuGG5BrAG5fjjWEQFfQetuFp/4QKEoXDzdnabJoixxWTQACDL3m0JW32nJ+gUzsYIPtFYkwXg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@swc/core-win32-arm64-msvc@1.12.3':
|
'@swc/core-win32-arm64-msvc@1.12.4':
|
||||||
resolution: {integrity: sha512-fxraM7exaPb1/W0CoHW45EFNOQUQh0nonBEcNFm2iv095mziBwttyxZyQBoDkQocpkd5NtsZw3xW5FTBPnn+Vw==}
|
resolution: {integrity: sha512-e6EbfjPL8GA/bb1lc9Omtxjlz+1ThTsAuBsy4Q3Kpbuh6B3jclg8KzxU/6t91v23wG593mieTyR5f3Pr7X3AWw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@swc/core-win32-ia32-msvc@1.12.3':
|
'@swc/core-win32-ia32-msvc@1.12.4':
|
||||||
resolution: {integrity: sha512-FFIhMPXIDjRcewomwbYGPvem7Fj76AsuzbRahnAyp+OzJwrrtxVmra/kyUCfj4kix7vdGByY0WvVfiVCf5b7Mg==}
|
resolution: {integrity: sha512-RG2FzmllBTUf4EksANlIvLckcBrLZEA0t13LIa6L213UZKQfEuDNHezqESgoVhJMg2S/tWauitATOCFgZNSmjg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@swc/core-win32-x64-msvc@1.12.3':
|
'@swc/core-win32-x64-msvc@1.12.4':
|
||||||
resolution: {integrity: sha512-Sf4iSg+IYT5AzFSDDmii08DfeKcvtkVxIuo+uS8BJMbiLjFNjgMkkVlBthknGyJcSK15ncg9248XjnM4jU8DZA==}
|
resolution: {integrity: sha512-oRHKnZlR83zaMeVUCmHENa4j5uNRAWbmEpjYbzRcfC45LPFNWKGWGAGERLx0u87XMUtTGqnVYxnBTHN/rzDHOw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@swc/core@1.12.3':
|
'@swc/core@1.12.4':
|
||||||
resolution: {integrity: sha512-c4NeXW8P3gPqcFwtm+4aH+F2Cj5KJLMiLaKhSj3mpv19glq+jmekomdktAw/VHyjsXlsmouOeNWrk8rVlkCRsg==}
|
resolution: {integrity: sha512-hn30ebV4njAn0NAUM+3a0qCF+MJgqTNSrfA/hUAbC6TVjOQy2OYGQwkUvCu/V7S2+rZxrUsTpKOnZ7qqECZV9Q==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@swc/helpers': '>=0.5.17'
|
'@swc/helpers': '>=0.5.17'
|
||||||
|
@ -4482,51 +4482,51 @@ snapshots:
|
||||||
'@rollup/rollup-win32-x64-msvc@4.44.0':
|
'@rollup/rollup-win32-x64-msvc@4.44.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-darwin-arm64@1.12.3':
|
'@swc/core-darwin-arm64@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-darwin-x64@1.12.3':
|
'@swc/core-darwin-x64@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-linux-arm-gnueabihf@1.12.3':
|
'@swc/core-linux-arm-gnueabihf@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-linux-arm64-gnu@1.12.3':
|
'@swc/core-linux-arm64-gnu@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-linux-arm64-musl@1.12.3':
|
'@swc/core-linux-arm64-musl@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-linux-x64-gnu@1.12.3':
|
'@swc/core-linux-x64-gnu@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-linux-x64-musl@1.12.3':
|
'@swc/core-linux-x64-musl@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-win32-arm64-msvc@1.12.3':
|
'@swc/core-win32-arm64-msvc@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-win32-ia32-msvc@1.12.3':
|
'@swc/core-win32-ia32-msvc@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core-win32-x64-msvc@1.12.3':
|
'@swc/core-win32-x64-msvc@1.12.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@swc/core@1.12.3':
|
'@swc/core@1.12.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@swc/counter': 0.1.3
|
'@swc/counter': 0.1.3
|
||||||
'@swc/types': 0.1.23
|
'@swc/types': 0.1.23
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@swc/core-darwin-arm64': 1.12.3
|
'@swc/core-darwin-arm64': 1.12.4
|
||||||
'@swc/core-darwin-x64': 1.12.3
|
'@swc/core-darwin-x64': 1.12.4
|
||||||
'@swc/core-linux-arm-gnueabihf': 1.12.3
|
'@swc/core-linux-arm-gnueabihf': 1.12.4
|
||||||
'@swc/core-linux-arm64-gnu': 1.12.3
|
'@swc/core-linux-arm64-gnu': 1.12.4
|
||||||
'@swc/core-linux-arm64-musl': 1.12.3
|
'@swc/core-linux-arm64-musl': 1.12.4
|
||||||
'@swc/core-linux-x64-gnu': 1.12.3
|
'@swc/core-linux-x64-gnu': 1.12.4
|
||||||
'@swc/core-linux-x64-musl': 1.12.3
|
'@swc/core-linux-x64-musl': 1.12.4
|
||||||
'@swc/core-win32-arm64-msvc': 1.12.3
|
'@swc/core-win32-arm64-msvc': 1.12.4
|
||||||
'@swc/core-win32-ia32-msvc': 1.12.3
|
'@swc/core-win32-ia32-msvc': 1.12.4
|
||||||
'@swc/core-win32-x64-msvc': 1.12.3
|
'@swc/core-win32-x64-msvc': 1.12.4
|
||||||
|
|
||||||
'@swc/counter@0.1.3': {}
|
'@swc/counter@0.1.3': {}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue