user avatar
Rob Palmer
@robpalmer2
JavaScript Infrastructure & Tooling at Bloomberg. Co-chairing @TC39. Likely to tweet tech stuff about JS & software performance. Opinions are my own.
London, England
Joined July 2009
Posts
  • user avatar
    ECMAScript excitement 😉 Congrats to my coworker @acutmore @TechAtBloomberg on advancing Await Dictionary to Stage 2.7 at @TC39 today 🎉 Promise.all returns positional results as an array. Promise.allKeyed allows named results inside an object 👍
    const {
  shape,
  color,
  mass,
} = await Promise.allKeyed({
  shape: getShape(),
  color: getColor(),
  mass: getMass(),
});
const {
  shape,
  color,
  mass,
} = await Promise.allKeyed({
  shape: getShape(),
  color: getColor(),
  mass: getMass(),
});
  • user avatar
    ECMAScript excitement 😉 Today TC39 advanced these features to Stage-4 🎉 - Intl.ListFormat - Intl.DateTimeFormat: dateStyle & timeStyle - Logical Assignment (&&= ||= ??=) - Numeric Separators (1_000) - Promise.any & AggregateError - WeakRefs & FinalizationRegistry
  • user avatar
    TypeScript *earth-shattering* excitement 😉 The TypeScript team have rewritten the compiler in Go in order to optimize performance 🎉 🔹 10x faster type-checking 🔥 🔹 Uses significantly less memory This will hugely improve TypeScript authoring & compilation experience.
  • user avatar
    ECMAScript excitement 😉 Congrats to @_shu on advancing Structs & Shared Structs to Stage 2 at @TC39 today 🎉 This is an enabler for shared-memory multi-threading.
  • user avatar
    ECMAScript excitement 😉 ES2021 has been approved by the Ecma General Assembly 🎉 💡 Logical Assignment Operators (&&= ||= ??=) 💡 Numeric Separators (1_000) 💡 Promise.any & AggregateError 💡 String.prototype.replaceAll 💡 WeakRefs & FinalizationRegistry
  • user avatar
    ECMAScript excitement 😉 TC39 has advanced the Record & Tuple proposal to Stage 2! This brings immutable datastructures to JavaScript. Congrats to my colleagues @TechAtBloomberg @r_ricard @rickbutton @NicoloRibaudo who are championing the proposal.
  • user avatar
    Two proposals hit Stage 3 at TC39 this week. ?? 🔥 Nullary Coalescing ?. 🔥 Optional Chaining Get ready for more question marks in your JS!
  • user avatar
    ECMAScript excitement 😉 Congrats to @smooshMap on advancing Iterator Helpers to Stage 3 at @TC39 today 🎉 Both sync & async iterators gain these methods: 🔸 map 🔸 filter 🔸 take 🔸 drop 🔸 flatMap 🔸 reduce 🔸 toArray 🔸 forEach 🔸 some 🔸 every 🔸 find
  • user avatar
    TypeScript excitement 😉 TS 6.0 is planning breaking changes to tsconfig options to deprecate some & change the defaults for others. This will simplify configuration & ease the transition to the Go-based TS 7.0 👍 The latest pitch is to enable strict type-checking by default 🎉
    Just filed an issue to turn `--strict` on by default in TypeScript. Maybe it's a little bit ambitious, but I'm excited for us to try this one. 😄 github.com/microsoft/Type…
  • user avatar
    ECMAScript excitement 😉 ES2022 is approved by Ecma International 🎉 🔶 Class Fields 🔶 #field in obj checks 🔶 Class Static Blocks 🔶 .at() for arrays & strings 🔶 Error Cause 🔶 Object.hasOwn() 🔶 RegExp Match Indices (/d) 🔶 Top Level Await ecma-international.org/news/ecma-inte…
  • user avatar
    ECMAScript excitement 😉 Congrats to @acutmore on advancing TC39 proposal "Change Array by Copy" to Stage 3 🎉 These new array methods return a fresh array, leaving the original unmodified. 🔹 .with() 🔹 .toReversed() 🔹 .toSorted() 🔹 .toSpliced()
  • user avatar
    ECMAScript excitement 😉 This week's @TC39 has a packed agenda: 🔼 Array .zip 🔼 Atomics.pause 🔼 Error.isError 🔼 Extractors 🔼 Immutable ArrayBuffer 🔼 Import Attributes 🔼 Iterator Chunking/Helpers/Sequencing 🔼 Math.sumPrecise 🔼 Promise.try 🔼 RegExp Modifiers 🔼 Structs
  • user avatar
    ECMAScript excitement 😉 Today the Ecma General Assembly approved ES2024 🎉 🔶 Array.groupBy & Object.groupBy 🔶 ArrayBuffer transfer 🔶 Atomics.waitAsync 🔶 Promise.withResolvers 🔶 RegExp v flag 🔶 Resizable ArrayBuffers 🔶 Well-Formed Unicode Strings
  • user avatar
    Today TypeScript 5.8 Beta ships the new "erasableSyntaxOnly" flag 🎉 It is designed to pair with Node's built-in TypeScript support, guiding users away from TS-only runtime features such as: ❌ enum ❌ runtime namespace ❌ parameter properties Remember: TS = JS + Types 👍
    TypeScript 5.8 Beta is released 🎉 🔶 "nodenext" gets require(ESM) 🔶 "nodenext" deprecates Import Assertions 🔷 Checked Conditional Return Types 🔷 erasableSyntaxOnly flag for Node 🔷 Perf: libReplacement flag 🔷 Perf: Program load/update optimizations