<!doctype html>
<script>
window.onmessage = (e) => {
  const paymentArgs = [[{supportedMethods: 'foo'}], {total: {label: 'label', amount: {currency: 'USD', value: '5.00'}}}];

  if (e.data === 'What is the result of new PaymentRequest(...)?') {
    const result = {urlQuery: location.search.substring(1)}; // Used to distinguish subtests
    try {
      new PaymentRequest(...paymentArgs);
      result.message = 'Success';
      e.source.postMessage(result, '*');
    } catch(ex) {
      result.message = 'Exception';
      const isDomException = ex instanceof DOMException;
      const stack = "stack" in ex ? ex.stack : "";
      result.details = [ isDomException, ex.code, ex.name, stack ];
      e.source.postMessage(result, '*');
    }
  } else {
    result.message = 'Incorrect message';
    e.source.postMessage(result, '*');
  }
}
</script>
<p>This page echos the result of new PaymentRequest(...).</p>
