diff --git a/scripts/core/engine.js b/scripts/core/engine.js index 7db07a72..dc10f2e1 100644 --- a/scripts/core/engine.js +++ b/scripts/core/engine.js @@ -509,7 +509,11 @@ function actor_prep(actor, send) { } function actor_send(actor, message) { - if (!is_actor(actor)) throw new Error(`Must send to an actor object. Attempted send to ${json.encode(actor)}`) + if (actor[HEADER] && !actor[HEADER].replycc) // attempting to respond to a message but sender is not expecting; silently drop + return + + if (!is_actor(actor) ) throw new Error(`Must send to an actor object. Attempted send to ${json.encode(actor)}`) + if (typeof message !== 'object') throw new Error('Must send an object record.') // message to self diff --git a/tests/sdl_video.js b/tests/sdl_video.js index 266de047..ce33803a 100644 --- a/tests/sdl_video.js +++ b/tests/sdl_video.js @@ -19,7 +19,7 @@ send(act, {kind:"window", op: "create"}, ({id}) => { renderer = id console.log(`made renderer with id ${id}`) - send(act, {kind:"renderer", id: renderer, op:"set", prop: "drawColor", value:[0.6,0.4,0.5,1]}, handle_response) + send(act, {kind:"renderer", id: renderer, op:"set", prop: "drawColor", value:[0.6,0.4,0.5,1]}) send(act, {kind:"renderer", id: renderer, op:"clear"}, handle_response) send(act, {kind:"renderer", id: renderer, op: "present"}, handle_response) })