lib/reflect.js
function() {
    var trap = this.getTrap("freeze");
    if (trap === undefined) {
      // default forwarding behavior
      return Reflect.freeze(this.target);
    }

    var success = trap.call(this.handler, this.target);
    success = !!success; // coerce to Boolean
    if (success) {
      if (!Object_isFrozen(this.target)) {
        throw new TypeError("can't report non-frozen object as frozen: "+
                            this.target);
      }
    }
    return success;
  }
function() {
    var trap = this.getTrap("freeze");
    if (trap === undefined) {
      // default forwarding behavior
      return Reflect.freeze(this.target);
    }

    var success = trap.call(this.handler, this.target);
    success = !!success; // coerce to Boolean
    if (success) {
      if (!Object_isFrozen(this.target)) {
        throw new TypeError("can't report non-frozen object as frozen: "+
                            this.target);
      }
    }
    return success;
  }
On success, check whether the target object is indeed frozen.