Skip to content

Commit 6a65984

Browse files
authored
Merge pull request #1828 from Agoric/mfig/repl-robustness
fix(cosmic-swingset): make REPL history numbers more robust
2 parents 0cba48f + ed7729a commit 6a65984

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

packages/cosmic-swingset/lib/ag-solo/vats/captp.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ export const getCapTPHandler = (
99
fallback = undefined,
1010
) => {
1111
const chans = new Map();
12-
const doFallback = (method, ...args) =>
13-
E(fallback)
14-
[method](...args)
15-
.catch(_ => {});
12+
const doFallback = async (method, ...args) => {
13+
if (!fallback) {
14+
return {};
15+
}
16+
return E(fallback)[method](...args);
17+
};
1618
const handler = harden({
1719
onOpen(obj, meta) {
1820
const { channelHandle, origin = 'unknown' } = meta || {};

packages/cosmic-swingset/lib/ag-solo/vats/repl.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import { isPromise } from '@agoric/promise-kit';
44
import { E } from '@agoric/eventual-send';
55

6+
import Nat from '@agoric/nat';
67
import makeUIAgentMakers from './ui-agent';
78

89
// A REPL-specific JSON stringify.
@@ -190,6 +191,7 @@ export function getReplHandler(replObjects, send, vatPowers) {
190191
doEval(obj, _meta) {
191192
const { number: histnum, body } = obj;
192193
console.debug(`doEval`, histnum, body);
194+
Nat(histnum);
193195
if (histnum <= highestHistory) {
194196
throw new Error(
195197
`histnum ${histnum} is not larger than highestHistory ${highestHistory}`,
@@ -250,10 +252,10 @@ export function getReplHandler(replObjects, send, vatPowers) {
250252
},
251253

252254
onMessage(obj, meta) {
253-
if (handler[obj.type]) {
254-
return handler[obj.type](obj, meta);
255+
if (!handler[obj.type]) {
256+
return false;
255257
}
256-
return false;
258+
return handler[obj.type](obj, meta);
257259
},
258260
});
259261

packages/cosmic-swingset/lib/ag-solo/web.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export async function makeHTTPListener(basedir, port, host, rawInboundCommand) {
6666
'from',
6767
JSON.stringify(obj, undefined, 2),
6868
);
69-
throw (err && err.message) || JSON.stringify(err);
69+
throw (err && err.message) || err;
7070
});
7171
};
7272

0 commit comments

Comments
 (0)