Hyperz Documentation > Products > Verbatim > Back End

Back End


Backend Development

Most of what Verbatim is BASED ON is using Bytenode. Here is Bytenode.

Known Issues and Limitations

  • In Node 10.x, Bytenode does not work in debug mode. See #29.

  • Any code depends on Function.prototype.toString function will break, because Bytenode removes the source code from .jsc files and puts a dummy code instead. See #34. For a workaround, see #163

  • Async Arrow Functions (and Arrow Functions in general) cause crashes in Puppeteer and in Electron apps. See #106, #47. They also cause issues with the ndb debugger. See #135. It seems that whenever there is a context change (or even when called from another file or module), arrow functions break because V8 inspects them internally using Function.prototype.toString in these cases. See #157.

  • A good issue to reference #173

require(filename) → {any}

  • Parameters:
Name Type
filename string
  • Returns:

{any} exported module content

  • Example:
let myModule = require('/path/to/your/file.jsc');

Just like regular .js modules. You can also omit the extension .jsc.

.jsc file must have been compiled using compileFile(), or have been wrapped inside Module.wrap() function. Otherwise it won't work as a module and it can NOT be required.

Please note .jsc files must run with the same Node.js version that was used to compile it (using same architecture of course). Also, .jsc files are CPU-agnostic. However, you should run your tests before and after deployment, because V8 sanity checks include some checks related to CPU supported features, so this may cause errors in some rare cases.

Was this article helpful?

17 out of 38 found this helpful