author Mike Hommey <>
Fri, 02 Jun 2017 15:07:58 +0900
changeset 410640 f360dd9d411e7ba61531bed2c32a0981cc6c418a
parent 224377 73bbfa0bebc7c8b506acdee6a03dda61dd0e7fb5
permissions -rw-r--r--
Bug 1369622 - Restore static asserts for lack of arguments on some macros. r=froydnj Bug 1368932 removed MOZ_STATIC_ASSERT_VALID_ARG_COUNT because it didn't actually work for large numbers of arguments. But it was kind of useful for macros that expand to something broken when they are given no variadic argument at all. Now that we have a macro that doesn't require tricks to count empty arguments lists, however, we can use straightforward static_asserts instead of a generic macro, which has the side effect of providing more context in the error message.

  <title>Test for Bug 408838</title>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<a target="_blank" href="">Mozilla Bug 408838</a>
<p id="display"></p>
<div id="content" style="display: none">
<pre id="test">
<script class="testbody" type="text/javascript">

/** Test for Bug 408838 **/

is(typeof JSON, "object", "JSON should be present");
is(typeof JSON.parse, "function", "JSON.parse should be present");
is(typeof JSON.stringify, "function", "JSON.stringify should be present");

var str = '{"foo":[1,{"bar":"baz"}],"qux":1234.1234,"quux":[true,false,null,"hmm",9,[]]}';
var x = JSON.parse(str);

is([0], 1, "JSON integer");
is([1].bar, "baz", "JSON string in object");
is(x.qux, 1234.1234, "JSON float");

var y = JSON.stringify(x);
is(y, str, "JSON round trip");