--- /dev/null
+'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
+ }
+ }
+}