24 lines
452 B
JavaScript
24 lines
452 B
JavaScript
|
'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
|
||
|
}
|
||
|
}
|
||
|
}
|