feat: 注入 harness 并补齐关键全局内建
This commit is contained in:
@@ -187,6 +187,15 @@ fn array_empty_literal() {
|
||||
assert_eq!(obj.prop_count(), 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn array_is_array_static_method() {
|
||||
let (_vm, result) = eval("Array.isArray([])").unwrap();
|
||||
assert_eq!(result, JsValue::bool(true));
|
||||
|
||||
let (_vm, result) = eval("Array.isArray({})").unwrap();
|
||||
assert_eq!(result, JsValue::bool(false));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn array_shift_removes_first() {
|
||||
let (_vm, result) = eval("[1,2,3].shift()").unwrap();
|
||||
|
||||
@@ -36,7 +36,7 @@ fn function_to_string_includes_function() {
|
||||
let result = eval(&mut vm, "Math.max.toString()").unwrap();
|
||||
assert!(result.is_string());
|
||||
let rendered = vm.kernel().string_forge().lookup(result.as_string_index()).unwrap_or_default();
|
||||
assert!(rendered.contains("function"), "got: {}", rendered);
|
||||
assert_eq!(rendered, "function max() { [native code] }");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -76,3 +76,10 @@ fn division_by_zero_gives_infinity() {
|
||||
assert!(result.is_double());
|
||||
assert!(result.as_double().is_infinite());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn global_this_points_to_global_object() {
|
||||
let result = eval("globalThis.Object === Object").unwrap();
|
||||
assert!(result.is_bool());
|
||||
assert!(result.as_bool());
|
||||
}
|
||||
|
||||
@@ -37,6 +37,18 @@ fn object_assign_copies() {
|
||||
assert!(result.is_object());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn object_is_uses_same_value_semantics() {
|
||||
let (_vm, result) = eval("Object.is(NaN, NaN)").unwrap();
|
||||
assert_eq!(result, JsValue::bool(true));
|
||||
|
||||
let (_vm, result) = eval("Object.is(1, 1)").unwrap();
|
||||
assert_eq!(result, JsValue::bool(true));
|
||||
|
||||
let (_vm, result) = eval("Object.is(1, '1')").unwrap();
|
||||
assert_eq!(result, JsValue::bool(false));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn object_get_own_property_descriptor_value() {
|
||||
let (_vm, result) = eval("Object.getOwnPropertyDescriptor({a:1},'a')").unwrap();
|
||||
|
||||
Reference in New Issue
Block a user