- JSValue accessor = Base::get();
- ASSERT(accessor.isGetterSetter());
- JSObject* setter = asGetterSetter(accessor)->setter();
-
- if (!setter) {
- if (shouldThrow)
- throwTypeError(exec, StrictModeReadonlyPropertyWriteError);
- return;
- }
-
- CallData callData;
- CallType callType = setter->methodTable()->getCallData(setter, callData);
- MarkedArgumentBuffer args;
- args.append(value);
- if (thisValue.isObject())
- thisValue = asObject(thisValue)->methodTable()->toThisObject(asObject(thisValue), exec);
- call(exec, setter, callType, callData, thisValue, args);
+ callSetter(exec, thisValue, Base::get(), value, shouldThrow ? StrictMode : NotStrictMode);