// Compare two DataViews byte-by-byte. function compareDataViews(actual, expected) { assert_true(actual instanceof DataView, 'actual is DataView'); assert_true(expected instanceof DataView, 'expected is DataView'); assert_equals(actual.byteLength, expected.byteLength, 'lengths equal'); for (let i = 0; i < expected.byteLength; ++i) { assert_equals( actual.getUint8(i), expected.getUint8(i), `Mismatch at byte ${i}.`); } } // Returns a Promise that resolves once |device| receives an input report. function oninputreport(device) { assert_true(device instanceof HIDDevice); return new Promise(resolve => { device.oninputreport = resolve; }); }