)]}'
{
  "commit": "c14e0926cf989e53eeb0f4a10c407f7656ca63e8",
  "tree": "ece12aa5e3b8783825203d32a8c30eab5cb9b712",
  "parents": [
    "0524bbe1052793b4b2c50a76b7d1b7d2b2797ed6"
  ],
  "author": {
    "name": "James Graham",
    "email": "james@hoppipolla.co.uk",
    "time": "Mon Apr 08 19:59:05 2019"
  },
  "committer": {
    "name": "James Graham",
    "email": "james@hoppipolla.co.uk",
    "time": "Wed Apr 10 19:11:00 2019"
  },
  "message": "Avoid flagging setTimeout(..., 0) in lint\n\nThere isn\u0027t any difference between setTimeout(foo, 0) and step_timeout(foo, 0),\nso it doesn\u0027t make sense to fail the lint in either case. Unfortunately getting\nthis perfectly correct is a bit tricky since there can be arbitary js in the\nfirst argument to setTimeout. So doing it correctly requires a full js parser,\nbut we can do something with an approach that simply counts parens, skipping\nstrings, to find the end of the arguments.\n\nThis won\u0027t handle all cases, particularly involving template literals, but\nmay be better than nothing. In particular expressions like\n\nsetTimeout(() \u003d\u003e `${\"`\"}`, 0}\n\nwill break since we won\u0027t skip the embedded expression in the template\nliteral.\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a2fb36d175380aa231b5a01fd5a3775577e42ba4",
      "new_mode": 33188,
      "new_path": "tools/lint/jsfnargs.py"
    },
    {
      "type": "modify",
      "old_id": "b07dbcbeb9293d7a22e83880672411ac445f0ba6",
      "old_mode": 33188,
      "old_path": "tools/lint/lint.py",
      "new_id": "f66bb7d20b4467e5f4cb8eadd0172cbb75514235",
      "new_mode": 33188,
      "new_path": "tools/lint/lint.py"
    },
    {
      "type": "modify",
      "old_id": "28ccacc8787c61c2a6cf34552f179ef893360fed",
      "old_mode": 33188,
      "old_path": "tools/lint/tests/test_file_lints.py",
      "new_id": "222c3259cf9b351553d1e451075a4873ea0e8075",
      "new_mode": 33188,
      "new_path": "tools/lint/tests/test_file_lints.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "72c1f66be97f2030647ff19e981f4dfae329a810",
      "new_mode": 33188,
      "new_path": "tools/lint/tests/test_jsfnargs.py"
    }
  ]
}
