diff --git a/src/ast/nodes/shared/ArrayPrototype.ts b/src/ast/nodes/shared/ArrayPrototype.ts index a1a1d3d6912..e5ef5d37515 100644 --- a/src/ast/nodes/shared/ArrayPrototype.ts +++ b/src/ast/nodes/shared/ArrayPrototype.ts @@ -133,6 +133,8 @@ export const ARRAY_PROTOTYPE = new ObjectEntity( flat: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY, flatMap: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY, forEach: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN, + groupBy: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN, + groupByToMap: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN, includes: METHOD_RETURNS_BOOLEAN, indexOf: METHOD_RETURNS_NUMBER, join: METHOD_RETURNS_STRING, diff --git a/test/form/samples/builtin-prototypes/array-expression/_expected.js b/test/form/samples/builtin-prototypes/array-expression/_expected.js index 4fea44f0ad9..df9bd95554b 100644 --- a/test/form/samples/builtin-prototypes/array-expression/_expected.js +++ b/test/form/samples/builtin-prototypes/array-expression/_expected.js @@ -55,6 +55,14 @@ _flatMapArray[0].effect(); const _forEachArray = [{ effect() {} }]; _forEachArray.forEach(element => (element.effect = () => console.log(1))); _forEachArray[0].effect(); +[1].groupBy(() => console.log(1) || true); +const _groupByArray = [{ effect() {} }]; +_groupByArray.groupBy((_, element) => (element.effect = () => console.log(1))); +_groupByArray[0].effect(); +[1].groupByToMap(() => console.log(1) || true); +const _groupByToMapArray = [{ effect() {} }]; +_groupByToMapArray.groupBy((_, element) => (element.effect = () => console.log(1))); +_groupByToMapArray[0].effect(); [1].map(() => console.log(1) || 1); const _mapArray = [{ effect() {} }]; _mapArray.map(element => (element.effect = () => console.log(1))); diff --git a/test/form/samples/builtin-prototypes/array-expression/main.js b/test/form/samples/builtin-prototypes/array-expression/main.js index 3cf1b47ca43..3cbf65355ac 100644 --- a/test/form/samples/builtin-prototypes/array-expression/main.js +++ b/test/form/samples/builtin-prototypes/array-expression/main.js @@ -104,6 +104,18 @@ const _forEachArray = [{ effect() {} }]; _forEachArray.forEach(element => (element.effect = () => console.log(1))); _forEachArray[0].effect(); +const _groupBy = [1].groupBy(() => true); +const _groupByEffect = [1].groupBy(() => console.log(1) || true); +const _groupByArray = [{ effect() {} }]; +_groupByArray.groupBy((_, element) => (element.effect = () => console.log(1))); +_groupByArray[0].effect(); + +const _groupByToMap = [1].groupByToMap(() => true); +const _groupByToMapEffect = [1].groupByToMap(() => console.log(1) || true); +const _groupByToMapArray = [{ effect() {} }]; +_groupByToMapArray.groupBy((_, element) => (element.effect = () => console.log(1))); +_groupByToMapArray[0].effect(); + const _map = [1].map(() => 1).join(','); const _mapEffect = [1].map(() => console.log(1) || 1); const _mapArray = [{ effect() {} }];