)]}'
{
  "commit": "aa3ecaecac29e23df1ee04e48b41bd274abd50ce",
  "tree": "3c6c385a65c4486f9a4616d80a1f0539261ce4f2",
  "parents": [
    "b38dcb6b9f8f020afb89ac66535682b009cdd387"
  ],
  "author": {
    "name": "Andrew Grieve",
    "email": "agrieve@google.com",
    "time": "Fri Sep 12 09:48:23 2025 -0400"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Sep 12 06:58:37 2025 -0700"
  },
  "message": "Adds a len() function\n\nAvoids needing to use a for-each loop to compute list size:\nhttps://source.chromium.org/chromium/chromium/src/+/main:build/config/android/rules.gni;drc\u003d7048ca9df6b3c3a4ea6e34294a0a4e506f1ab569;l\u003d902\n\nI haven\u0027t seen the need for it on strings, but it seems like a thing\nyou\u0027d expect it to work on.\n\nChange-Id: I233c172a7a121e4f364a152282f68011932d9562\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/19820\nCommit-Queue: Andrew Grieve \u003cagrieve@google.com\u003e\nReviewed-by: Dirk Pranke \u003cdpranke@chromium.org\u003e\nReviewed-by: Sylvain Defresne \u003csdefresne@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "533df5895342e73f032a78de4a76a7756f3f8ac7",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "d3ecfdc4bc771d9e7e9ff7f3687ab0fb65c5e5a5",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "modify",
      "old_id": "ea95bc801fec5d784f7d4a46d77252e7dac6ecdc",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "6e992708def4876e95fe278434fe0e8dcac4294f",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "826ba0e939f5a4f933be2995e5d4978020f79a51",
      "new_mode": 33188,
      "new_path": "src/gn/function_len.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "47e36315fc4bdd1d71fd5955f3afc40a4579f048",
      "new_mode": 33188,
      "new_path": "src/gn/function_len_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "a12b0789a6e8c8f0a3f3488a52cc87abcccff51f",
      "old_mode": 33188,
      "old_path": "src/gn/functions.cc",
      "new_id": "8386de59b34f82a888bb68060870f670e5e495bb",
      "new_mode": 33188,
      "new_path": "src/gn/functions.cc"
    },
    {
      "type": "modify",
      "old_id": "59325ec8dddfd505e3815f4f959719ee15bc1d90",
      "old_mode": 33188,
      "old_path": "src/gn/functions.h",
      "new_id": "787e6ed2df0c185ef7223f5dd9eefddd03817c5f",
      "new_mode": 33188,
      "new_path": "src/gn/functions.h"
    }
  ]
}
