use crate::{run_test_actions, JsNativeErrorKind, TestAction};
use indoc::indoc;
#[test]
fn ordinary_has_instance_nonobject_prototype() {
run_test_actions([TestAction::assert_native_error(
indoc! {r#"
function C() {}
C.prototype = 1
String instanceof C
"#},
JsNativeErrorKind::Type,
"function has non-object prototype in instanceof check",
)]);
}
#[test]
fn object_properties_return_order() {
run_test_actions([
TestAction::run_harness(),
TestAction::run(indoc! {r#"
var o = {
p1: 'v1',
p2: 'v2',
p3: 'v3',
};
o.p4 = 'v4';
o[2] = 'iv2';
o[0] = 'iv0';
o[1] = 'iv1';
delete o.p1;
delete o.p3;
o.p1 = 'v1';
"#}),
TestAction::assert(r#"arrayEquals(Object.keys(o), [ "0", "1", "2", "p2", "p4", "p1" ])"#),
TestAction::assert(
r#"arrayEquals(Object.values(o), [ "iv0", "iv1", "iv2", "v2", "v4", "v1" ])"#,
),
]);
}