diff --git a/rhino/src/main/java/org/mozilla/javascript/AbstractEcmaObjectOperations.java b/rhino/src/main/java/org/mozilla/javascript/AbstractEcmaObjectOperations.java
index 2dc3cfdb1..3e51ea04b 100644
--- a/rhino/src/main/java/org/mozilla/javascript/AbstractEcmaObjectOperations.java
+++ b/rhino/src/main/java/org/mozilla/javascript/AbstractEcmaObjectOperations.java
@@ -1,5 +1,10 @@
package org.mozilla.javascript;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
/**
* Abstract Object Operations as defined by EcmaScript
*
@@ -24,6 +29,11 @@ public class AbstractEcmaObjectOperations {
SEALED
}
+ enum KEY_COERCION {
+ PROPERTY,
+ COLLECTION,
+ }
+
/**
* Implementation of Abstract Object operation HasOwnProperty as defined by EcmaScript
*
@@ -232,4 +242,65 @@ public class AbstractEcmaObjectOperations {
base.put(p, o, v);
}
}
+
+ /**
+ * Implement the ECMAScript abstract operation "GroupBy" defined in section 7.3.35 of ECMA262.
+ *
+ * @param cx
+ * @param scope
+ * @param items
+ * @param callback
+ * @param keyCoercion
+ * @see
+ */
+ static Map