anchor.diff:      _controller.add(new OptionChangedEvent(name, value));
   
       // Persistent the value across sessions.
  -    window.localStorage['${_namespace}.${name}'] = value;
  +    window.localStorage['${namespace}.${name}'] = value;
     }
   
     Stream<OptionChangedEvent> get onOptionChanged => _controller.stream;
  
positive.code: 
  class OptionChangedEvent {
    final String name;
    final dynamic value;
  
    OptionChangedEvent(this.name, this.value);
  
  
negative.code: /// all the available options, and `setOption` will let you change the value of
  /// an option.
  class Options {
    final String namespace;
  
    Map<String, String> _values = {};
    StreamController _controller = new StreamController.broadcast();
  
    Options({this.namespace: 'dartpad'});
  
    void installIntoJsContext() {
      Map options = {};
  
      options['setOption'] = (name, value) {
        setValue('${name}', '${value}');
      };
  
      options['listOptions'] = () {
        for (String key in keys) {
          window.console.log('[dartpad] ${key}: ${_values[key]}');
        }
      };
  
      context[namespace] = new JsObject.jsify(options);
    }
  
    void registerOption(String name, String defaultValue) {
      // Load saved value.
      String savedValue = window.localStorage['${namespace}.${name}'];
      setValue(name, savedValue == null ? defaultValue : savedValue);
    }
  
  