function CallSite(receiver, fun, pos, strict_mode) {
  // For wasm frames, receiver is the wasm object and fun is the function index
  // instead of an actual function.
  if (!IS_FUNCTION(fun) && !%IsWasmObject(receiver)) {
    throw MakeTypeError(kCallSiteExpectsFunction, typeof receiver, typeof fun);
  }

  if (IS_UNDEFINED(new.target)) {
    return new CallSite(receiver, fun, pos, strict_mode);
  }

  if (IS_FUNCTION(fun)) {
    SET_PRIVATE(this, callSiteReceiverSymbol, receiver);
    SET_PRIVATE(this, callSiteFunctionSymbol, fun);
  } else {
    SET_PRIVATE(this, callSiteWasmObjectSymbol, receiver);
    SET_PRIVATE(this, callSiteWasmFunctionIndexSymbol, TO_UINT32(fun));
  }
  SET_PRIVATE(this, callSitePositionSymbol, TO_INT32(pos));
  SET_PRIVATE(this, callSiteStrictSymbol, TO_BOOLEAN(strict_mode));
}
function CallSite(receiver, fun, pos, strict_mode) {
  
  
  if (!IS_FUNCTION(fun) && !%IsWasmObject(receiver)) {
    throw MakeTypeError(kCallSiteExpectsFunction, typeof receiver, typeof fun);
  }

  if (IS_UNDEFINED(new.target)) {
    return new CallSite(receiver, fun, pos, strict_mode);
  }

  if (IS_FUNCTION(fun)) {
    SET_PRIVATE(this, callSiteReceiverSymbol, receiver);
    SET_PRIVATE(this, callSiteFunctionSymbol, fun);
  } else {
    SET_PRIVATE(this, callSiteWasmObjectSymbol, receiver);
    SET_PRIVATE(this, callSiteWasmFunctionIndexSymbol, TO_UINT32(fun));
  }
  SET_PRIVATE(this, callSitePositionSymbol, TO_INT32(pos));
  SET_PRIVATE(this, callSiteStrictSymbol, TO_BOOLEAN(strict_mode));
}
function CallSite ( receiver , fun , pos , strict_mode ) { // For wasm frames, receiver is the wasm object and fun is the function index // instead of an actual function. if ( ! IS_FUNCTION ( fun ) && ! % IsWasmObject ( receiver ) ) { throw MakeTypeError ( kCallSiteExpectsFunction , typeof receiver , typeof fun ) ; } if ( IS_UNDEFINED ( new . target ) ) { return new CallSite ( receiver , fun , pos , strict_mode ) ; } if ( IS_FUNCTION ( fun ) ) { SET_PRIVATE ( this , callSiteReceiverSymbol , receiver ) ; SET_PRIVATE ( this , callSiteFunctionSymbol , fun ) ; } else { SET_PRIVATE ( this , callSiteWasmObjectSymbol , receiver ) ; SET_PRIVATE ( this , callSiteWasmFunctionIndexSymbol , TO_UINT32 ( fun ) ) ; } SET_PRIVATE ( this , callSitePositionSymbol , TO_INT32 ( pos ) ) ; SET_PRIVATE ( this , callSiteStrictSymbol , TO_BOOLEAN ( strict_mode ) ) ; }
---------------------------------------------------------------------------- Error implementation
---------------------------------------------------------------------------- Error implementation