1/* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { 17 global, 18 passNode, 19 passNodeArray, 20 unpackNonNullableNode, 21 unpackNode, 22 unpackNodeArray, 23 assertValidPeer, 24 AstNode, 25 Es2pandaAstNodeType, 26 KNativePointer, 27 nodeByType, 28 ArktsObject, 29 unpackString 30} from "../../reexport-for-generated" 31 32import { MaybeOptionalExpression } from "./MaybeOptionalExpression" 33import { Expression } from "./Expression" 34import { Es2pandaMemberExpressionKind } from "./../Es2pandaEnums" 35export class MemberExpression extends MaybeOptionalExpression { 36 constructor(pointer: KNativePointer) { 37 assertValidPeer(pointer, Es2pandaAstNodeType.AST_NODE_TYPE_MEMBER_EXPRESSION) 38 super(pointer) 39 40 } 41 static createMemberExpression(object_arg: Expression | undefined, property: Expression | undefined, kind: Es2pandaMemberExpressionKind, computed: boolean, optional_arg: boolean): MemberExpression { 42 return new MemberExpression(global.generatedEs2panda._CreateMemberExpression(global.context, passNode(object_arg), passNode(property), kind, computed, optional_arg)) 43 } 44 static updateMemberExpression(original: MemberExpression | undefined, object_arg: Expression | undefined, property: Expression | undefined, kind: Es2pandaMemberExpressionKind, computed: boolean, optional_arg: boolean): MemberExpression { 45 return new MemberExpression(global.generatedEs2panda._UpdateMemberExpression(global.context, passNode(original), passNode(object_arg), passNode(property), kind, computed, optional_arg)) 46 } 47 get object(): Expression | undefined { 48 return unpackNode(global.generatedEs2panda._MemberExpressionObjectConst(global.context, this.peer)) 49 } 50 /** @deprecated */ 51 setObject(object_arg: Expression): this { 52 global.generatedEs2panda._MemberExpressionSetObject(global.context, this.peer, passNode(object_arg)) 53 return this 54 } 55 /** @deprecated */ 56 setProperty(prop: Expression): this { 57 global.generatedEs2panda._MemberExpressionSetProperty(global.context, this.peer, passNode(prop)) 58 return this 59 } 60 get property(): Expression | undefined { 61 return unpackNode(global.generatedEs2panda._MemberExpressionPropertyConst(global.context, this.peer)) 62 } 63 get isComputed(): boolean { 64 return global.generatedEs2panda._MemberExpressionIsComputedConst(global.context, this.peer) 65 } 66 get kind(): Es2pandaMemberExpressionKind { 67 return global.generatedEs2panda._MemberExpressionKindConst(global.context, this.peer) 68 } 69 /** @deprecated */ 70 addMemberKind(kind: Es2pandaMemberExpressionKind): this { 71 global.generatedEs2panda._MemberExpressionAddMemberKind(global.context, this.peer, kind) 72 return this 73 } 74 /** @deprecated */ 75 removeMemberKind(kind: Es2pandaMemberExpressionKind): this { 76 global.generatedEs2panda._MemberExpressionRemoveMemberKind(global.context, this.peer, kind) 77 return this 78 } 79 get isIgnoreBox(): boolean { 80 return global.generatedEs2panda._MemberExpressionIsIgnoreBoxConst(global.context, this.peer) 81 } 82 /** @deprecated */ 83 setIgnoreBox(): this { 84 global.generatedEs2panda._MemberExpressionSetIgnoreBox(global.context, this.peer) 85 return this 86 } 87} 88export function isMemberExpression(node: AstNode): node is MemberExpression { 89 return node instanceof MemberExpression 90} 91if (!nodeByType.has(Es2pandaAstNodeType.AST_NODE_TYPE_MEMBER_EXPRESSION)) { 92 nodeByType.set(Es2pandaAstNodeType.AST_NODE_TYPE_MEMBER_EXPRESSION, MemberExpression) 93} 94