JSTimers is not a registered callable module

This can happen if you have two versions of react-native installed. I use yarn to install dependencies, and normally fix this by adding a resolutions section to my package.json:

{
...
  "dependencies": {
...
    "react": "16.9.0",
    "react-native": "0.61.5",
...
  },
...
  "resolutions": {
    "@types/react": "16.9.0",
    "react": "16.9.0",
    "react-native": "0.61.5"
  },
  "devDependencies": {
...
    "@types/react": "^16.9.0",
...
  },
...
}

Make certain that the versions are consistent — otherwise multiple versions may end up installed by react and some of those versions will not be able to connect to the native dependencies, resulting in an error like JSTimers is not a registered callable module or Module RCTDeviceEventEmitter is not a registered callable module.

Passing a Language through the Eye of a Needle

Roberto wrote a nice article on the design choices behind Lua. It discusses why coroutines, pcall, and other features of the language work the way they do.

http://queue.acm.org/detail.cfm?id=1983083

In this article we discuss how embeddability can impact the design of a language, and in particular how it impacted the design of Lua from day one. Lua3,4 is a scripting language with a particularly strong emphasis on embeddability. It has been embedded in a wide range of applications and is a leading language for scripting games.