Lines Matching full:compiler
34 import { Compiler } from "../compiler";
59 export function compileClassDeclaration(compiler: Compiler, stmt: ts.ClassLikeDeclaration) {
60 compiler.pushScope(stmt);
62 let pandaGen = compiler.getPandaGen();
70 let baseVreg = compileHeritageClause(compiler, stmt);
83 compiler.compileExpression(<ts.Expression>prop.getValue());
98 … Literal(LiteralTag.METHOD, compiler.getCompilerDriver().getFuncInternalName(<ts.MethodDeclaration…
105 compiler.compileExpression(<ts.Expression | ts.Identifier>prop.getValue());
122 createClassLiteralBuf(compiler, classBuffer, stmt, [baseVreg, classReg]);
124 compileUnCompiledProperty(compiler, properties, classReg);
127 let classScope = <Scope>compiler.getRecorder().getScopeOfNode(stmt);
161 compiler.popScope();
200 export function compileDefaultConstructor(compiler: Compiler, ctrNode: ts.ConstructorDeclaration) {
207 compileSuperCall(compiler, callNode, [], true);
208 compileConstructor(compiler, ctrNode, false);
211 function compileUnCompiledProperty(compiler: Compiler, properties: Property[], classReg: VReg) {
212 let pandaGen = compiler.getPandaGen();
221 compiler.compileExpression(<ts.Expression>prop.getValue());
225 compileUnCompiledVariable(compiler, prop, classReg);
229 compiler.compileExpression((<ts.ComputedPropertyName>prop.getName()).expression);
231 compileComputedProperty(compiler, prop, classReg, keyReg);
234 setClassAccessor(pandaGen, compiler, classReg, prop);
242 function compileUnCompiledVariable(compiler: Compiler, prop: Property, classReg: VReg) {
243 let pandaGen = compiler.getPandaGen();
249 …flag = createClassMethodOrAccessor(compiler, classReg, proptoReg, tmpReg, <ts.MethodDeclaration>pr…
251 compiler.compileExpression(<ts.Expression | ts.Identifier>prop.getValue());
252 … flag = setPrototypeAttributes(compiler, prop.getValue().parent, classReg, proptoReg, tmpReg);
261 function createClassLiteralBuf(compiler: Compiler, classBuffer: LiteralBuffer,
265 let ctorNode = compiler.getRecorder().getCtorOfClass(stmt);
266 …let internalName = compiler.getCompilerDriver().getInternalNameForCtor(stmt, <ts.ConstructorDeclar…
268 let pandaGen = compiler.getPandaGen();
274 export function compileDefaultInitClassMembers(compiler: Compiler, node: ts.ConstructorDeclaration)…
275 let pandaGen = compiler.getPandaGen();
286 compiler.getThis(node, thisReg);
288 compiler.compileExpression(decl.initializer);
304 compiler.compileExpression(decl.name.expression);
322 export function compileReturnThis4Ctor(compiler: Compiler, node: ts.ConstructorDeclaration, unreach…
323 let pandaGen = compiler.getPandaGen();
330 compiler.getThis(node, thisReg);
333 checkValidUseSuperBeforeSuper(compiler, node);
339 export function compileConstructor(compiler: Compiler, node: ts.ConstructorDeclaration, unreachable…
340 let pandaGen = compiler.getPandaGen();
346 let lref = LReference.generateLReference(compiler, decl.name, true);
348 compiler.compileExpression(decl.initializer);
360 compiler.getThis(node, thisReg);
362 checkValidUseSuperBeforeSuper(compiler, node);
368 export function compileSuperCall(compiler: Compiler, node: ts.CallExpression, args: VReg[], hasSpre…
369 let pandaGen = compiler.getPandaGen();
373 … createArrayFromElements(node, compiler, <ts.NodeArray<ts.Expression>>node.arguments, argArray);
374 loadCtorObj(node, compiler);
379 loadCtorObj(node, compiler);
386 checkValidUseSuperBeforeSuper(compiler, node);
391 compiler.setThis(node);
394 function loadCtorObj(node: ts.CallExpression, compiler: Compiler) {
395 let recorder = compiler.getRecorder();
396 let pandaGen = compiler.getPandaGen();
479 function compileHeritageClause(compiler: Compiler, node: ts.ClassLikeDeclaration) {
480 let pandaGen = compiler.getPandaGen();
486 compiler.compileExpression(exp.expression);
629 function compileComputedProperty(compiler: Compiler, prop: Property, classReg: VReg, keyReg: VReg) {
630 let pandaGen = compiler.getPandaGen();
635 compiler.compileExpression(initializer);
643 …let flag = createClassMethodOrAccessor(compiler, classReg, protoReg, tmpReg, <ts.MethodDeclaration…
652 … let getFlag = createClassMethodOrAccessor(compiler, classReg, getProtoReg, accessorReg, getter);
661 … let setFlag = createClassMethodOrAccessor(compiler, classReg, setProtoReg, accesReg, setter);
672 function setClassAccessor(pandaGen: PandaGen, compiler: Compiler, objReg: VReg, prop: Property) {
685 flag = createClassMethodOrAccessor(compiler, objReg, tmpVreg, getterReg, getter);
690 flag = createClassMethodOrAccessor(compiler, objReg, tmpVreg, setterReg, setter);
707 function createClassMethodOrAccessor(compiler: Compiler, classReg: VReg, propReg: VReg, storeReg: V…
709 let pandaGen = compiler.getPandaGen();
711 createMethodOrAccessor(pandaGen, compiler, classReg, node);
719 createMethodOrAccessor(pandaGen, compiler, propReg, node);
742 export function setPrototypeAttributes(compiler: Compiler, node: ts.Node, classReg: VReg, propReg: …
743 let pandaGen = compiler.getPandaGen();
795 export function compileSuperProperty(compiler: Compiler, expr: ts.Expression, thisReg: VReg, prop: …
796 checkValidUseSuperBeforeSuper(compiler, expr);
797 let pandaGen = compiler.getPandaGen();
798 compiler.getThis(expr, thisReg);
803 export function checkValidUseSuperBeforeSuper(compiler: Compiler, node: ts.Node) {
804 let pandaGen = compiler.getPandaGen();
812 compiler.getThis(node, thisReg);