whole_func_string: 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));
  }
func_code_string: 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));
  }
func_documentation_string: ---------------------------------------------------------------------------- Error implementation