chromium/third_party/blink/web_tests/external/wpt/html/canvas/element/manual/filters/tentative/idl-conversions/canvas-filter-long-conversion.html

<head>
    <link rel="match" href="canvas-filter-long-conversion-expected.html">
</head>
<body>
  <canvas id="canvas" width="300" height="300"></canvas>
</body>
<script>
  // Test the built-in ECMAScript types Undefined, Null, Boolean, String, Number, and Object
  // as input to the CanvasFilter resolver when a long is the intended result.
  var ctx = document.getElementById('canvas').getContext('2d');

  // Null, False and [] evaluate to zero
  ctx.filter  = new CanvasFilter({filter: "gaussianBlur", stdDeviation: null});
  ctx.fillRect(10, 10, 30, 30);
  ctx.filter  = new CanvasFilter({filter: "gaussianBlur", stdDeviation: false});
  ctx.fillRect(50, 10, 30, 30);
  ctx.filter  = new CanvasFilter({filter: "gaussianBlur", stdDeviation: []});
  ctx.fillRect(90, 10, 30, 30);
  // True evaluates to one
  ctx.filter  = new CanvasFilter({filter: "gaussianBlur", stdDeviation: true});
  ctx.fillRect(130, 10, 30, 30);
  // String, Number and Object should all work
  ctx.filter  = new CanvasFilter({filter: "gaussianBlur", stdDeviation: "5"});
  ctx.fillRect(10, 50, 30, 30);
  ctx.filter  = new CanvasFilter({filter: "gaussianBlur", stdDeviation: 5});
  ctx.fillRect(50, 50, 30, 30);
  ctx.filter  = new CanvasFilter({filter: "gaussianBlur", stdDeviation: { valueOf() { return 5; }}});
  ctx.fillRect(90, 50, 30, 30);
  // Valid sequence
  ctx.filter  = new CanvasFilter({filter: "gaussianBlur", stdDeviation: [5]});
  ctx.fillRect(130, 50, 30, 30);

  // Undefined and other inputs that throw exceptions are tested in:
  // html/canvas/element/filters/2d.filter.canvasFilterObject.blur.exceptions.html
</script>