From f35c4876ec2627308ed115dd4e7568645c9d76c0 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Thu, 16 Jan 2025 12:30:13 +0300 Subject: [PATCH 1/4] Move to @next @panda/sdk Signed-off-by: Alexander Gorshenev --- arkoala-arkts/libarkts/native/src/es2panda_lib.cc | 2 +- arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arkoala-arkts/libarkts/native/src/es2panda_lib.cc b/arkoala-arkts/libarkts/native/src/es2panda_lib.cc index 14e4af82b..0c8ce3480 100644 --- a/arkoala-arkts/libarkts/native/src/es2panda_lib.cc +++ b/arkoala-arkts/libarkts/native/src/es2panda_lib.cc @@ -495,7 +495,7 @@ KNativePointer impl_CreateVariableDeclaration( KNativePointer contextPtr, KInt kindT, KNativePointerArray declaratorsPtr, - KInt declaratorsLen + KInt declaratorsLen, ) { auto context = reinterpret_cast(contextPtr); auto kind = static_cast(kindT); diff --git a/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts b/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts index 3f80d9f85..3fe42c59e 100644 --- a/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts +++ b/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts @@ -388,7 +388,7 @@ export class Es2pandaNativeModule { throw new Error("Not implemented") } - _CreateVariableDeclaration(context: KPtr, kind: KInt, declarators: KPtrArray, declaratorsLen: KInt): KPtr { + _CreateVariableDeclaration(context: KPtr, kind: KInt, declarators: KPtrArray, declaratorsLen: KInt/*, declare: KBoolean*/): KPtr { throw new Error("Not implemented") } _UpdateVariableDeclaration(context: KPtr, original: KPtr, kind: KInt, declarators: KPtrArray, declaratorsLen: KInt, declare: KBoolean): KPtr { -- Gitee From 3f77a8a678fd2519eedad9aa65c9b4ca292bd340 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Thu, 16 Jan 2025 12:42:02 +0300 Subject: [PATCH 2/4] more of the same Signed-off-by: Alexander Gorshenev --- arkoala-arkts/libarkts/native/src/es2panda_lib.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arkoala-arkts/libarkts/native/src/es2panda_lib.cc b/arkoala-arkts/libarkts/native/src/es2panda_lib.cc index 0c8ce3480..14e4af82b 100644 --- a/arkoala-arkts/libarkts/native/src/es2panda_lib.cc +++ b/arkoala-arkts/libarkts/native/src/es2panda_lib.cc @@ -495,7 +495,7 @@ KNativePointer impl_CreateVariableDeclaration( KNativePointer contextPtr, KInt kindT, KNativePointerArray declaratorsPtr, - KInt declaratorsLen, + KInt declaratorsLen ) { auto context = reinterpret_cast(contextPtr); auto kind = static_cast(kindT); -- Gitee From 96739b2fda8e9b21ef3593f80c254bb58fa06c42 Mon Sep 17 00:00:00 2001 From: chernishevvictor Date: Thu, 16 Jan 2025 15:51:20 +0300 Subject: [PATCH 3/4] fixing visitor --- .../src/builder-lambda-transformer.ts | 5 +- .../libarkts/examples/src/print-visitor.ts | 3 +- .../src/arkts-api/factory/nodeFactory.ts | 19 +++++- arkoala-arkts/libarkts/src/arkts-api/types.ts | 42 +++++------- .../libarkts/src/arkts-api/visitor.ts | 45 ++++++++----- .../src/ts-api/factory/nodeFactory.ts | 15 ++--- .../test/arkts-api/functions/create.test.ts | 65 +++++++++---------- .../test/arkts-api/general/basic.test.ts | 5 +- .../arkts-api/import-export/import.test.ts | 22 +++---- 9 files changed, 117 insertions(+), 104 deletions(-) diff --git a/arkoala-arkts/libarkts/examples/src/builder-lambda-transformer.ts b/arkoala-arkts/libarkts/examples/src/builder-lambda-transformer.ts index 76e04a25d..8cdb63c5f 100644 --- a/arkoala-arkts/libarkts/examples/src/builder-lambda-transformer.ts +++ b/arkoala-arkts/libarkts/examples/src/builder-lambda-transformer.ts @@ -82,7 +82,10 @@ export class BuilderLambdaTransformer extends AbstractVisitor { call.arguments ) }) - // TODO: transition to arkts api + + // const lambdaArg = ts.factory.createArrowFunction( + // ts.factory.createScriptFunction + // ) // const lambdaArg = ts.factory.createArrowFunction( // undefined, // undefined, diff --git a/arkoala-arkts/libarkts/examples/src/print-visitor.ts b/arkoala-arkts/libarkts/examples/src/print-visitor.ts index 17bdc834c..9f9baf9d7 100644 --- a/arkoala-arkts/libarkts/examples/src/print-visitor.ts +++ b/arkoala-arkts/libarkts/examples/src/print-visitor.ts @@ -9,7 +9,8 @@ export class PrintVisitor extends AbstractVisitor { } visitor(node: ts.Node): ts.Node { - console.log(`${node.constructor.name}`) + console.log(`${" ".repeat(4 * this.indentation) + node.constructor.name}`) + this.print(`${node.constructor.name}`) return this.visitEachChild(node) } diff --git a/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts b/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts index 5622bd16f..b8a9d2952 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts @@ -21,7 +21,7 @@ function compose( create: (...args: ARGS) => T, update: (node: T, original: T) => T = updateNodeByNode ): (node: T, ...args: ARGS) => T { - return (node: T, ...args: ARGS) => update(node, create(...args)); + return (node: T, ...args: ARGS) => update(create(...args), node); } export const factory = { @@ -56,6 +56,21 @@ export const factory = { createEtsScript: arkts.EtsScript.create, updateEtsScript: arkts.EtsScript.update, - createArrowFunctionExpression: arkts.ArrowFunctionExpression.create, + /** + * TODO: + */ + createFunctionDeclaration: arkts.FunctionDeclaration.create, + updateFunctionDeclaration: compose(arkts.FunctionDeclaration.create), + + /** + * TODO: + */ + createBlock: arkts.BlockStatement.create, + updateBlock: compose(arkts.BlockStatement.create), + /** + * TODO: + */ + createArrowFunction: arkts.ArrowFunctionExpression.create, + updateArrowFunction: compose(arkts.ArrowFunctionExpression.create), } diff --git a/arkoala-arkts/libarkts/src/arkts-api/types.ts b/arkoala-arkts/libarkts/src/arkts-api/types.ts index 34bc39be7..0659a24ca 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/types.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/types.ts @@ -756,16 +756,12 @@ export class ArrowFunctionExpression extends Node { } static create( - node: undefined | ArrowFunctionExpression, func: ScriptFunction, ): ArrowFunctionExpression { return new ArrowFunctionExpression( - updatePeerByNode( - global.es2panda._CreateArrowFunctionExpression( - global.context, - passNode(func) - ), - node + global.es2panda._CreateArrowFunctionExpression( + global.context, + passNode(func) ) ) } @@ -787,21 +783,17 @@ export class FunctionDeclaration extends Node { } static create( - node: undefined | FunctionDeclaration, scriptFunction: ScriptFunction, isAnon: boolean ): FunctionDeclaration { const res = new FunctionDeclaration( - updatePeerByNode( - global.es2panda._CreateFunctionDeclaration( - global.context, - scriptFunction.peer, - // TODO: support annotations - arrayOfNullptr, - 0, - isAnon - ), - node + global.es2panda._CreateFunctionDeclaration( + global.context, + scriptFunction.peer, + // TODO: support annotations + arrayOfNullptr, + 0, + isAnon ) ) // TODO: maybe wrong @@ -851,17 +843,13 @@ export class BlockStatement extends Node { } static create( - node: undefined | BlockStatement, - statements: Node[], + statements: readonly Node[], ): BlockStatement { return new BlockStatement( - updatePeerByNode( - global.es2panda._CreateBlockStatement( - global.context, - passNodeArray(statements), - statements.length - ), - node + global.es2panda._CreateBlockStatement( + global.context, + passNodeArray(statements), + statements.length ) ) } diff --git a/arkoala-arkts/libarkts/src/arkts-api/visitor.ts b/arkoala-arkts/libarkts/src/arkts-api/visitor.ts index 90e289f2b..11da20202 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/visitor.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/visitor.ts @@ -1,17 +1,10 @@ -import { - CallExpression, - EtsScript, - ExpressionStatement, - FunctionDeclaration, - MemberExpression, - Node -} from "./types" +import * as ts from "./types" import { factory } from "./factory/nodeFactory" -type Visitor = (node: Node) => Node +type Visitor = (node: ts.Node) => ts.Node // TODO: rethink (remove as) -function nodeVisitor(node: T, visitor: Visitor): T { +function nodeVisitor(node: T, visitor: Visitor): T { if (node === undefined) { return node } @@ -19,7 +12,7 @@ function nodeVisitor(node: T, visitor: Visitor): T { } // TODO: rethink (remove as) -function nodesVisitor(nodes: TIn, visitor: Visitor): T[] | TIn { +function nodesVisitor(nodes: TIn, visitor: Visitor): T[] | TIn { if (nodes === undefined) { return nodes } @@ -27,16 +20,16 @@ function nodesVisitor(node } export function visitEachChild( - node: Node, + node: ts.Node, visitor: Visitor -): Node { - if (node instanceof EtsScript) { +): ts.Node { + if (node instanceof ts.EtsScript) { return factory.updateEtsScript( node, nodesVisitor(node.statements, visitor) ) } - if (node instanceof CallExpression) { + if (node instanceof ts.CallExpression) { return factory.updateCallExpression( node, nodeVisitor(node.expression, visitor), @@ -44,6 +37,26 @@ export function visitEachChild( nodesVisitor(node.arguments, visitor) ) } + if (node instanceof ts.FunctionDeclaration) { + return factory.updateFunctionDeclaration( + node, + nodeVisitor(node.scriptFunction, visitor), + node.isAnon + ) + } + if (node instanceof ts.BlockStatement) { + return factory.updateBlock( + node, + nodesVisitor(node.statements, visitor) + ) + } + if (node instanceof ts.ExpressionStatement) { + return factory.updateExpressionStatement( + node, + nodeVisitor(node.expression, visitor) + ) + } + // TODO return node -} \ No newline at end of file +} diff --git a/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts b/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts index c658f65f5..48f79d688 100644 --- a/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts +++ b/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts @@ -359,8 +359,7 @@ export function createNodeFactory() { body: Block | undefined ): FunctionDeclaration { return new FunctionDeclaration( - arkts.FunctionDeclaration.create( - undefined, + arkts.factory.createFunctionDeclaration( arkts.ScriptFunction.create( undefined, body?.node, @@ -401,7 +400,7 @@ export function createNodeFactory() { body: Block | undefined ): FunctionDeclaration { return new FunctionDeclaration( - arkts.FunctionDeclaration.create( + arkts.factory.updateFunctionDeclaration( node.node, arkts.ScriptFunction.create( node.node.scriptFunction, @@ -650,8 +649,7 @@ export function createNodeFactory() { multiline?: boolean ): Block { return new Block( - arkts.BlockStatement.create( - undefined, + arkts.factory.createBlock( passNodeArray(statements) ) ) @@ -667,7 +665,7 @@ export function createNodeFactory() { statements: readonly Statement[] ): Block { return new Block( - arkts.BlockStatement.create( + arkts.factory.updateBlock( node.node, passNodeArray(statements) ) @@ -941,8 +939,7 @@ export function createNodeFactory() { body: Block ) { return new ArrowFunction( - arkts.ArrowFunctionExpression.create( - undefined, + arkts.factory.createArrowFunction( arkts.ScriptFunction.create( undefined, passNode(body), @@ -980,7 +977,7 @@ export function createNodeFactory() { body: Block, ): ArrowFunction { return new ArrowFunction( - arkts.ArrowFunctionExpression.create( + arkts.factory.updateArrowFunction( node.node, arkts.ScriptFunction.create( node.node.scriptFunction, diff --git a/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts b/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts index 5f721910c..7de4b23af 100644 --- a/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts +++ b/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts @@ -1,6 +1,5 @@ import * as util from "../../test-util" import * as arkts from "../../../src/arkts-api" -import { factory } from "../../../src/arkts-api/factory/nodeFactory" suite(util.basename(__filename), () => { test("sample-1", function() { @@ -24,17 +23,17 @@ suite(util.basename(__filename), () => { script, [ script.statements[0], - arkts.FunctionDeclaration.create(undefined, + arkts.factory.createFunctionDeclaration( arkts.ScriptFunction.create(undefined, - arkts.BlockStatement.create(undefined, + arkts.factory.createBlock( [ - factory.createExpressionStatement( - factory.createCallExpression( - factory.createMemberExpression( - factory.createIdentifier( + arkts.factory.createExpressionStatement( + arkts.factory.createCallExpression( + arkts.factory.createMemberExpression( + arkts.factory.createIdentifier( 'console' ), - factory.createIdentifier( + arkts.factory.createIdentifier( 'log' ), arkts.Es2pandaMemberExpressionKind.MEMBER_EXPRESSION_KIND_PROPERTY_ACCESS, @@ -58,15 +57,15 @@ suite(util.basename(__filename), () => { arkts.Es2pandaScriptFunctionFlags.SCRIPT_FUNCTION_FLAGS_NONE, arkts.Es2pandaModifierFlags.MODIFIER_FLAGS_PUBLIC | arkts.Es2pandaModifierFlags.MODIFIER_FLAGS_STATIC, false, - factory.createIdentifier( + arkts.factory.createIdentifier( 'foo' ) ), false ), - factory.createExpressionStatement( - factory.createCallExpression( - factory.createIdentifier( + arkts.factory.createExpressionStatement( + arkts.factory.createCallExpression( + arkts.factory.createIdentifier( 'foo' ), undefined, @@ -104,17 +103,17 @@ suite(util.basename(__filename), () => { script, [ script.statements[0], - arkts.FunctionDeclaration.create(undefined, + arkts.factory.createFunctionDeclaration( arkts.ScriptFunction.create(undefined, - arkts.BlockStatement.create(undefined, + arkts.factory.createBlock( [ - factory.createExpressionStatement( - factory.createCallExpression( - factory.createMemberExpression( - factory.createIdentifier( + arkts.factory.createExpressionStatement( + arkts.factory.createCallExpression( + arkts.factory.createMemberExpression( + arkts.factory.createIdentifier( 'console' ), - factory.createIdentifier( + arkts.factory.createIdentifier( 'log' ), arkts.Es2pandaMemberExpressionKind.MEMBER_EXPRESSION_KIND_PROPERTY_ACCESS, @@ -123,19 +122,19 @@ suite(util.basename(__filename), () => { ), undefined, [ - factory.createIdentifier( + arkts.factory.createIdentifier( 'x' ) ] ) ), - factory.createExpressionStatement( - factory.createCallExpression( - factory.createMemberExpression( - factory.createIdentifier( + arkts.factory.createExpressionStatement( + arkts.factory.createCallExpression( + arkts.factory.createMemberExpression( + arkts.factory.createIdentifier( 'console' ), - factory.createIdentifier( + arkts.factory.createIdentifier( 'log' ), arkts.Es2pandaMemberExpressionKind.MEMBER_EXPRESSION_KIND_PROPERTY_ACCESS, @@ -144,7 +143,7 @@ suite(util.basename(__filename), () => { ), undefined, [ - factory.createIdentifier( + arkts.factory.createIdentifier( 'y' ) ] @@ -155,7 +154,7 @@ suite(util.basename(__filename), () => { arkts.FunctionSignature.create(undefined, [ arkts.ETSParameterExpression.create(undefined, - factory.createIdentifier( + arkts.factory.createIdentifier( 'x', arkts.ETSPrimitiveType.create(undefined, arkts.Es2pandaPrimitiveType.PRIMITIVE_TYPE_INT @@ -164,10 +163,10 @@ suite(util.basename(__filename), () => { undefined ), arkts.ETSParameterExpression.create(undefined, - factory.createIdentifier( + arkts.factory.createIdentifier( 'y', arkts.ETSTypeReference.create(undefined, - factory.createIdentifier( + arkts.factory.createIdentifier( 'string' ) ) @@ -182,15 +181,15 @@ suite(util.basename(__filename), () => { arkts.Es2pandaScriptFunctionFlags.SCRIPT_FUNCTION_FLAGS_NONE, arkts.Es2pandaModifierFlags.MODIFIER_FLAGS_PUBLIC | arkts.Es2pandaModifierFlags.MODIFIER_FLAGS_STATIC, false, - factory.createIdentifier( + arkts.factory.createIdentifier( 'foo' ) ), false ), - factory.createExpressionStatement( - factory.createCallExpression( - factory.createIdentifier( + arkts.factory.createExpressionStatement( + arkts.factory.createCallExpression( + arkts.factory.createIdentifier( 'foo' ), undefined, diff --git a/arkoala-arkts/libarkts/test/arkts-api/general/basic.test.ts b/arkoala-arkts/libarkts/test/arkts-api/general/basic.test.ts index ccc8ef838..e6308b49a 100644 --- a/arkoala-arkts/libarkts/test/arkts-api/general/basic.test.ts +++ b/arkoala-arkts/libarkts/test/arkts-api/general/basic.test.ts @@ -1,7 +1,6 @@ import * as util from "../../test-util" import * as arkts from "../../../src/arkts-api" import * as ts from "../../../src/ts-api" -import { factory } from "../../../src/arkts-api/factory/nodeFactory" suite(util.basename(__filename), () => { test("sample-1", function() { @@ -14,8 +13,8 @@ suite(util.basename(__filename), () => { script = arkts.EtsScript.update( script, [ - factory.createExpressionStatement( - factory.createIdentifier( + arkts.factory.createExpressionStatement( + arkts.factory.createIdentifier( 'abc' ) ) diff --git a/arkoala-arkts/libarkts/test/arkts-api/import-export/import.test.ts b/arkoala-arkts/libarkts/test/arkts-api/import-export/import.test.ts index 5210efacd..eb86699e5 100644 --- a/arkoala-arkts/libarkts/test/arkts-api/import-export/import.test.ts +++ b/arkoala-arkts/libarkts/test/arkts-api/import-export/import.test.ts @@ -1,7 +1,6 @@ import * as util from "../../test-util" import * as arkts from "../../../src/arkts-api" import * as ts from "../../../src/ts-api" -import { factory } from "../../../src/arkts-api" suite(util.basename(__filename), () => { test("sample-1", function() { @@ -23,10 +22,10 @@ suite(util.basename(__filename), () => { [ arkts.ImportSpecifier.create( undefined, - factory.createIdentifier( + arkts.factory.createIdentifier( 'X' ), - factory.createIdentifier( + arkts.factory.createIdentifier( 'X' ) ) @@ -64,10 +63,10 @@ suite(util.basename(__filename), () => { [ arkts.ImportSpecifier.create( undefined, - factory.createIdentifier( + arkts.factory.createIdentifier( 'X' ), - factory.createIdentifier( + arkts.factory.createIdentifier( 'X' ) ) @@ -109,10 +108,10 @@ suite(util.basename(__filename), () => { [ arkts.ImportSpecifier.create( undefined, - factory.createIdentifier( + arkts.factory.createIdentifier( 'X' ), - factory.createIdentifier( + arkts.factory.createIdentifier( 'X' ) ) @@ -157,16 +156,15 @@ suite(util.basename(__filename), () => { script, [ script.statements[0], - arkts.FunctionDeclaration.create( + arkts.factory.updateFunctionDeclaration( functionDeclaration, arkts.ScriptFunction.create( scriptFunction, - arkts.BlockStatement.create( - undefined, + arkts.factory.createBlock( [ - factory.createExpressionStatement( + arkts.factory.createExpressionStatement( arkts.CallExpression.create( - factory.createIdentifier( + arkts.factory.createIdentifier( 'f' ), undefined, -- Gitee From dcca1aa830d79736f0bcf7e8dab30466d309e609 Mon Sep 17 00:00:00 2001 From: chernishevvictor Date: Thu, 16 Jan 2025 17:58:53 +0300 Subject: [PATCH 4/4] review fix --- .../libarkts/src/Es2pandaNativeModule.ts | 2 +- .../libarkts/src/arkts-api/visitor.ts | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts b/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts index 3fe42c59e..3f80d9f85 100644 --- a/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts +++ b/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts @@ -388,7 +388,7 @@ export class Es2pandaNativeModule { throw new Error("Not implemented") } - _CreateVariableDeclaration(context: KPtr, kind: KInt, declarators: KPtrArray, declaratorsLen: KInt/*, declare: KBoolean*/): KPtr { + _CreateVariableDeclaration(context: KPtr, kind: KInt, declarators: KPtrArray, declaratorsLen: KInt): KPtr { throw new Error("Not implemented") } _UpdateVariableDeclaration(context: KPtr, original: KPtr, kind: KInt, declarators: KPtrArray, declaratorsLen: KInt, declare: KBoolean): KPtr { diff --git a/arkoala-arkts/libarkts/src/arkts-api/visitor.ts b/arkoala-arkts/libarkts/src/arkts-api/visitor.ts index 11da20202..edf7c8924 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/visitor.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/visitor.ts @@ -1,10 +1,10 @@ -import * as ts from "./types" +import * as arkts from "./types" import { factory } from "./factory/nodeFactory" -type Visitor = (node: ts.Node) => ts.Node +type Visitor = (node: arkts.Node) => arkts.Node // TODO: rethink (remove as) -function nodeVisitor(node: T, visitor: Visitor): T { +function nodeVisitor(node: T, visitor: Visitor): T { if (node === undefined) { return node } @@ -12,7 +12,7 @@ function nodeVisitor(node: T, visitor: Visitor): } // TODO: rethink (remove as) -function nodesVisitor(nodes: TIn, visitor: Visitor): T[] | TIn { +function nodesVisitor(nodes: TIn, visitor: Visitor): T[] | TIn { if (nodes === undefined) { return nodes } @@ -20,16 +20,16 @@ function nodesVisitor(n } export function visitEachChild( - node: ts.Node, + node: arkts.Node, visitor: Visitor -): ts.Node { - if (node instanceof ts.EtsScript) { +): arkts.Node { + if (node instanceof arkts.EtsScript) { return factory.updateEtsScript( node, nodesVisitor(node.statements, visitor) ) } - if (node instanceof ts.CallExpression) { + if (node instanceof arkts.CallExpression) { return factory.updateCallExpression( node, nodeVisitor(node.expression, visitor), @@ -37,20 +37,20 @@ export function visitEachChild( nodesVisitor(node.arguments, visitor) ) } - if (node instanceof ts.FunctionDeclaration) { + if (node instanceof arkts.FunctionDeclaration) { return factory.updateFunctionDeclaration( node, nodeVisitor(node.scriptFunction, visitor), node.isAnon ) } - if (node instanceof ts.BlockStatement) { + if (node instanceof arkts.BlockStatement) { return factory.updateBlock( node, nodesVisitor(node.statements, visitor) ) } - if (node instanceof ts.ExpressionStatement) { + if (node instanceof arkts.ExpressionStatement) { return factory.updateExpressionStatement( node, nodeVisitor(node.expression, visitor) -- Gitee