JSApplePayShippingMethodSelectedEventCustom.cpp [plain text]
#include "config.h"
#include "JSApplePayShippingMethodSelectedEvent.h"
#if ENABLE(APPLE_PAY)
#include <runtime/IdentifierInlines.h>
#include <runtime/JSCJSValueInlines.h>
#include <runtime/ObjectConstructor.h>
#include <runtime/StructureInlines.h>
using namespace JSC;
namespace WebCore {
static JSValue toJS(ExecState& state, const PaymentRequest::ShippingMethod& shippingMethod)
{
JSObject* object = constructEmptyObject(&state);
object->putDirect(state.vm(), Identifier::fromString(&state, "label"), jsString(&state, shippingMethod.label));
object->putDirect(state.vm(), Identifier::fromString(&state, "detail"), jsString(&state, shippingMethod.detail));
StringBuilder amountString;
amountString.appendNumber(shippingMethod.amount / 100);
amountString.appendLiteral(".");
unsigned decimals = shippingMethod.amount % 100;
if (decimals < 10)
amountString.appendLiteral("0");
amountString.appendNumber(decimals);
object->putDirect(state.vm(), Identifier::fromString(&state, "amount"), jsString(&state, amountString.toString()));
object->putDirect(state.vm(), Identifier::fromString(&state, "identifier"), jsString(&state, shippingMethod.identifier));
return object;
}
JSValue JSApplePayShippingMethodSelectedEvent::shippingMethod(ExecState& exec) const
{
if (!m_shippingMethod)
m_shippingMethod.set(exec.vm(), this, toJS(exec, wrapped().shippingMethod()));
return m_shippingMethod.get();
}
}
#endif