--- dabe9a3dd556302ca57c1791fe4b327df3deb8b1/js/src/vm/Opcodes.h
+++ 86b58aa0124b1eda1360fafaf55ee17d27b7fa20/js/src/vm/Opcodes.h
@@ -1508,17 +1508,18 @@
* `index` are still incremented.
*
* This never calls setters or proxy traps.
*
* `array` must be an Array object created by `JSOp::NewArray` and never used
* except by `JSOp::InitElemArray` and `JSOp::InitElemInc`.
*
* `index` must be an integer, `0 <= index <= INT32_MAX`. If `index` is
- * `INT32_MAX`, this throws a RangeError.
+ * `INT32_MAX`, this throws a RangeError. Unlike `InitElemArray`, it is not
+ * necessary that the `array` length > `index`.
*
* This instruction is used when an array literal contains a
* *SpreadElement*. In `[a, ...b, c]`, `InitElemArray 0` is used to put
* `a` into the array, but `InitElemInc` is used for the elements of `b`
* and for `c`.
*
* Implements: Several steps in [ArrayAccumulation][1] that call
* CreateDataProperty, set the array length, and/or increment *nextIndex*.
Files
/js/src/vm/Opcodes.h
Changesets
Diffs
/js/src/vm/Opcodes.h