MCPcopy Create free account
hub / github.com/crossoverJie/gscript / initClassObject

Method initClassObject

visitor.go:936–950  ·  view source on GitHub ↗

初始化 classObject 对象

(class *sym.Class)

Source from the content-addressed store, hash-verified

934
935// 初始化 classObject 对象
936func (v *Visitor) initClassObject(class *sym.Class) *stack.ClassObject {
937 object := stack.NewClassObject(class)
938
939 var tempStack stack.Stack
940 tempStack.Push(class)
941
942 v.pushStack(stack.NewClassStackFrame(object))
943 // todo crossoverJie 如果有父类需要一次初始化
944 for !tempStack.IsEmpty() {
945 pop := tempStack.Pop().(*sym.Class)
946 v.initClassObjectField(pop, object)
947 }
948 v.popStack()
949 return object
950}
951
952// 初始化 classObject 中的变量数据
953func (v *Visitor) initClassObjectField(class *sym.Class, object *stack.ClassObject) {

Callers 1

VisitFunctionCallMethod · 0.95

Calls 8

PushMethod · 0.95
pushStackMethod · 0.95
IsEmptyMethod · 0.95
PopMethod · 0.95
initClassObjectFieldMethod · 0.95
popStackMethod · 0.95
NewClassObjectFunction · 0.92
NewClassStackFrameFunction · 0.92

Tested by

no test coverage detected