anchor.diff:     * supplied it is the value of `this` for the invocation.
      */
     dynamic apply(List args, {thisArg}) {
  +    if (_isDebug){print("$this apply args:$args this:$thisArg");}
       if (thisArg == null) {
         thisArg = this;
       }
  -    if (args == null){
  +    if (args == null) {
         args = [];
       }
       return Function.apply(_function, [thisArg]..addAll(args));
     }
  -  toString()=>"JsFunction#${id}";
  +  @override
  +  toString() => "JsFunction#${id}";
   }
   
   class JsArray<E> extends JsObject with ListMixin<E> {
  
positive.code: 
    static JsObject _create(JsFunction constructor, arguments) {
      var result = new JsObject.internal().._constructor = constructor;
      constructor.apply(arguments,thisArg:result);
      return result;
    }
  
  
negative.code:   }
  
    operator [](property) {
      if (_isDebug){print("$this get['$property']");}
      var value = null;
      if (!_obj.containsKey(property)) {
        if (_constructor != null) {
          value = _constructor._getPrototypeValue(property);
        }
      } else {
        value = _obj[property];
      }
      if (value is JsProperty) {
        var propertyO = (value as JsProperty);
        if (propertyO.getter != null) {
          return propertyO.getter.apply(null, thisArg: this);
        }
        return null;
      }
      return value == _UNDEFINED ? null : value;
    }
  
    operator []=(property, value) {
      if (_isDebug){print("$this set['$property'] = '$value'");}
      var current = null;
      if (!_obj.containsKey(property)) {
        if (_constructor != null) {
          current = _constructor._getPrototypeValue(property);
        }
      } else {
        current = _obj[property];
      }
      if (current is JsProperty) {
        var property = (current as JsProperty);
        if (property.setter != null) {
          property.setter.apply([value], thisArg: this);
        }
      } else {
        _obj[property] = value;
      }
    }
  
    callMethod(String method, [List args]) {
      if (_isDebug){print("$this call-> '$method' args:$args");}
      return (this[method] as JsFunction).apply(args, thisArg: this);
    }
  
  