# Differences between \`RunSuspendedContext\` and \`RunCallerContext\` resumption value passing

**URL:** <https://es.discourse.group/t/differences-between-runsuspendedcontext-and-runcallercontext-resumption-value-passing/2617>\
**Category:** I have questions\
**Created:** [July 2, 2026, 10:27am UTC](https://es.discourse.group/t/differences-between-runsuspendedcontext-and-runcallercontext-resumption-value-passing/2617 "2026-07-02T10:27:29Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![John-Clint](https://avatars.discourse-cdn.com/v4/letter/j/a88e4f/32.png) [@John-Clint](https://es.discourse.group/u/John-Clint)\
**Post date:** [July 2, 2026, 10:27am UTC](https://es.discourse.group/t/differences-between-runsuspendedcontext-and-runcallercontext-resumption-value-passing/2617/1 "2026-07-02T10:27:29Z")

</div>

Both [RunSuspendedContext](https://tc39.es/ecma262/#sec-runsuspendedcontext) and [RunCallerContext](https://tc39.es/ecma262/#sec-runcallercontext) have the following text in their description:

> It resumes X context (sending it Y as the resumption value)

X and Y are different, but the point is that both resume a context with a given resumption value.

Given that, I'll expect them both to pass the resumption value to the resumed context in the same way, but that isn't the case. `RunSuspendedContext` says in step 4:

> Resume the suspended evaluation of `context` using `completionRecord` as the result of the operation that suspended it.

And `RunCallerContext` says in step 4:

> Resume `callerContext`, passing [NormalCompletion](https://tc39.es/ecma262/#sec-normalcompletion)(`value`)

Other than `value` not being a `CompletionRecord` so it needs to be wrapped in `NormalCompletion`, why are both texts different? Is there any difference between how both pass their respective resumption value to the resumed context?

---

<div class="post-metadata">

**Author:** ![jmdyck](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/jmdyck/32/796_2.png) [@jmdyck](https://es.discourse.group/u/jmdyck)\
**Post date:** [July 2, 2026, 6:48pm UTC](https://es.discourse.group/t/differences-between-runsuspendedcontext-and-runcallercontext-resumption-value-passing/2617/2 "2026-07-02T18:48:32Z")

</div>

Each of them is factored out from multiple chunks of pseudocode, and (pretty much) preserves the wording used in those chunks. (So you could have asked the same question of the pre-existing pseudocode.) Note that PR #2962 will normalize the wording.

> Is there any difference between how both pass their respective resumption value to the resumed context?

Not as far as the spec is concerned, but an implementation might handle them differently.
