| 'use strict' | |
| module.exports = factory | |
| // Construct a state `toggler`: a function which inverses `property` in context | |
| // based on its current value. | |
| // The by `toggler` returned function restores that value. | |
| function factory(key, state, ctx) { | |
| return enter | |
| function enter() { | |
| var context = ctx || this | |
| var current = context[key] | |
| context[key] = !state | |
| return exit | |
| function exit() { | |
| context[key] = current | |
| } | |
| } | |
| } |