<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=658746 --> <head> <title>Test for Bug 658746</title> <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=658746">Mozilla Bug 658746</a> <p id="display"></p> <div id="content" style="display: none"> </div> <pre id="test"> <script type="application/javascript"> /** Test for Bug 658746 **/ /** * Sets property, gets property and deletes property. */ function SetGetDelete(prop) { var el = document.createElement('div'); el.dataset[prop] = 'aaaaaa'; is(el.dataset[prop], 'aaaaaa', 'Dataset property "' + prop + '" should have been set.'); delete el.dataset[prop]; is(el.dataset[prop], undefined, 'Dataset property"' + prop + '" should have been deleted.'); } /** * Gets, deletes and sets property. Expects exception while trying to set property. */ function SetExpectException(prop) { var el = document.createElement('div'); is(el.dataset[prop], undefined, 'Dataset property "' + prop + '" should be undefined.'); delete el.dataset[prop]; try { el.dataset[prop] = "xxxxxx"; ok(false, 'Exception should have been thrown when setting "' + prop + '".'); } catch (ex) { ok(true, 'Exception should have been thrown.'); } } // Numbers as properties. SetGetDelete(-12345678901234567980); SetGetDelete(-1); SetGetDelete(0); SetGetDelete(1); SetGetDelete(12345678901234567980); // Floating point numbers as properties. SetGetDelete(-1.1); SetGetDelete(0.0); SetGetDelete(1.1); // Hexadecimal numbers as properties. SetGetDelete(0x3); SetGetDelete(0xa); // Octal numbers as properties. SetGetDelete(03); SetGetDelete(07); // String numbers as properties. SetGetDelete('0'); SetGetDelete('01'); SetGetDelete('0x1'); // Undefined as property. SetGetDelete(undefined); // Empty arrays as properties. SetGetDelete(new Array()); SetGetDelete([]); // Non-empty array and object as properties. SetExpectException(['a', 'b']); SetExpectException({'a':'b'}); // Objects as properties. SetExpectException(new Object()); SetExpectException(document); </script> </pre> </body> </html>