Mercury leverages virtual-dom which uses an immutable vdom structure
Mercury comes with observ-struct which uses immutable data for your state atom
Mercury is truly modular, you can trivially swap out subsets of it for other modules
Mercury source code itself is maintainable, the modules it uses are all small, well tested and well documented. you should not be afraid to use mercury in production as it's easy to maintain & fix.
Mercury encourages zero dom manipulation in your application code. As far as your application is concerned elements do not exist. This means you don't need to reference DOM elements when rendering or when handling events
Mercury is a small glue layer that composes a set of modules that solves a subset of the frontend problem.
Crafty, previously known as CraftyJS, is a small, simple, and lightweight game engine that can greatly help you build prototypal or fully-featured 2D HTML5 games. Crafty is also open-source and completely free. Its code is hosted openly on GitHub.com and is distributed under the MIT or GPL license.
A Crafty.js game is build up of entities -- the player character, enemies, and obstacles are all represented this way.
Sinon provides spies, stubs, and mocks. They’re all useful as fakes in tests. They come with essential differences for what they’re helpful in doing and how they work.
Test stubs are functions (spies) with pre-programmed behavior.
They support the full test spy API in addition to methods which can be used to alter the stub’s behavior.
As spies, stubs can be either anonymous or wrap existing functions. When wrapping an existing function with a stub, the original function is not called.
var stub = sinon.stub();
npm install sinon
Video for Sinon.JS https://www.youtube.com/watch?v=SvudHPTEsIk