Features (4)

ArrayBuffer.prototype.transfer

Category: JavaScript Flag name: --harmony-rab-gsab-transfer

Adds the ArrayBuffer.prototype.transfer method, which copies the receiver buffer, detaches the receiver, then returns the copy. This adds a JS API for what is possible via structured cloning. Also adds ArrayBuffer.prototype.transferToFixedLength and the ArrayBuffer.prototype.detached getter. This is a TC39 proposal.

JSON data
{
  "category": "JavaScript",
  "flag_name": "--harmony-rab-gsab-transfer",
  "id": 5073244152922112,
  "milestone": 114,
  "name": "ArrayBuffer.prototype.transfer",
  "summary": "Adds the ArrayBuffer.prototype.transfer method, which copies the receiver buffer, detaches the receiver, then returns the copy. This adds a JS API for what is possible via structured cloning.\r\n\r\nAlso adds ArrayBuffer.prototype.transferToFixedLength and the ArrayBuffer.prototype.detached getter.\r\n\r\nThis is a TC39 proposal."
}
WebAssembly extended-const Proposal

Category: JavaScript

We implement the WebAssembly extended-const proposal according to https://github.com/WebAssembly/extended-const. Specifically, we add i32.add, i32.sub, i32.mul, i64.add, i64.sub and i64.mul to the list of constant instructions.

JSON data
{
  "category": "JavaScript",
  "flag_name": "Experimental WebAssembly",
  "id": 5131077456232448,
  "milestone": 114,
  "name": "WebAssembly extended-const Proposal",
  "summary": "We implement the WebAssembly extended-const proposal according to https://github.com/WebAssembly/extended-const.\r\nSpecifically, we add i32.add, i32.sub, i32.mul, i64.add, i64.sub and i64.mul to the list of constant instructions."
}
Scrollend Event

Category: JavaScript

Helps developers reliably tell when a scroll has completed (including both the scroll itself and any updates to offsets from the scroll) through event listeners. Knowing when a scroll has completed is useful for various reasons, e.g. synchronizing some logic on the snapped section, fetching stuff in a list, triggering new animations, etc. This feature greatly simplifies the logic for handling end-of-scroll effects, ensuring that they are consistent across many different input modalities. Currently, developers address this need by observing scroll events and building ad-hoc timeout algorithms.

JSON data
{
  "category": "JavaScript",
  "flag_name": "",
  "id": 5186382643855360,
  "milestone": 114,
  "name": "Scrollend Event",
  "summary": "Helps developers reliably tell when a scroll has completed (including both the scroll itself and any updates to offsets from the scroll) through event listeners. \r\n\r\nKnowing when a scroll has completed is useful for various reasons, e.g. synchronizing some logic on the snapped section, fetching stuff in a list, triggering new animations, etc.\r\nThis feature greatly simplifies the logic for handling end-of-scroll effects, ensuring that they are consistent across many different input modalities.  Currently, developers address this need by observing scroll events and building ad-hoc timeout algorithms."
}
JSON.parse source text access

Category: JavaScript Flag name: --harmony-json-parse-with-source

This proposal adds an object with a "source" property that is passed as the 3rd argument to the reviver function in JSON.parse. This property contains the raw source text for the value being parsed. It is designed to address the issue that JSON parsing is lossy, e.g. around BigInt values. For example, `JSON.parse(" 9999999999999999", (key, val, {source}) => BigInt(source))`.

JSON data
{
  "category": "JavaScript",
  "flag_name": "--harmony-json-parse-with-source",
  "id": 5121582673428480,
  "milestone": 114,
  "name": "JSON.parse source text access",
  "summary": "This proposal adds an object with a \"source\" property that is passed as the 3rd argument to the reviver function in JSON.parse. This property contains the raw source text for the value being parsed.\r\n\r\nIt is designed to address the issue that JSON parsing is lossy, e.g. around BigInt values. For example, `JSON.parse(\" 9999999999999999\", (key, val, {source}) => BigInt(source))`."
}

