)]}'
{
  "commit": "f0994a790e4487dab6d66e98ac79eca96c645ebd",
  "tree": "8e2ae9298dee4920e7757bdf0f4417961eeb5d04",
  "parents": [
    "e0ec7527567795e55b4a32828150825c8cb0fe5e"
  ],
  "author": {
    "name": "Yijia Huang",
    "email": "yijia_huang@apple.com",
    "time": "Sat May 09 03:33:11 2026"
  },
  "committer": {
    "name": "Yijia Huang",
    "email": "yijia_huang@apple.com",
    "time": "Sat May 09 03:33:11 2026"
  },
  "message": "[JSC][Temporal] Add pure C++ core layer: Rounding, ISOArithmetic, InstantCore, CalendarArithmetic\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d314432\nrdar://176580834\n\nReviewed by Yusuke Suzuki.\n\nThe Temporal spec algorithms were previously inlined throughout the JS\nwrapper layer (TemporalDuration.cpp, TemporalPlainDate.cpp, etc.),\ntightly coupling spec math with JSGlobalObject* and JSValue. This patch\nextracts them into a pure C++ core layer under runtime/temporal/core/\nwith no JS VM types, enabling:\n- C++ unit testing without a JS engine (TemporalCoreTest.cpp, ~200\n  tests mirroring temporal_rs v0.2.3 test suite)\n- Spec step annotations and temporal_rs cross-references in every\n  function body for reviewer traceability\n- Cleaner separation between spec algorithm and JS binding layers\n\nCallers in TemporalDuration.cpp, TemporalPlainTime.cpp,\nTemporalPlainDate.cpp, ISO8601.cpp, etc. are updated to call the\nTemporalCore:: qualified names.\n\nTests: Source/JavaScriptCore/API/tests/TemporalCoreTest\nCanonical link: https://commits.webkit.org/312935@main\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e4ece2aee0809c40e228d8da499a146ca1d007e7",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/API/tests/TemporalCoreTest.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "644304ea1f3d2edade9525cc71098a3cb7d984bb",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/API/tests/TemporalCoreTest.h"
    },
    {
      "type": "modify",
      "old_id": "96a5697a92e709f8838b26e94c401fdb3cd53b0f",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/API/tests/testapi.c",
      "new_id": "a908eb19b2e9b32f3d629c1b730852d131720079",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/API/tests/testapi.c"
    },
    {
      "type": "modify",
      "old_id": "abd7712ce05d4ba0e5d73811da2a83cd0fdcb610",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/CMakeLists.txt",
      "new_id": "6c64dbd176bdc82ccc3fe92e3e7c6292ee7547be",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "bd60a18ee42c3e652f6fb464f4d90378858bfdc8",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj",
      "new_id": "55a8c17f96417e3f67a156f4854605ede60cb014",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj"
    },
    {
      "type": "modify",
      "old_id": "ffad7311a0c63af925fd99e16afdfd610466aa61",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/Sources.txt",
      "new_id": "b95fda308e1037b57f4df1865a8c9a5de7b5f49f",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/Sources.txt"
    },
    {
      "type": "modify",
      "old_id": "471ec664d768f44ef9354ecc7429a0f9f133a7b2",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/ISO8601.cpp",
      "new_id": "c7ecb323222d106c403bdc04198bc1f2e2412207",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/ISO8601.cpp"
    },
    {
      "type": "modify",
      "old_id": "734cd4a6e2ccbb54b60b5b806d4b2e6c97470559",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/ISO8601.h",
      "new_id": "630e02a36fea8c4c11be93a248f4b24cae90401b",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/ISO8601.h"
    },
    {
      "type": "modify",
      "old_id": "fb256fb9f1833648c4218f84fd13aa903d17a5d7",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/TemporalDuration.cpp",
      "new_id": "c4c08c771c60432c528e273c3c153e87eb54921f",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/TemporalDuration.cpp"
    },
    {
      "type": "modify",
      "old_id": "4aea541ef0526cbbb750d3d97d3c7744e243db4f",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/TemporalInstant.cpp",
      "new_id": "e7d1740b261a7bb3ef8eb68f44a96549e688ee5f",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/TemporalInstant.cpp"
    },
    {
      "type": "modify",
      "old_id": "a7cc722fc5227cf408cc2c5fafc7e767db08f092",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/TemporalObject.cpp",
      "new_id": "080a0140f5941eea47ef13d6f1c99584867480d7",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/TemporalObject.cpp"
    },
    {
      "type": "modify",
      "old_id": "01e7ef5f475b48a0419c9456bcff09b9f2fdb871",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/TemporalObject.h",
      "new_id": "e7eb1a128c2e63ef65ee13998f37699923a23b39",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/TemporalObject.h"
    },
    {
      "type": "modify",
      "old_id": "5e5ceda6b0da827b52e037c6c8b0282168618de7",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/TemporalPlainDate.cpp",
      "new_id": "a7440de02111bb7a2582d385c01ed3ed2087bbd3",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/TemporalPlainDate.cpp"
    },
    {
      "type": "modify",
      "old_id": "689e17440353a353b20b3270c0150fe222b154ee",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/TemporalPlainDateTime.cpp",
      "new_id": "0c7f450c7e554b876ba70ca087b3df3cfe11c5b5",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/TemporalPlainDateTime.cpp"
    },
    {
      "type": "modify",
      "old_id": "948239700f54233ba38ebb7a1696499b4e5adb5a",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/TemporalPlainTime.cpp",
      "new_id": "6af112bf3e565d3365e3c9f2d6343c7d63cc62e1",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/TemporalPlainTime.cpp"
    },
    {
      "type": "modify",
      "old_id": "a9c65762f241bdbe05acd3b57ffbf882ad0b0334",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/TemporalPlainYearMonth.cpp",
      "new_id": "9a9e45f208cd7a6ae23e69b080f0c4542cf11c4e",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/TemporalPlainYearMonth.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a331fa86fcaa9c87135e73eb10497d2f30d043ef",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/CalendarArithmetic.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "224bf1e62bd57eea6f3e0d28cf79f4bab9bfaf3c",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/CalendarArithmetic.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f7444462e162fc2c27eae37d07599cba76f3d966",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/ISOArithmetic.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d44017143f6aad3c80f3c45629b1055a296a56f0",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/ISOArithmetic.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9a7c7b2e8ad09db725a7468dfbe1ad99775bb330",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/InstantCore.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c952ca275cdb532ddcbdf53f8c961a432f41289",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/InstantCore.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9da942fe49f95bc204e23ad4fce996263d5492c4",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/Rounding.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f56154d27e9c0c0ec42cf9ed998777e89366b485",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/Rounding.h"
    },
    {
      "type": "modify",
      "old_id": "2448a89ddb2051f384bc681b85b06b936a415bc0",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/temporal/core/TemporalCoreTypes.h",
      "new_id": "17885ab17faca93bcf9038f54cf30e71a7d984f9",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/TemporalCoreTypes.h"
    },
    {
      "type": "modify",
      "old_id": "87e31dfbc4cc7212414c601a94e8a60732d987ab",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/runtime/temporal/core/TemporalEnums.h",
      "new_id": "2e17d186d6c102433460a491b2331d1b0279a7ab",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/runtime/temporal/core/TemporalEnums.h"
    },
    {
      "type": "modify",
      "old_id": "9b54e43e68e086cc625a41a043810fa2d635d9e0",
      "old_mode": 33188,
      "old_path": "Source/JavaScriptCore/shell/CMakeLists.txt",
      "new_id": "85cdddcdd78a59f921946e79282e263fd4d38d7c",
      "new_mode": 33188,
      "new_path": "Source/JavaScriptCore/shell/CMakeLists.txt"
    }
  ]
}
