mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-25 03:01:12 +08:00
docs: 内建绑定连线组注释改写与断链修复
This commit is contained in:
@@ -9,6 +9,13 @@ mod world;
|
||||
pub use methods::{ArrayMethods, ErrorMethods, FunctionMethods, ObjectMethods, RegExpMethods, StringMethods};
|
||||
pub use world::{BuiltinWorld, FnWrapperKey};
|
||||
|
||||
/// 把一个 native 方法绑定到目标对象:构造(或复用)wrapper 函数对象,以
|
||||
/// `$name` 为属性名写入目标对象的命名属性区。
|
||||
///
|
||||
/// `$world` 是 wrapper 归属的 `BuiltinWorld`(wrapper 原型取自它的
|
||||
/// Function.prototype,本体登记进它的释放登记表,选择性重建时按键复用);
|
||||
/// `$sf` / `$sh` 为字符串 / 形状 interner;`$nargs` 是 native 函数形式参数
|
||||
/// 个数,写入 wrapper 的 `length` 属性。
|
||||
#[macro_export]
|
||||
macro_rules! bind_method {
|
||||
($world:expr, $target:expr, $sf:expr, $sh:expr, $name:literal, $func:expr, $nargs:expr) => {{
|
||||
@@ -19,6 +26,8 @@ macro_rules! bind_method {
|
||||
}};
|
||||
}
|
||||
|
||||
/// 批量绑定一组 native 方法,条目形如 `(名称, 函数指针, 参数个数)`;
|
||||
/// 逐条展开为 `bind_method!`。
|
||||
#[macro_export]
|
||||
macro_rules! bind_methods {
|
||||
($world:expr, $target:expr, $sf:expr, $sh:expr,
|
||||
@@ -27,6 +36,10 @@ macro_rules! bind_methods {
|
||||
};
|
||||
}
|
||||
|
||||
/// `bind_methods!` 的静态版本:初始化阶段调用,显式传入 `$world`(宏展开到
|
||||
/// `BuiltinWorld::bind_method_static` / `bind_method_labeled_static`)。
|
||||
/// 第二形态多一个 `$label`(绑定站点标签):非 P 目标上同名方法槽
|
||||
/// (Generator / AsyncGenerator 原型的 next / return / throw)靠它区分。
|
||||
#[macro_export]
|
||||
macro_rules! bind_methods_static {
|
||||
($target:expr, $sf:expr, $sh:expr, $world:expr,
|
||||
|
||||
Reference in New Issue
Block a user