Skip to main content

resolve_maybe_thenable

Function resolve_maybe_thenable 

Source
pub(crate) fn resolve_maybe_thenable(
    it: &mut Interp,
    item: &Value,
) -> Option<Rc<RefCell<PromiseState>>>
Expand description

値を「Promise 化した状態」に正規化する共通ヘルパ。本物の Promise ならその state、汎用 thenable(.then を持つがそれ自体は Promise ではないオブジェクト。 Promise.resolve/await は同化に対応済みだったが allSettled/race/any の 配列要素だけ「非 Promise」として素通ししてしまう非対称なバグがあった)なら 新規 pending state を作って promise_resolve(thenable 同化に対応済み)に通す。 どちらでもなければ None(呼び出し側は元の値をそのまま扱う)。