diff --git a/arkoala-arkts/libarkts/.gitlab-ci.yml b/arkoala-arkts/libarkts/.gitlab-ci.yml index 7c2b527b225a8485ddb2e98c05def4bb47d6b1f7..ec5347684992e10cf75c74ee91d5f2a20cb09a4b 100644 --- a/arkoala-arkts/libarkts/.gitlab-ci.yml +++ b/arkoala-arkts/libarkts/.gitlab-ci.yml @@ -55,3 +55,20 @@ test example arkts-plugin: - install node modules (arkoala-arkts) - install node modules (incremental) - install node modules (interop) + +test playground: + interruptible: true + stage: test + extends: .linux-vm-shell-task + before_script: + - !reference [ .setup, script ] + - cd arkoala-arkts/libarkts + - npm run panda:sdk:install + script: + - npm run run:playground + needs: + - install node modules (arkoala-arkts) + - install node modules (incremental) + - install node modules (interop) + + diff --git a/arkoala-arkts/libarkts/native/src/es2panda_lib.cc b/arkoala-arkts/libarkts/native/src/es2panda_lib.cc index 75ee8ae2ecac9545e73930fc2fe4cd26976cf35d..14e4af82b800d141fa5023f0062ae43c2abc7f63 100644 --- a/arkoala-arkts/libarkts/native/src/es2panda_lib.cc +++ b/arkoala-arkts/libarkts/native/src/es2panda_lib.cc @@ -148,26 +148,6 @@ KNativePointer impl_ContextProgram(KNativePointer contextPtr) { } KOALA_INTEROP_1(ContextProgram, KNativePointer, KNativePointer) -KBoolean impl_CheckerStartChecker(KNativePointer contextPtr) { - auto context = reinterpret_cast(contextPtr); - return GetImpl()->CheckerStartChecker(context); -} -KOALA_INTEROP_1(CheckerStartChecker, KBoolean, KNativePointer) - -KNativePointer impl_VarBinderIdentifierAnalysis(KNativePointer contextPtr) { - auto context = reinterpret_cast(contextPtr); - GetImpl()->VarBinderIdentifierAnalysis(context); - return context; -} -KOALA_INTEROP_1(VarBinderIdentifierAnalysis, KNativePointer, KNativePointer) - -KNativePointer impl_VarBinderInitTopScope(KNativePointer contextPtr) { - auto context = reinterpret_cast(contextPtr); - GetImpl()->VarBinderInitTopScope(context); - return context; -} -KOALA_INTEROP_1(VarBinderInitTopScope, KNativePointer, KNativePointer) - KNativePointer impl_ProgramAst(KNativePointer programPtr) { auto program = reinterpret_cast(programPtr); return GetImpl()->ProgramAst(program); @@ -231,12 +211,12 @@ KNativePointer impl_CreateETSFunctionTypeIr(KNativePointer contextPtr, KNativePo } KOALA_INTEROP_3(CreateETSFunctionTypeIr, KNativePointer, KNativePointer, KNativePointer, KInt) -KNativePointer impl_CreateNumberLiteral(KNativePointer contextPtr, KStringPtr& strPtr) { +KNativePointer impl_CreateNumberLiteral(KNativePointer contextPtr, KDouble value) { auto context = reinterpret_cast(contextPtr); - return GetImpl()->CreateNumberLiteral(context, getStringCopy(strPtr)); + return GetImpl()->CreateNumberLiteral(context, value); } -KOALA_INTEROP_2(CreateNumberLiteral, KNativePointer, KNativePointer, KStringPtr) +KOALA_INTEROP_2(CreateNumberLiteral, KNativePointer, KNativePointer, KDouble) KNativePointer impl_CreateStringLiteral(KNativePointer contextPtr, KStringPtr& stringPtr) { auto context = reinterpret_cast(contextPtr); @@ -438,12 +418,12 @@ KNativePointer impl_ScriptFunctionId(KNativePointer contextPtr, KNativePointer n } KOALA_INTEROP_2(ScriptFunctionId, KNativePointer, KNativePointer, KNativePointer) -KBoolean impl_ScriptFunctionDeclareConst(KNativePointer contextPtr, KNativePointer nodePtr) { - auto context = reinterpret_cast(contextPtr); - auto node = reinterpret_cast(nodePtr); - return GetImpl()->ScriptFunctionDeclareConst(context, node); -} -KOALA_INTEROP_2(ScriptFunctionDeclareConst, KBoolean, KNativePointer, KNativePointer) +// KBoolean impl_ScriptFunctionDeclareConst(KNativePointer contextPtr, KNativePointer nodePtr) { +// auto context = reinterpret_cast(contextPtr); +// auto node = reinterpret_cast(nodePtr); +// return GetImpl()->ScriptFunctionDeclareConst(context, node); +// } +// KOALA_INTEROP_2(ScriptFunctionDeclareConst, KBoolean, KNativePointer, KNativePointer) KNativePointer impl_CreateFunctionDeclaration( KNativePointer contextPtr, @@ -515,35 +495,31 @@ KNativePointer impl_CreateVariableDeclaration( KNativePointer contextPtr, KInt kindT, KNativePointerArray declaratorsPtr, - KInt declaratorsLen, - KBoolean declareT + KInt declaratorsLen ) { auto context = reinterpret_cast(contextPtr); auto kind = static_cast(kindT); auto declarators = reinterpret_cast(declaratorsPtr); - auto declare = static_cast(declareT); - return GetImpl()->CreateVariableDeclaration(context, kind, declarators, declaratorsLen, declare); + return GetImpl()->CreateVariableDeclaration(context, kind, declarators, declaratorsLen); } -KOALA_INTEROP_5(CreateVariableDeclaration, KNativePointer, KNativePointer, KInt, KNativePointerArray, KInt, KBoolean) +KOALA_INTEROP_4(CreateVariableDeclaration, KNativePointer, KNativePointer, KInt, KNativePointerArray, KInt) KNativePointer impl_UpdateVariableDeclaration( KNativePointer contextPtr, KNativePointer originalPtr, KInt kindT, KNativePointerArray declaratorsPtr, - KInt declaratorsLen, - KBoolean declareT + KInt declaratorsLen ) { auto context = reinterpret_cast(contextPtr); auto original = reinterpret_cast(originalPtr); auto kind = static_cast(kindT); auto declarators = reinterpret_cast(declaratorsPtr); - auto declare = static_cast(declareT); - return GetImpl()->UpdateVariableDeclaration(context, original, kind, declarators, declaratorsLen, declare); + return GetImpl()->UpdateVariableDeclaration(context, original, kind, declarators, declaratorsLen); } -KOALA_INTEROP_6(UpdateVariableDeclaration, KNativePointer, KNativePointer, KNativePointer, KInt, KNativePointerArray, KInt, KBoolean) +KOALA_INTEROP_5(UpdateVariableDeclaration, KNativePointer, KNativePointer, KNativePointer, KInt, KNativePointerArray, KInt) KNativePointer impl_CreateVariableDeclarator( KNativePointer contextPtr, @@ -857,16 +833,17 @@ KNativePointer impl_CreateFunctionSignature( KNativePointer typeParamsPtr, KNativePointerArray paramsPtr, KInt paramsLen, - KNativePointer returnTypeAnnotationPtr + KNativePointer returnTypeAnnotationPtr, + KBoolean hasReceiver ) { auto context = reinterpret_cast(contextPtr); auto typeParams = reinterpret_cast(typeParamsPtr); auto params = reinterpret_cast(paramsPtr); auto returnTypeAnnotation = reinterpret_cast(returnTypeAnnotationPtr); - return GetImpl()->CreateFunctionSignature(context, typeParams, params, paramsLen, returnTypeAnnotation); + return GetImpl()->CreateFunctionSignature(context, typeParams, params, paramsLen, returnTypeAnnotation, hasReceiver); } -KOALA_INTEROP_5(CreateFunctionSignature, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KNativePointer) +KOALA_INTEROP_6(CreateFunctionSignature, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt, KNativePointer, KBoolean) KNativePointer impl_CreateTSUnionType( KNativePointer contextPtr, @@ -917,16 +894,15 @@ KNativePointer impl_CreateScriptFunction( KNativePointer databodyPtr, KNativePointer datasignaturePtr, KInt datafuncFlags, - KInt dataFlags, - KBoolean datadeclare + KInt dataFlags ) { auto context = reinterpret_cast(contextPtr); auto databody = reinterpret_cast(databodyPtr); auto datasignature = reinterpret_cast(datasignaturePtr); - return GetImpl()->CreateScriptFunction(context, databody, datasignature, datafuncFlags, dataFlags, datadeclare); + return GetImpl()->CreateScriptFunction(context, databody, datasignature, datafuncFlags, dataFlags); } -KOALA_INTEROP_6(CreateScriptFunction, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KInt, KBoolean) +KOALA_INTEROP_5(CreateScriptFunction, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KInt) KNativePointer impl_UpdateScriptFunction( KNativePointer contextPtr, @@ -934,17 +910,16 @@ KNativePointer impl_UpdateScriptFunction( KNativePointer databodyPtr, KNativePointer datasignaturePtr, KInt datafuncFlags, - KInt dataFlags, - KBoolean datadeclare + KInt dataFlags ) { auto context = reinterpret_cast(contextPtr); auto node = reinterpret_cast(nodePtr); auto databody = reinterpret_cast(databodyPtr); auto datasignature = reinterpret_cast(datasignaturePtr); - return GetImpl()->UpdateScriptFunction(context, node, databody, datasignature, datafuncFlags, dataFlags, datadeclare); + return GetImpl()->UpdateScriptFunction(context, node, databody, datasignature, datafuncFlags, dataFlags); } -KOALA_INTEROP_7(UpdateScriptFunction, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KInt, KBoolean) +KOALA_INTEROP_6(UpdateScriptFunction, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KInt) KNativePointer impl_CreateBlockStatement( KNativePointer contextPtr, @@ -1222,7 +1197,7 @@ KInt impl_IdentifierIdentifierFlags(KNativePointer contextPtr, KNativePointer no return (GetImpl()->IdentifierIsOptionalConst(context, node) ? (1 << 0) : 0) | - (GetImpl()->IdentifierIsReferenceConst(context, node, Es2pandaScriptExtension::SCRIPT_EXTENSION_TS) ? (1 << 1) : 0) | + (GetImpl()->IdentifierIsReferenceConst(context, node) ? (1 << 1) : 0) | (GetImpl()->IdentifierIsTdzConst(context, node) ? (1 << 2) : 0); } KOALA_INTEROP_2(IdentifierIdentifierFlags, KInt, KNativePointer, KNativePointer) @@ -1370,31 +1345,6 @@ KNativePointer impl_BlockStatementSetStatements( } KOALA_INTEROP_4(BlockStatementSetStatements, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KInt) -KNativePointer impl_VarBinderSetProgram(KNativePointer contextPtr) { - auto context = reinterpret_cast(contextPtr); - - GetImpl()->VarBinderSetProgram(context); - return nullptr; -} -KOALA_INTEROP_1(VarBinderSetProgram, KNativePointer, KNativePointer) - -KNativePointer impl_VarBinderSetContext(KNativePointer contextPtr) { - auto context = reinterpret_cast(contextPtr); - - GetImpl()->VarBinderSetContext(context); - return nullptr; -} -KOALA_INTEROP_1(VarBinderSetContext, KNativePointer, KNativePointer) - -KNativePointer impl_VarBinderSetGenStdLib(KNativePointer contextPtr, KBoolean genStdLibT) { - auto context = reinterpret_cast(contextPtr); - auto genStdLib = static_cast(genStdLibT); - - GetImpl()->VarBinderSetGenStdLib(context, genStdLib); - return nullptr; -} -KOALA_INTEROP_2(VarBinderSetGenStdLib, KNativePointer, KNativePointer, KBoolean) - KNativePointer impl_CreateClassDeclaration(KNativePointer contextPtr, KNativePointer defPtr) { auto context = reinterpret_cast(contextPtr); auto def = reinterpret_cast(defPtr); diff --git a/arkoala-arkts/libarkts/package.json b/arkoala-arkts/libarkts/package.json index 29ee9601bdc99ef820cadb705cad46ceb2f3e4f2..749e73f9b1017ccd27fdd03b038c842c4fa8db2f 100644 --- a/arkoala-arkts/libarkts/package.json +++ b/arkoala-arkts/libarkts/package.json @@ -12,7 +12,7 @@ "dependencies": { }, "scripts": { - "panda:sdk:install": "npm install --prefix .. --no-save @panda/sdk@1.5.0-dev.9184", + "panda:sdk:install": "npm install --prefix .. --no-save @panda/sdk@next", "compile:koala:interop": "npm run --prefix ../../interop compile", "compile:meson": "cd native && meson setup build && meson compile -C build", "copy:.node": "mkdir -p ./build/native/build && cp ./native/build/es2panda.node ./build/native/build", diff --git a/arkoala-arkts/libarkts/playground/src/playground.cc b/arkoala-arkts/libarkts/playground/src/playground.cc index 2b05c0e9438c32a57f9b3afe587ee57e8f293fbc..405a03829117781deffa6733c40716e08fc5b86e 100644 --- a/arkoala-arkts/libarkts/playground/src/playground.cc +++ b/arkoala-arkts/libarkts/playground/src/playground.cc @@ -42,9 +42,9 @@ int main() { "", "--arktsconfig", // path to config - "../arktsconfig.json", + "./arktsconfig.json", // path to source - "../input/main.sts" + "./examples/input/main.sts" }; auto config = GetImpl()->CreateConfig(4, args); diff --git a/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts b/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts index f914c715c401d18d7c58c978602200a7dada06e7..3f80d9f856dbc2baef60ea8b11ba60b68053e9d8 100644 --- a/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts +++ b/arkoala-arkts/libarkts/src/Es2pandaNativeModule.ts @@ -19,7 +19,8 @@ import { KBoolean, KNativePointer, registerNativeModule, - registerLoadedLibrary + registerLoadedLibrary, + KDouble } from "@koalaui/interop" // TODO: this type should be in interop @@ -224,10 +225,10 @@ export class Es2pandaNativeModule { throw new Error("Not implemented") } - _CreateFunctionSignature(context: KPtr, typeParams: KPtr, params: KPtrArray, paramsLen: KInt, returnTypeAnnotation: KPtr): KPtr { + _CreateFunctionSignature(context: KPtr, typeParams: KPtr, params: KPtrArray, paramsLen: KInt, returnTypeAnnotation: KPtr, hasReceiver: KBoolean): KPtr { throw new Error("Not implemented") } - _CreateScriptFunction(context: KPtr, databody: KPtr, datasignature: KPtr, datafuncFlags: KInt, dataflags: KInt, datadeclare: KBoolean): KPtr { + _CreateScriptFunction(context: KPtr, databody: KPtr, datasignature: KPtr, datafuncFlags: KInt, dataflags: KInt): KPtr { throw new Error("Not implemented") } _UpdateScriptFunction(context: KPtr, original: KPtr, databody: KPtr, datasignature: KPtr, datafuncFlags: KInt, dataflags: KInt, datadeclare: KBoolean): KPtr { @@ -387,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 { @@ -412,7 +413,7 @@ export class Es2pandaNativeModule { _CreateStringLiteral(context: KPtr, string: string): KPtr { throw new Error("Not implemented") } - _CreateNumberLiteral(context: KPtr, string: string): KPtr { + _CreateNumberLiteral(context: KPtr, value: KDouble): KPtr { throw new Error("Not implemented") } _NumberLiteralStrConst(context: KPtr, node: KPtr): KPtr { @@ -489,7 +490,7 @@ export class Es2pandaNativeModule { _AstNodeOriginalNodeConst(context: KPtr, ast: KPtr): KPtr { throw new Error("Not implemented") } - + _VarBinderSetProgram(context: KPtr): void { throw new Error("Not implemented") } diff --git a/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts b/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts index 94c7a86c3c161b484d4475e0169fffbba50ff212..5622bd16fd8f9423ee50e3bd90e909bac25399d5 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/factory/nodeFactory.ts @@ -53,5 +53,9 @@ export const factory = { createMemberExpression: arkts.MemberExpression.create, updateMemberExpression: compose(arkts.MemberExpression.create), + createEtsScript: arkts.EtsScript.create, + updateEtsScript: arkts.EtsScript.update, + createArrowFunctionExpression: arkts.ArrowFunctionExpression.create, + } diff --git a/arkoala-arkts/libarkts/src/arkts-api/static/enums.ts b/arkoala-arkts/libarkts/src/arkts-api/static/enums.ts index 9fd82dcb0f290fdb0d8b9786aa5eb0062d7a13ee..af5f1983e42d139c8613bd8d327ace024174d1a8 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/static/enums.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/static/enums.ts @@ -561,11 +561,3 @@ export const enum Es2pandaIdentifierFlags { REFERENCE = 1 << 1, TDZ = 1 << 2, } - -export const enum Es2pandaScriptExtension { - SCRIPT_EXTENSION_JS, - SCRIPT_EXTENSION_TS, - SCRIPT_EXTENSION_AS, - SCRIPT_EXTENSION_ETS, - SCRIPT_EXTENSION_INVALID, -} diff --git a/arkoala-arkts/libarkts/src/arkts-api/types.ts b/arkoala-arkts/libarkts/src/arkts-api/types.ts index 9944d17959bbc9c30762535ade6bed8b0456c0ad..34bc39be7475aeaee8ee80a8d616b0c4cd0c37cb 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/types.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/types.ts @@ -222,7 +222,7 @@ export class EtsScript extends Node { // TODO: should create new node static update( node: EtsScript, - statements: Node[], + statements: readonly Node[], ): EtsScript { global.es2panda._BlockStatementSetStatements(global.context, node.peer, passNodeArray(statements), statements.length) return node @@ -608,26 +608,27 @@ export class NumberLiteral extends Node { constructor(peer: KPtr) { assertValidPeer(peer, Es2pandaAstNodeType.AST_NODE_TYPE_NUMBER_LITERAL) super(peer) - this.str = unpackString(global.es2panda._NumberLiteralStrConst(global.context, this.peer)) + this.value = 0.0 } static create( node: undefined | NumberLiteral, - str: string, + value: number, ): NumberLiteral { - return new NumberLiteral( + const tmp = new NumberLiteral( updatePeerByNode( - global.es2panda._CreateNumberLiteral(global.context, passString(str)), + global.es2panda._CreateNumberLiteral(global.context, value), node ) ) + return tmp } protected override dumpMessage(): string { - return ` ` + return ` ` } - readonly str: string + readonly value: number = 0.0 } export class FunctionSignature extends ArktsObject { @@ -653,7 +654,8 @@ export class FunctionSignature extends ArktsObject { passNode(typeParamsDecl), passNodeArray(params), params.length, - passNode(returnTypeAnnotation) + passNode(returnTypeAnnotation), + false ) ) } @@ -671,7 +673,7 @@ export class ScriptFunction extends Node { this.typeParamsDecl = unpackNode(global.es2panda._ScriptFunctionTypeParams(global.context, this.peer)) this.body = unpackNode(global.es2panda._ScriptFunctionBody(global.context, this.peer)) // this.signature = unpackNonNullableObject(FunctionSignature, nativeModule._ScriptFunctionSignature(global.context, this.peer)) - this.declare = global.es2panda._ScriptFunctionDeclareConst(global.context, this.peer) + // this.declare = global.es2panda._ScriptFunctionDeclareConst(global.context, this.peer) this.ident = unpackNode(global.es2panda._ScriptFunctionId(global.context, this.peer)) this.scriptFunctionFlags = this._correctScriptFunctionFlags() @@ -692,8 +694,7 @@ export class ScriptFunction extends Node { passNode(body), signature.peer, functionFlags, - modifierFlags, - declare + modifierFlags ), node ) @@ -744,7 +745,6 @@ export class ScriptFunction extends Node { readonly body?: BlockStatement // readonly signature: FunctionSignature readonly scriptFunctionFlags: KInt - readonly declare: boolean readonly ident?: Identifier } @@ -1164,16 +1164,14 @@ export class VariableDeclaration extends Node { node: undefined | VariableDeclaration, modifiers: KInt, kind: Es2pandaVariableDeclarationKind, - declarators: readonly VariableDeclarator[], - declare: boolean, + declarators: readonly VariableDeclarator[] ): VariableDeclaration { const peer = updatePeerByNode( global.es2panda._CreateVariableDeclaration( global.context, kind, passNodeArray(declarators), - declarators.length, - declare + declarators.length ), node ) diff --git a/arkoala-arkts/libarkts/src/arkts-api/visitor.ts b/arkoala-arkts/libarkts/src/arkts-api/visitor.ts index 1d2c286086256081ea6fc44de0e89faa483bde5c..90e289f2bd54b275241d291a9c8e24a2746451c9 100644 --- a/arkoala-arkts/libarkts/src/arkts-api/visitor.ts +++ b/arkoala-arkts/libarkts/src/arkts-api/visitor.ts @@ -30,6 +30,12 @@ export function visitEachChild( node: Node, visitor: Visitor ): Node { + if (node instanceof EtsScript) { + return factory.updateEtsScript( + node, + nodesVisitor(node.statements, visitor) + ) + } if (node instanceof CallExpression) { return factory.updateCallExpression( node, diff --git a/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts b/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts index 77b325828b5173ec8054acfd3a8018c9dd960e69..c658f65f5ca4b92901149211f78d1b8da0d44d65 100644 --- a/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts +++ b/arkoala-arkts/libarkts/src/ts-api/factory/nodeFactory.ts @@ -200,12 +200,12 @@ export function createNodeFactory() { // numericLiteralFlags: TokenFlags = TokenFlags.None // ): NumericLiteral { function createNumericLiteral( - str: string + value: number ): NumericLiteral { return new NumericLiteral( arkts.NumberLiteral.create( undefined, - str + value ) ) } @@ -224,8 +224,7 @@ export function createNodeFactory() { undefined, passModifiers([]), passVariableDeclarationKind(flags), - passNodeArray(declarations), - false + passNodeArray(declarations) ) ) } @@ -244,8 +243,7 @@ export function createNodeFactory() { node.node, passModifiers([]), passVariableDeclarationKind(node.flags), - passNodeArray(declarations), - false + passNodeArray(declarations) ) ) } @@ -265,8 +263,7 @@ export function createNodeFactory() { undefined, passModifiers(modifiers), node.declarationKind, - node.declarators, - false + node.declarators ) ) } @@ -287,8 +284,7 @@ export function createNodeFactory() { node.node, passModifiers(modifiers), declarationList.node.declarationKind, - declarationList.node.declarators, - false + declarationList.node.declarators ) ) } @@ -815,7 +811,7 @@ export function createNodeFactory() { function updateCallExpression( node: CallExpression, expression: Expression, - typeArguments: readonly TypeNode[] | undefined, + typeArguments: readonly TypeNode[] | undefined, argumentsArray: readonly Expression[] | undefined ): CallExpression { return new CallExpression( @@ -1183,7 +1179,7 @@ export function createNodeFactory() { // body: Block | undefined // ): MethodDeclaration; function updateMethodDeclaration( - node: MethodDeclaration, + node: MethodDeclaration, modifiers: readonly Modifier[] | undefined, asteriskToken: undefined, name: Identifier, @@ -1386,7 +1382,7 @@ export function createNodeFactory() { // arkts.EtsImportDeclaration.create( // undefined, // arkts.ImportSource.create(moduleSpecifier.node), - + // ) // ) // } @@ -1408,4 +1404,4 @@ export function createNodeFactory() { } } -export const factory = createNodeFactory(); +export const factory = createNodeFactory(); diff --git a/arkoala-arkts/libarkts/src/ts-api/types.ts b/arkoala-arkts/libarkts/src/ts-api/types.ts index 46ae232f22dc615628277da5c2f99d67f5141cf8..4fdf4acd2fc7849403ff184165802576cddde93e 100644 --- a/arkoala-arkts/libarkts/src/ts-api/types.ts +++ b/arkoala-arkts/libarkts/src/ts-api/types.ts @@ -790,7 +790,7 @@ export class NumericLiteral extends Node implements ts.Nume constructor(node: arkts.NumberLiteral) { super(node) - this.text = node.str + this.text = `${node.value}` } readonly text: string 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 52fd1fee8ec8a01edaba4a51eaa9f0623e6df967..5f721910cee74d468340f15b514c3a4f7ff2b7c8 100644 --- a/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts +++ b/arkoala-arkts/libarkts/test/arkts-api/functions/create.test.ts @@ -196,7 +196,7 @@ suite(util.basename(__filename), () => { undefined, [ arkts.NumberLiteral.create(undefined, - '0' + 0 ) ] ) 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 61baad77fab0fef770b333e46258e139de97f3a3..5210efacd0d1e9c5541ebabb3fd5d3a7d15caf14 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 @@ -182,7 +182,7 @@ suite(util.basename(__filename), () => { ), scriptFunction.scriptFunctionFlags, scriptFunction.modifiers, - scriptFunction.declare, + false, scriptFunction.ident ), false diff --git a/arkoala-arkts/libarkts/test/ts-api/functions/function-declaration/create-function-declaration.test.ts b/arkoala-arkts/libarkts/test/ts-api/functions/function-declaration/create-function-declaration.test.ts index 9d67d9a8db0e54f0f187fd77c585e3e6bbfa3414..0071bb839224de786ca0cde793917fe4a77e6709 100644 --- a/arkoala-arkts/libarkts/test/ts-api/functions/function-declaration/create-function-declaration.test.ts +++ b/arkoala-arkts/libarkts/test/ts-api/functions/function-declaration/create-function-declaration.test.ts @@ -319,7 +319,7 @@ suite(util.basename(__filename), () => { factory.createIdentifier("x"), undefined, factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), - factory.createNumericLiteral("0") + factory.createNumericLiteral(0) ), factory.createParameterDeclaration( undefined, @@ -384,7 +384,7 @@ suite(util.basename(__filename), () => { ts.factory.createIdentifier("x"), undefined, ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), - ts.factory.createNumericLiteral("0") + ts.factory.createNumericLiteral(0) ), ts.factory.createParameterDeclaration( undefined, diff --git a/arkoala-arkts/libarkts/test/ts-api/general/basic.test.ts b/arkoala-arkts/libarkts/test/ts-api/general/basic.test.ts index 241aa54e338369a0c0c7d4f8936ea8c008f311d5..62c53242fbb46b481a2dfc8d7e76c8592c4b578a 100644 --- a/arkoala-arkts/libarkts/test/ts-api/general/basic.test.ts +++ b/arkoala-arkts/libarkts/test/ts-api/general/basic.test.ts @@ -94,7 +94,7 @@ suite(util.basename(__filename), () => { factory.createBlock( [ factory.createReturnStatement( - factory.createNumericLiteral("0") + factory.createNumericLiteral(0) ) ], true diff --git a/arkoala-arkts/libarkts/test/ts-api/variables/create-variable.test.ts b/arkoala-arkts/libarkts/test/ts-api/variables/create-variable.test.ts index 462b64bf7997fcf271a0eefe0bd91bd3c418f7ec..08a7baeff3c62887c003e749380176a41f37c741 100644 --- a/arkoala-arkts/libarkts/test/ts-api/variables/create-variable.test.ts +++ b/arkoala-arkts/libarkts/test/ts-api/variables/create-variable.test.ts @@ -20,7 +20,7 @@ suite(util.basename(__filename), () => { factory.createIdentifier("x"), undefined, factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), - factory.createNumericLiteral("0") + factory.createNumericLiteral(0) ) ], ts.NodeFlags.Const @@ -86,7 +86,7 @@ suite(util.basename(__filename), () => { factory.createIdentifier("x"), undefined, factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), - factory.createNumericLiteral("0") + factory.createNumericLiteral(0) ), factory.createVariableDeclaration( factory.createIdentifier("y"), @@ -98,7 +98,7 @@ suite(util.basename(__filename), () => { factory.createIdentifier("z"), undefined, undefined, - factory.createNumericLiteral("0") + factory.createNumericLiteral(0) ) ], ts.NodeFlags.Const @@ -143,7 +143,7 @@ suite(util.basename(__filename), () => { factory.createIdentifier("x"), undefined, factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), - factory.createNumericLiteral("0") + factory.createNumericLiteral(0) ), factory.createVariableDeclaration( factory.createIdentifier("y"), @@ -155,7 +155,7 @@ suite(util.basename(__filename), () => { factory.createIdentifier("z"), undefined, undefined, - factory.createNumericLiteral("0") + factory.createNumericLiteral(0) ) ], ts.NodeFlags.Let @@ -199,13 +199,13 @@ suite(util.basename(__filename), () => { factory.createBinaryExpression( factory.createParenthesizedExpression( factory.createBinaryExpression( - factory.createNumericLiteral("0"), + factory.createNumericLiteral(0), factory.createToken(ts.SyntaxKind.PlusToken), - factory.createNumericLiteral("0") + factory.createNumericLiteral(0) ) ), factory.createToken(ts.SyntaxKind.AsteriskToken), - factory.createNumericLiteral("0") + factory.createNumericLiteral(0) ) ) ], diff --git a/interop/src/interop/InteropTypes.ts b/interop/src/interop/InteropTypes.ts index c1ceb07869df7a14bddc3a45ecae5809bdf86aba..af04a1c55af7b801c0b17a603dfb21aa82be9e84 100644 --- a/interop/src/interop/InteropTypes.ts +++ b/interop/src/interop/InteropTypes.ts @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { int32, int64, float32 } from "@koalaui/common" +import { int32, int64, float32, float64 } from "@koalaui/common" export type KStringPtr = int32 | string | null export type KStringArrayPtr = int32 | Uint8Array | null @@ -23,6 +23,7 @@ export type KInt = int32 export type KUInt = int32 export type KLong = int64 export type KFloat = float32 +export type KDouble = float64 export type KBoolean = int32 export type KPointer = number | bigint export type pointer = KPointer