Skip to main content

arr_push

Function arr_push 

Source
pub(crate) fn arr_push(
    it: &mut Interp,
    t: Value,
    a: &[Value],
) -> Result<Value, Value>
Expand description

push/pop/shift/unshift は仕様上ジェネリックメソッドで、length + 添字プロパティを持つだけの非配列 array-like オブジェクトへの .call() でも 機能すべきだが、以前は this_objref で得た ObjRefObjKind::Array で なければ何もせず 0/undefined を返す静かな破壊バグだった(slice/join 等の読み取り専用メソッドで修正済みの同型バグの、書き込み系での見落とし)。 実配列は高速パス(Vec 直接操作)、それ以外は length+添字プロパティの 読み書きにフォールバックする。