This repository has been archived on 2026-09-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
OxideJS/crates/oxide_emit/src/class/header.rs
T

19 lines
605 B
Rust

//! 类头 emit:类名绑定、继承链(`extends`)设置,见 `emit_class_header`。
use crate::{CompileCtx, Emitter};
impl Emitter {
pub(crate) fn emit_class_header(
&self, class: &oxide_parser::Class, ctx: &mut CompileCtx,
) -> Result<(u32, u32, Option<u32>), String> {
let ctor_reg = ctx.alloc_reg();
let proto_reg = ctx.alloc_reg();
let super_reg = if let Some(super_expr) = &class.super_class {
Some(self.emit_expression(super_expr, ctx)?)
} else {
None
};
Ok((ctor_reg, proto_reg, super_reg))
}
}