feat: Date 时区修复 + setUTC* 方法 + Date.UTC 实现

This commit is contained in:
2026-06-27 19:03:46 +08:00
parent e7a0d5aa16
commit a75748bff9
3 changed files with 557 additions and 44 deletions
+57
View File
@@ -83,12 +83,69 @@ pub fn bind_date(core: &Arc<KernelCore>, session: &KernelSession, global: &mut J
oxide_builtins::date::date_set_milliseconds::<crate::vm::Vm> as *const (),
1,
),
(
"setUTCFullYear",
oxide_builtins::date::date_set_utc_full_year::<crate::vm::Vm> as *const (),
3,
),
(
"setUTCMonth",
oxide_builtins::date::date_set_utc_month::<crate::vm::Vm> as *const (),
2,
),
(
"setUTCDate",
oxide_builtins::date::date_set_utc_date::<crate::vm::Vm> as *const (),
1,
),
(
"setUTCHours",
oxide_builtins::date::date_set_utc_hours::<crate::vm::Vm> as *const (),
4,
),
(
"setUTCMinutes",
oxide_builtins::date::date_set_utc_minutes::<crate::vm::Vm> as *const (),
3,
),
(
"setUTCSeconds",
oxide_builtins::date::date_set_utc_seconds::<crate::vm::Vm> as *const (),
2,
),
(
"setUTCMilliseconds",
oxide_builtins::date::date_set_utc_milliseconds::<crate::vm::Vm> as *const (),
1,
),
("getYear", oxide_builtins::date::date_get_year::<crate::vm::Vm> as *const (), 0),
("setYear", oxide_builtins::date::date_set_year::<crate::vm::Vm> as *const (), 1),
("toISOString", oxide_builtins::date::date_to_iso_string::<crate::vm::Vm> as *const (), 0),
("toJSON", oxide_builtins::date::date_to_json::<crate::vm::Vm> as *const (), 1),
("toString", oxide_builtins::date::date_to_string::<crate::vm::Vm> as *const (), 0),
("toDateString", oxide_builtins::date::date_to_date_string::<crate::vm::Vm> as *const (), 0),
("toTimeString", oxide_builtins::date::date_to_time_string::<crate::vm::Vm> as *const (), 0),
("toUTCString", oxide_builtins::date::date_to_utc_string::<crate::vm::Vm> as *const (), 0),
(
"toGMTString",
oxide_builtins::date::date_to_gmt_string::<crate::vm::Vm> as *const (),
0,
),
(
"toLocaleDateString",
oxide_builtins::date::date_to_locale_date_string::<crate::vm::Vm> as *const (),
0,
),
(
"toLocaleString",
oxide_builtins::date::date_to_locale_string::<crate::vm::Vm> as *const (),
0,
),
(
"toLocaleTimeString",
oxide_builtins::date::date_to_locale_time_string::<crate::vm::Vm> as *const (),
0,
),
("valueOf", oxide_builtins::date::date_value_of::<crate::vm::Vm> as *const (), 0),
],
);