|
|
@@ -1,16 +1,11 @@
|
|
|
import type { CodegenContext } from '../generate'
|
|
|
-import type {
|
|
|
- AppendNodeIRNode,
|
|
|
- InsertNodeIRNode,
|
|
|
- PrependNodeIRNode,
|
|
|
-} from '../ir'
|
|
|
+import type { InsertNodeIRNode, PrependNodeIRNode } from '../ir'
|
|
|
import { type CodeFragment, NEWLINE, genCall } from './utils'
|
|
|
|
|
|
export function genInsertNode(
|
|
|
- oper: InsertNodeIRNode,
|
|
|
+ { parent, elements, anchor }: InsertNodeIRNode,
|
|
|
{ vaporHelper }: CodegenContext,
|
|
|
): CodeFragment[] {
|
|
|
- const elements = ([] as number[]).concat(oper.element)
|
|
|
let element = elements.map(el => `n${el}`).join(', ')
|
|
|
if (elements.length > 1) element = `[${element}]`
|
|
|
return [
|
|
|
@@ -18,8 +13,8 @@ export function genInsertNode(
|
|
|
...genCall(
|
|
|
vaporHelper('insert'),
|
|
|
element,
|
|
|
- `n${oper.parent}`,
|
|
|
- `n${oper.anchor}`,
|
|
|
+ `n${parent}`,
|
|
|
+ anchor === undefined ? undefined : `n${anchor}`,
|
|
|
),
|
|
|
]
|
|
|
}
|
|
|
@@ -37,17 +32,3 @@ export function genPrependNode(
|
|
|
),
|
|
|
]
|
|
|
}
|
|
|
-
|
|
|
-export function genAppendNode(
|
|
|
- oper: AppendNodeIRNode,
|
|
|
- { vaporHelper }: CodegenContext,
|
|
|
-): CodeFragment[] {
|
|
|
- return [
|
|
|
- NEWLINE,
|
|
|
- ...genCall(
|
|
|
- vaporHelper('append'),
|
|
|
- `n${oper.parent}`,
|
|
|
- ...oper.elements.map(el => `n${el}`),
|
|
|
- ),
|
|
|
- ]
|
|
|
-}
|