-
Notifications
You must be signed in to change notification settings - Fork 80
Home
Brian Warner edited this page Jun 30, 2020
·
8 revisions
We'll use this page to keep reports and information about compatibility (or problems) between SES and various libraries.
-
tape4.11.0 vs SES-0.7.7: must importtapebeforelockdown()(override mistake: https://github.com/Agoric/SES-shim/issues/293). -
tape5.0.0: must import beforelockdown(), but even thent.throwsfails to recognize exceptions (test always errors), maybe due to identity discontinuity -
console(Node.js builtin): mustharden(console.__proto__)before you canharden(console)or harden the global object of a new Compartment which was givenconsoleas an endowment (consoleinherits from an intermediate object rather than directly inheriting fromObject) (https://github.com/Agoric/SES-shim/issues/292) -
assert(Node.js builtin): no problems -
better-assert(npm): loads after lockdown, but explodes if a test fails:callsitemodifiesError.prepareStackTrace -
insist(npm): same asbetter-assert -
chai(npm assertions library): imports afterlockdown()fine. No stack traces unlessnoTameError.- Unrelated to SES: running under
-r esmdumps a 300KB line of esm.js source to stderr before anything else
- Unrelated to SES: running under
-
node-lmdb: cannot import afterlockdown(),bindingsmodifiesError.prepareStackTraceandError.stackTraceLimit. Workaround is toimport('node-lmdb')(for side-effects only) beforelockdown(), then import it again (for the exports) later, which doesn't have any obvious identity-discontinuity problems so far. -
brace-expansionusesMath.random(at import time) to create unlikely-to-already-exist replacement names for various punctuation marks.brace-expansionis imported byminimatch, which is imported byglob, which is imported bytemp. -
tempusesMath.random(at runtime) to generate random filenames -
depdchangesError.prepareStackTrace(at import time) to create deprecation warnings.depdis used by the popularexpressweb server framework, and themorganHTTP middleware package. See #251 for an unpleasant workaround. -
jsesc(used by babel) usesBuffer.isBufferat import time, so it won't work in non-start-compartments unless you provide a (tamed!) endowment -
babelusesprocess.envruntime, so it won't work in non-start-compartments unless you provide an endowment (an empty object is probably sufficient) -
json-merge-patchhas a dependency tree which includesdefine-properties, which fails at import time as it tries to add.getPolyfillto something (probablyObject)