)]}'
{
  "commit": "822c6750108b5c628a68563d8e99bdf97c4ccd17",
  "tree": "448b1c6c37937d8de12986f5f4e49f47f2102bdd",
  "parents": [
    "a61a55a444b3bff3047de4bcc495d1cf92c76d93"
  ],
  "author": {
    "name": "Tom Sepez",
    "email": "tsepez@chromium.org",
    "time": "Tue Jul 14 17:15:24 2020 +0000"
  },
  "committer": {
    "name": "Chromium commit bot",
    "email": "commit-bot@chromium.org",
    "time": "Tue Jul 14 17:15:24 2020 +0000"
  },
  "message": "Put CJX_Objects into V8 object embedder slots\n\nMake CJX_Objects descend from CFXJSE_HostObject, since they are part\nof the XFA V8 interface, rather than the parser CFXA_Objects. Both\nhave the same lifetime and backpointers to each other, so cleanup\norder should be preserved.\n\nCurrently, we have kind of a \"triangle\"\n  CJX_Object -\u003e JS entry points\n  JS wrapper object -\u003e CXFA_Node\n  CXFA_Node -\u003e CJX_Object\n\nAfter this lands, we get\n  CJX_Object -\u003e JS entry points\n  JS wrapper object -\u003e CJX_Node\n\nThis makes FXJSE more similar to what happens in FXJS. May make\nmoving to gc\u0027d objects more manageable.\n\nChange-Id: Ib1c380bfbd9d9f9733a260f789811cdb79bbe189\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/71170\nCommit-Queue: Tom Sepez \u003ctsepez@chromium.org\u003e\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cb2f055bf94db0f953f2f956dd242d367cc9d00e",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cfxjse_engine.cpp",
      "new_id": "96395a97011d18dd45ac717d6bf572b86a86aa42",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cfxjse_engine.cpp"
    },
    {
      "type": "modify",
      "old_id": "f0ba251b93ea5dd0750659c2204569e3aaf11db0",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cjx_object.cpp",
      "new_id": "7b156bc1451fe883f1cebdcf676cd8a37d646256",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cjx_object.cpp"
    },
    {
      "type": "modify",
      "old_id": "607c37cad2f7edf69068ecfbbc4f04179350e3b8",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cjx_object.h",
      "new_id": "4207b47bdf81aefe565e0e81ae82ea1c3534dadd",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cjx_object.h"
    },
    {
      "type": "modify",
      "old_id": "fd81cea4d6078a7178b191f4ea26483785c0e520",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/cjx_tree.cpp",
      "new_id": "3bef3bf93b32602714a3cdb6bf80cb4c39c76fdc",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/cjx_tree.cpp"
    },
    {
      "type": "modify",
      "old_id": "439988ef2633fbf9337b0b9ea8d0617a6368eb7e",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/fxjse.cpp",
      "new_id": "16a1a1b8e0e77c38128cd82afe8b90f620ffc7eb",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/fxjse.cpp"
    },
    {
      "type": "modify",
      "old_id": "24b0beca73b8374d6bd5b96678f4c421ee1e6845",
      "old_mode": 33188,
      "old_path": "fxjs/xfa/fxjse.h",
      "new_id": "59299a14d8096a6feaf0eac3ef5b64bbe4800a3e",
      "new_mode": 33188,
      "new_path": "fxjs/xfa/fxjse.h"
    },
    {
      "type": "modify",
      "old_id": "6d730bf10e7dac310cb597ec7049aba6f924b521",
      "old_mode": 33188,
      "old_path": "xfa/fxfa/parser/cxfa_object.cpp",
      "new_id": "175bee089adc9908c98f16db4931e9aeb17c656f",
      "new_mode": 33188,
      "new_path": "xfa/fxfa/parser/cxfa_object.cpp"
    },
    {
      "type": "modify",
      "old_id": "cfbcb1307d1f736b1e66523296f975cd7dea0292",
      "old_mode": 33188,
      "old_path": "xfa/fxfa/parser/cxfa_object.h",
      "new_id": "18bcb7765afb849fcb2348c427756bbba0ca661a",
      "new_mode": 33188,
      "new_path": "xfa/fxfa/parser/cxfa_object.h"
    }
  ]
}
