<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>OffscreenCanvas test: 2d.imageData.object.clamp</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>

<h1>2d.imageData.object.clamp</h1>
<p class="desc">ImageData.data clamps numbers to [0, 255]</p>


<script>
var t = async_test("ImageData.data clamps numbers to [0, 255]");
var t_pass = t.done.bind(t);
var t_fail = t.step_func(function(reason) {
    throw reason;
});
t.step(function() {

var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');

var imgdata = ctx.getImageData(0, 0, 10, 10);
imgdata.data[0] = 100;
imgdata.data[0] = 300;
_assertSame(imgdata.data[0], 255, "imgdata.data[\""+(0)+"\"]", "255");
imgdata.data[0] = 100;
imgdata.data[0] = -100;
_assertSame(imgdata.data[0], 0, "imgdata.data[\""+(0)+"\"]", "0");
imgdata.data[0] = 100;
imgdata.data[0] = 200+Math.pow(2, 32);
_assertSame(imgdata.data[0], 255, "imgdata.data[\""+(0)+"\"]", "255");
imgdata.data[0] = 100;
imgdata.data[0] = -200-Math.pow(2, 32);
_assertSame(imgdata.data[0], 0, "imgdata.data[\""+(0)+"\"]", "0");
imgdata.data[0] = 100;
imgdata.data[0] = Math.pow(10, 39);
_assertSame(imgdata.data[0], 255, "imgdata.data[\""+(0)+"\"]", "255");
imgdata.data[0] = 100;
imgdata.data[0] = -Math.pow(10, 39);
_assertSame(imgdata.data[0], 0, "imgdata.data[\""+(0)+"\"]", "0");
imgdata.data[0] = 100;
imgdata.data[0] = -Infinity;
_assertSame(imgdata.data[0], 0, "imgdata.data[\""+(0)+"\"]", "0");
imgdata.data[0] = 100;
imgdata.data[0] = Infinity;
_assertSame(imgdata.data[0], 255, "imgdata.data[\""+(0)+"\"]", "255");
t.done();

});
</script>
