<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by 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="/common/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]");
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>