API Changes (20)

  • [CDP] Improve description of execution context auxData
  • [compile hints magic] Add usage counter
  • [isolate] Move Isolate::handle_scope_data_ to IsolateData
  • [cleanup] Remove a few more bits leftover from old Wasm origin trials
  • [cleanup] Remove deprecated callback methods for old Wasm origin trials
  • handles: Add no-GC scope around EmbedderRootHandler::ResetRoot()
  • [objects] Determine host objects with serializer delegate
  • [intl] Update Intl Locale Info
  • [task] Move source location and use it in v8 platform
  • Produce consistent IDs for Oilpan objects in heap snapshots
  • [profiler] Optimise TickSample memory layout
  • [api] Deprecate String::CanMakeExternal()
  • [api][heap][handles] Deprecate v8::TracedReference::operator* and ->
  • [handles] Prepare deprecation of TracedReference::operator* and ->
  • [api] Always use the-hole as default return
  • [heap][handles] Add flag for direct local handles
  • Avoid use after free during gen-static-roots
  • Add use counter for import assertion
  • [handles] Refactor classes for abstract handles
  • Report an explicit pause reason when stopping after taking a step.
JSON data
[
  {
    "author": {
      "name": "Paul Irish",
      "email": "paulirish@chromium.org",
      "time": "Sun Apr 23 21:41:01 2023"
    },
    "commit": "4eb6ba4a998ffb9930d1bd929865f7a4b65a2f70",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Sun Apr 23 22:35:45 2023"
    },
    "subject": "[CDP] Improve description of execution context auxData",
    "milestone": 114
  },
  {
    "author": {
      "name": "Marja Hölttä",
      "email": "marja@chromium.org",
      "time": "Wed Apr 19 09:49:10 2023"
    },
    "commit": "eabf864ad1f829319ba7fdbe0776999a77632acb",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Wed Apr 19 10:36:48 2023"
    },
    "subject": "[compile hints magic] Add usage counter",
    "milestone": 114
  },
  {
    "author": {
      "name": "Igor Sheludko",
      "email": "ishell@chromium.org",
      "time": "Tue Apr 18 12:02:59 2023"
    },
    "commit": "bc45e84fe4abaa72c3e7cd37c250b484840ad512",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Tue Apr 18 13:21:27 2023"
    },
    "subject": "[isolate] Move Isolate::handle_scope_data_ to IsolateData",
    "milestone": 114
  },
  {
    "author": {
      "name": "Adam Klein",
      "email": "adamk@chromium.org",
      "time": "Fri Apr 14 20:41:33 2023"
    },
    "commit": "124996891bdee412f686a275781ba3e39719a8e0",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Fri Apr 14 22:24:23 2023"
    },
    "subject": "[cleanup] Remove a few more bits leftover from old Wasm origin trials",
    "milestone": 114
  },
  {
    "author": {
      "name": "Adam Klein",
      "email": "adamk@chromium.org",
      "time": "Fri Apr 07 23:15:25 2023"
    },
    "commit": "ff761770aae2d9c862ba0b95b9525a3ef5b72395",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Fri Apr 14 19:24:36 2023"
    },
    "subject": "[cleanup] Remove deprecated callback methods for old Wasm origin trials",
    "milestone": 114
  },
  {
    "author": {
      "name": "Anton Bikineev",
      "email": "bikineev@chromium.org",
      "time": "Thu Apr 13 11:38:47 2023"
    },
    "commit": "9020b6d0e475ff7ec6a26ce32118955fc53825a6",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Thu Apr 13 12:17:11 2023"
    },
    "subject": "handles: Add no-GC scope around EmbedderRootHandler::ResetRoot()",
    "milestone": 114
  },
  {
    "author": {
      "name": "Chengzhong Wu",
      "email": "chengzhong.wcz@alibaba-inc.com",
      "time": "Tue Apr 04 09:41:58 2023"
    },
    "commit": "cf13b9b46572a9824d2d632abdd48c56161ace02",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Thu Apr 13 07:14:56 2023"
    },
    "subject": "[objects] Determine host objects with serializer delegate",
    "milestone": 114
  },
  {
    "author": {
      "name": "Frank Tang",
      "email": "ftang@chromium.org",
      "time": "Thu Mar 30 00:02:59 2023"
    },
    "commit": "1950f83719311be8970e85b78a4acfa3aafbd4d8",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Thu Apr 06 19:33:42 2023"
    },
    "subject": "[intl] Update Intl Locale Info",
    "milestone": 114
  },
  {
    "author": {
      "name": "Etienne Pierre-doray",
      "email": "etiennep@chromium.org",
      "time": "Wed Apr 05 19:45:11 2023"
    },
    "commit": "2d09c006cc9dc91f3ee58ac89357642144d4ec33",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Wed Apr 05 20:44:46 2023"
    },
    "subject": "[task] Move source location and use it in v8 platform",
    "milestone": 114
  },
  {
    "author": {
      "name": "Seth Brenith",
      "email": "seth.brenith@microsoft.com",
      "time": "Tue Apr 04 15:36:56 2023"
    },
    "commit": "3fd57b875f365696b6d6e303143887ecfe9ee63f",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Tue Apr 04 16:56:37 2023"
    },
    "subject": "Produce consistent IDs for Oilpan objects in heap snapshots",
    "milestone": 114
  },
  {
    "author": {
      "name": "Camillo Bruni",
      "email": "cbruni@chromium.org",
      "time": "Mon Apr 03 09:32:37 2023"
    },
    "commit": "32a4b2e4cbb22e1441c30b90fcbdb30c4054f098",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Mon Apr 03 12:51:53 2023"
    },
    "subject": "[profiler] Optimise TickSample memory layout",
    "milestone": 114
  },
  {
    "author": {
      "name": "pthier",
      "email": "pthier@chromium.org",
      "time": "Fri Mar 31 14:24:18 2023"
    },
    "commit": "099fac8935b5f42417231a223f9d8d74ac5d127b",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Mon Apr 03 08:43:33 2023"
    },
    "subject": "[api] Deprecate String::CanMakeExternal()",
    "milestone": 114
  },
  {
    "author": {
      "name": "Nikolaos Papaspyrou",
      "email": "nikolaos@chromium.org",
      "time": "Fri Mar 31 11:59:24 2023"
    },
    "commit": "0d5082c13b82ad2072d4372a6a374afc107fe598",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Fri Mar 31 16:50:09 2023"
    },
    "subject": "[api][heap][handles] Deprecate v8::TracedReference::operator* and ->",
    "milestone": 114
  },
  {
    "author": {
      "name": "Nikolaos Papaspyrou",
      "email": "nikolaos@chromium.org",
      "time": "Wed Mar 29 15:22:26 2023"
    },
    "commit": "fc48e3351c676168132c3ae796c916fd2c86a181",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Thu Mar 30 19:55:22 2023"
    },
    "subject": "[handles] Prepare deprecation of TracedReference::operator* and ->",
    "milestone": 114
  },
  {
    "author": {
      "name": "Camillo Bruni",
      "email": "cbruni@chromium.org",
      "time": "Thu Mar 30 13:02:32 2023"
    },
    "commit": "154d1e4ee6d8980e1c254124625d162ef49067b8",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Thu Mar 30 15:00:57 2023"
    },
    "subject": "[api] Always use the-hole as default return",
    "milestone": 114
  },
  {
    "author": {
      "name": "Nikolaos Papaspyrou",
      "email": "nikolaos@chromium.org",
      "time": "Wed Mar 29 18:29:33 2023"
    },
    "commit": "1aadce005740e7100b4c9ba64d178c41a2ef4f91",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Thu Mar 30 08:32:46 2023"
    },
    "subject": "[heap][handles] Add flag for direct local handles",
    "milestone": 114
  },
  {
    "author": {
      "name": "Seth Brenith",
      "email": "seth.brenith@microsoft.com",
      "time": "Wed Mar 29 15:27:24 2023"
    },
    "commit": "4f94782e87a227072295dde051c50634af3eda05",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Wed Mar 29 16:43:19 2023"
    },
    "subject": "Avoid use after free during gen-static-roots",
    "milestone": 114
  },
  {
    "author": {
      "name": "Shu-yu Guo",
      "email": "syg@chromium.org",
      "time": "Fri Mar 24 22:30:24 2023"
    },
    "commit": "699affae4e1529c13f0b8707fbc585965459bd23",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Fri Mar 24 23:51:14 2023"
    },
    "subject": "Add use counter for import assertion",
    "milestone": 114
  },
  {
    "author": {
      "name": "Nikolaos Papaspyrou",
      "email": "nikolaos@chromium.org",
      "time": "Thu Mar 23 17:33:53 2023"
    },
    "commit": "3b95056f5b5987ea8153f43169445f51e9a1c113",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Fri Mar 24 14:49:55 2023"
    },
    "subject": "[handles] Refactor classes for abstract handles",
    "milestone": 114
  },
  {
    "author": {
      "name": "Philip Pfaffe",
      "email": "pfaffe@chromium.org",
      "time": "Thu Mar 16 09:40:55 2023"
    },
    "commit": "e4400ca802fc949e7a36c2ec0cf0d7689befaa82",
    "committer": {
      "name": "V8 LUCI CQ",
      "email": "v8-scoped@luci-project-accounts.iam.gserviceaccount.com",
      "time": "Thu Mar 23 11:15:51 2023"
    },
    "subject": "Report an explicit pause reason when stopping after taking a step.",
    "milestone": 114
  }
]