1. Content Security Policy 1.0

    Mitigate cross-site scripting attacks by only allowing certain sources of script, style, and other resources.

  2. CSS box-decoration-break

    Controls whether the box's margins, borders, padding, and other decorations wrap the broken edges of the box fragments (when the box is split by a break (page/column/region/line).

  3. CSS Filter Effects

    Method of applying filter effects using the `filter` property to elements, matching filters available in SVG. Filter functions include blur, brightness, contrast, drop-shadow, grayscale, hue-rotate, invert, opacity, sepia and saturate.

  4. selector list argument of :not()

    Selectors Level 3 only allowed `:not()` pseudo-class to accept a single simple selector, which the element must not match any of. Thus, `:not(a, .b, [c])` or `:not(a.b[c])` did not work. Selectors Level 4 allows `:not()` to accept a list of selectors. Thus, `:not(a):not(.b):not([c])` can instead be written as `:not(a, .b, [c])` and `:not(a.b[c])` works as intended.

  5. selector list argument of :nth-child and :nth-last-child CSS pseudo-classes

    The newest versions of `:nth-child()` and `:nth-last-child()` accept an optional `of S` clause which filters the children to only those which match the selector list `S`. For example, `:nth-child(1 of .foo)` selects the first child among the children that have the `foo` class (ignoring any non-`foo` children which precede that child). Similar to `:nth-of-type`, but for arbitrary selectors instead of only type selectors.

  6. Rebeccapurple color

    The new color added in CSS Color Module Level 4

  7. CSS Reflections

    Method of displaying a reflection of an element

  8. CSS 2.1 selectors

    Basic CSS selectors including: `*` (universal selector), `>` (child selector), `:first-child`, `:link`, `:visited`, `:active`, `:hover`, `:focus`, `:lang()`, `+` (adjacent sibling selector), `[attr]`, `[attr="val"]`, `[attr~="val"]`, `[attr|="bar"]`, `.foo` (class selector), `#foo` (id selector)

  9. ::selection CSS pseudo-element

    The ::selection CSS pseudo-element applies rules to the portion of a document that has been highlighted (e.g., selected with the mouse or another pointing device) by the user.

  10. Decorators

    ECMAScript Decorators are an in-progress proposal for extending JavaScript classes. Decorators use a special syntax, prefixed with an `@` symbol and placed immediately before the code being extended.

  11. DNSSEC and DANE

    Method of validating a DNS response against a trusted root server. Mitigates various attacks that could reroute a user to a fake site while showing the real URL for the original site.

  12. ECMAScript 5

    Full support for the ECMAScript 5 specification. Features include `Function.prototype.bind`, Array methods like `indexOf`, `forEach`, `map` & `filter`, Object methods like `defineProperty`, `create` & `keys`, the `trim` method on Strings and many more.

  13. ECMAScript 2015 (ES6)

    Support for the ECMAScript 2015 specification. Features include Promises, Modules, Classes, Template Literals, Arrow Functions, Let and Const, Default Parameters, Generators, Destructuring Assignment, Rest & Spread, Map/Set & WeakMap/WeakSet and many more.

  14. CSS Flexible Box Layout Module

    Method of positioning elements in horizontal or vertical stacks. Support includes all properties prefixed with `flex`, as well as `display: flex`, `display: inline-flex`, `align-content`, `align-items`, `align-self`, `justify-content` and `order`.

  15. navigator.hardwareConcurrency

    Returns the number of logical cores of the user's CPU. The value may be reduced to prevent device fingerprinting or because it exceeds the allowed number of simultaneous web workers.

  16. Directory selection from file input

    The `webkitdirectory` attribute on the `<input type="file">` element allows entire directory with file contents (and any subdirectories) to be selected.

  17. Resource Hints: preconnect

    Gives a hint to the browser to begin the connection handshake (DNS, TCP, TLS) in the background to improve performance. This is indicated using `<link rel="preconnect" href="https://example-domain.com/">`

  18. Object.entries

    The `Object.entries()` method creates a multi-dimensional array of key value pairs from the given object.

  19. CSS3 object-fit/object-position

    Method of specifying how an object (image or video) should fit inside its box. object-fit options include "contain" (fit according to aspect ratio), "fill" (stretches object to fill) and "cover" (overflows box but maintains ratio), where object-position allows the object to be repositioned like background-image does.

  20. Object.observe data binding

    Method for data binding, a now-withdrawn ECMAScript 7 proposal

  21. Object.values method

    The `Object.values()` method returns an array of a given object's own enumerable property values.

  22. Object RTC (ORTC) API for WebRTC

    Enables mobile endpoints to talk to servers and web browsers with Real-Time Communications (RTC) capabilities via native and simple JavaScript APIs

  23. querySelector/querySelectorAll

    Method of accessing DOM elements using CSS selectors

  24. requestIdleCallback

    API allowing the execution of JavaScript to be queued to run in idle browser time, either at the end of a frame or when the user is inactive. Also covers support for `cancelIdleCallback`. The API has similarities with `requestAnimationFrame`.

  25. Speech Recognition API

    Method to provide speech input in a web browser.

  26. Speech Synthesis API

    A web API for controlling a text-to-speech output.

  27. Strict Transport Security

    Declare that a website is only accessible over a secure connection (HTTPS).

  28. text-decoration styling

    Method of defining the type, style and color of lines in the text-decoration property. These can be defined as shorthand (e.g. `text-decoration: line-through dashed blue`) or as single properties (e.g. `text-decoration-color: blue`)

  29. unhandledrejection/rejectionhandled events

    The `unhandledrejection` event is fired when a Promise is rejected but there is no rejection handler to deal with the rejection. The `rejectionhandled` event is fired when a Promise is rejected, and after the rejection is handled by the promise's rejection handling code.

  30. Upgrade Insecure Requests

    Declare that browsers should transparently upgrade HTTP resources on a website to HTTPS.

  31. ECMAScript 5 Strict Mode

    Method of placing code in a "strict" operating context.

  32. WebCodecs API

    API to provide more control over the encoding and decoding of audio, video, and images.

  33. mediatrackconstraints api: echocancellation

  34. mediatracksettings api: echocancellation

  35. serviceworker api: support for ecmascript modules

  36. sharedworker api: `sharedworker()` constructor: support for ecmascript modules

  37. worker api: `worker()` constructor: support for ecmascript modules

  38. worklet api: support for ecmascript modules

  39. css property: print-color-adjust: economy

  40. headers http header: ect

  41. ecmascript 3

  42. ecmascript 2016 (es7)

  43. ecmascript 2017 (es8)

  44. ecmascript 2018 (es9)

  45. ecmascript 2019 (es10)

  46. ecmascript 2020 (es11)

  47. ecmascript 2021 (es12)

  48. ecmascript 2022 (es13)

  49. ecmascript 2023 (es14)

  50. ecmascript 4