fix: Date 多参构造年 0-99 按规范映射到 1900-1999

This commit is contained in:
2026-08-16 10:58:50 +08:00
parent e97473c8ad
commit afa79aa5fb
2 changed files with 18 additions and 0 deletions
@@ -326,6 +326,18 @@ fn date_constructor_truncation() {
assert_eq!(r.as_double(), 5.0);
}
#[test]
fn date_constructor_two_digit_year_maps_to_1900s() {
let mut vm = Vm::new();
// 多参构造年 0..99 按规范映射到 1900..1999;100 起不再调整。
let r = eval(&mut vm, "new Date(0, 0).getFullYear()").unwrap();
assert_eq!(r.as_double(), 1900.0);
let r = eval(&mut vm, "new Date(99, 0).getFullYear()").unwrap();
assert_eq!(r.as_double(), 1999.0);
let r = eval(&mut vm, "new Date(100, 0).getFullYear()").unwrap();
assert_eq!(r.as_double(), 100.0);
}
#[test]
fn date_setters_return_timestamp() {
let mut vm = Vm::new();