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.
Data-binding, with a beautiful declarative syntax.
Event handling that doesn't make you tear your hair out.
Flexible and performant animations and transitions.
And much more!
Ractive was originally created at theguardian.com to produce news applications. A typical news app is heavily interactive, combines HTML and SVG, and is developed under extreme deadline pressure. It has to work reliably across browsers, and perform well even on mobile devices.
Ractive was initially created to tackle the data binding problem in a more elegant way. We on the Guardian interactive team are acutely aware of the challenges of creating app-like experiences on the web;
Key features like two-way binding, animations, and SVG support are provided out-of-the-box, and custom functionality can be easily added via plugins.
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