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

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

    var success = trap.call(this.handler, this.target);
    success = !!success; // coerce to Boolean
    if (success) {
      if (!Object_isSealed(this.target)) {
        throw new TypeError("can't report non-sealed object as sealed: "+
                            this.target);
      }
    }
    return success;
  }
function ( ) { var trap = this . getTrap ( "seal" ) ; if ( trap === undefined ) { // default forwarding behavior return Reflect . seal ( this . target ) ; } var success = trap . call ( this . handler , this . target ) ; success = ! ! success ; // coerce to Boolean if ( success ) { if ( ! Object_isSealed ( this . target ) ) { throw new TypeError ( "can't report non-sealed object as sealed: " + this . target ) ; } } return success ; }
On success, check whether the target object is indeed sealed.
On success check whether the target object is indeed sealed .