From 49434ff9cec1a2dfd8083def2480c0fa69ca0edd Mon Sep 17 00:00:00 2001 From: ParthMozarkar Date: Sun, 22 Mar 2026 16:41:59 +0530 Subject: [PATCH 1/5] test: add edge case coverage for Array.prototype.find --- core/engine/src/object/tests.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/core/engine/src/object/tests.rs b/core/engine/src/object/tests.rs index e0e2c0e15d4..eca551f3b88 100644 --- a/core/engine/src/object/tests.rs +++ b/core/engine/src/object/tests.rs @@ -38,3 +38,26 @@ fn object_properties_return_order() { ), ]); } + +#[test] +fn array_prototype_find_edge_cases() { + run_test_actions([ + TestAction::run_harness(), + TestAction::assert("[].find(x => x === 1) === undefined"), + TestAction::assert("[1, 2, 3].find(x => x === 99) === undefined"), + TestAction::assert("[1, 2, 1].find(x => x === 1) === 1"), + TestAction::assert(indoc! {r#" + var obj = { name: "Alice" }; + [obj].find(x => x.name === "Alice") === obj + "#}), + TestAction::assert(indoc! {r#" + var idx = -1; + [10, 20, 30].find((v, i) => { idx = i; return v === 20; }); + idx === 1 + "#}), + TestAction::assert(indoc! {r#" + let arr = [1, , 3]; + arr.find(x => x === undefined) === undefined + "#}), + ]); +} \ No newline at end of file From ddae0b535b3193d38c8ab8f4378067a626bb6e45 Mon Sep 17 00:00:00 2001 From: ParthMozarkar Date: Sun, 22 Mar 2026 16:44:00 +0530 Subject: [PATCH 2/5] chore: format tests.rs --- core/engine/src/object/tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/engine/src/object/tests.rs b/core/engine/src/object/tests.rs index eca551f3b88..51f04e557e3 100644 --- a/core/engine/src/object/tests.rs +++ b/core/engine/src/object/tests.rs @@ -60,4 +60,4 @@ fn array_prototype_find_edge_cases() { arr.find(x => x === undefined) === undefined "#}), ]); -} \ No newline at end of file +} From 1ecca3782417bd5278381bb9bca8da7f22839b1c Mon Sep 17 00:00:00 2001 From: ParthMozarkar Date: Mon, 23 Mar 2026 00:40:42 +0530 Subject: [PATCH 3/5] test: move Array.prototype.find edge cases to correct test file --- core/engine/src/builtins/array/tests.rs | 23 +++++++++++++++++++++++ core/engine/src/object/tests.rs | 23 ----------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/core/engine/src/builtins/array/tests.rs b/core/engine/src/builtins/array/tests.rs index 7f8d2d98f72..ee594fbb1e6 100644 --- a/core/engine/src/builtins/array/tests.rs +++ b/core/engine/src/builtins/array/tests.rs @@ -962,3 +962,26 @@ fn array_of_neg_zero() { TestAction::assert("arr.every(x => (1/x) === -Infinity)"), ]); } + +#[test] +fn array_prototype_find_edge_cases() { + run_test_actions([ + TestAction::run_harness(), + TestAction::assert("[].find(x => x === 1) === undefined"), + TestAction::assert("[1, 2, 3].find(x => x === 99) === undefined"), + TestAction::assert("[1, 2, 1].find(x => x === 1) === 1"), + TestAction::assert(indoc! {r#" + var obj = { name: "Alice" }; + [obj].find(x => x.name === "Alice") === obj + "#}), + TestAction::assert(indoc! {r#" + var idx = -1; + [10, 20, 30].find((v, i) => { idx = i; return v === 20; }); + idx === 1 + "#}), + TestAction::assert(indoc! {r#" + let arr = [1, , 3]; + arr.find(x => x === undefined) === undefined + "#}), + ]); +} diff --git a/core/engine/src/object/tests.rs b/core/engine/src/object/tests.rs index 51f04e557e3..e0e2c0e15d4 100644 --- a/core/engine/src/object/tests.rs +++ b/core/engine/src/object/tests.rs @@ -38,26 +38,3 @@ fn object_properties_return_order() { ), ]); } - -#[test] -fn array_prototype_find_edge_cases() { - run_test_actions([ - TestAction::run_harness(), - TestAction::assert("[].find(x => x === 1) === undefined"), - TestAction::assert("[1, 2, 3].find(x => x === 99) === undefined"), - TestAction::assert("[1, 2, 1].find(x => x === 1) === 1"), - TestAction::assert(indoc! {r#" - var obj = { name: "Alice" }; - [obj].find(x => x.name === "Alice") === obj - "#}), - TestAction::assert(indoc! {r#" - var idx = -1; - [10, 20, 30].find((v, i) => { idx = i; return v === 20; }); - idx === 1 - "#}), - TestAction::assert(indoc! {r#" - let arr = [1, , 3]; - arr.find(x => x === undefined) === undefined - "#}), - ]); -} From c056a0dacc436934c31bfa8ca6b78d07fb6f1bbc Mon Sep 17 00:00:00 2001 From: ParthMozarkar Date: Mon, 23 Mar 2026 00:48:31 +0530 Subject: [PATCH 4/5] test: move Array.prototype.find edge cases to correct test file --- core/engine/src/builtins/array/tests.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/core/engine/src/builtins/array/tests.rs b/core/engine/src/builtins/array/tests.rs index ee594fbb1e6..5090c4c5146 100644 --- a/core/engine/src/builtins/array/tests.rs +++ b/core/engine/src/builtins/array/tests.rs @@ -985,3 +985,4 @@ fn array_prototype_find_edge_cases() { "#}), ]); } + From 431ba88e8c62ea2eefd85a02539a2014822cad1f Mon Sep 17 00:00:00 2001 From: ParthMozarkar Date: Mon, 23 Mar 2026 00:50:01 +0530 Subject: [PATCH 5/5] chore: format array tests --- core/engine/src/builtins/array/tests.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/core/engine/src/builtins/array/tests.rs b/core/engine/src/builtins/array/tests.rs index 5090c4c5146..ee594fbb1e6 100644 --- a/core/engine/src/builtins/array/tests.rs +++ b/core/engine/src/builtins/array/tests.rs @@ -985,4 +985,3 @@ fn array_prototype_find_edge_cases() { "#}), ]); } -