--- /dev/null
+function foo(d){
+ return d.getInt8(42);
+}
+
+noInline(foo);
+
+var d = new DataView(new ArrayBuffer(43));
+d.setInt8(42, 43);
+for (var i = 0; i < 100000; ++i) {
+ var result = foo(d);
+ if (result != 43)
+ throw "Error: bad result: " + result;
+}
+
+for (var i = 0; i < 10; ++i) {
+ var didThrow = false;
+ try {
+ foo(new DataView(new ArrayBuffer(42)));
+ } catch (e) {
+ didThrow = true;
+ if (e.message.indexOf("Out of bounds") < 0)
+ throw "Error: bad exception: " + e.message;
+ }
+ if (!didThrow)
+ throw "Error: did not throw";
+}