Skip to content

messagix/bloks: support bk.action.core.Let#264

Merged
iFixRobots merged 1 commit intomainfrom
g/plat-36280
May 6, 2026
Merged

messagix/bloks: support bk.action.core.Let#264
iFixRobots merged 1 commit intomainfrom
g/plat-36280

Conversation

@iFixRobots
Copy link
Copy Markdown
Contributor

@iFixRobots iFixRobots commented May 5, 2026

Adds the missing bk.action.core.Let opcode. Without it, the Messenger Lite login flow fails on the email/password screen with tapping login button: on_touch_down: unimplemented function bk.action.core.Let (2 args) — Facebook's login script started using Let to lazy-init per-screen animation state.

Let(currentOrNull, FuncConst(initializer)): if currentOrNull evaluates to a non-null value (a previously cached value), return it; otherwise apply the FuncConst lambda in arg 1 and return its result. Implementation matches the existing Coalesce pattern plus the Apply lambda invocation.

Reproduced and verified against a real captured bundle: the on_touch_down handler now executes through to com.bloks.www.bloks.caa.login.async.send_login_request cleanly via pkg/messagix/bloks/cmd -file <bundle> -action -login.

Closes PLAT-36280.

@iFixRobots iFixRobots requested review from radon-at-beeper and tulir and removed request for radon-at-beeper May 5, 2026 23:08
@radon-at-beeper
Copy link
Copy Markdown
Collaborator

Could also implement this as a macroexpansion since the code as written is basically saying "do bk.action.bool.Or then bk.action.core.Apply". Example:

case "h9a":
// ignore second argument for now, use first & third
return i.Evaluate(ctx, &BloksScriptNode{
BloksScriptNodeContent: &BloksScriptFuncall{
Function: "bk.action.core.Apply",
Args: []BloksScriptNode{
call.Args[2],
{
BloksScriptNodeContent: &BloksScriptFuncall{
Function: "bk.action.string.EncryptPassword",
Args: []BloksScriptNode{call.Args[0]},
},
},
},
},
})

But that's not really necessary, so approving as is.

@iFixRobots iFixRobots merged commit 5a39513 into main May 6, 2026
11 checks passed
@iFixRobots iFixRobots deleted the g/plat-36280 branch May 6, 2026 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants