10 poin oleh GN⁺ 2025-06-30 | 3 komentar | Bagikan ke WhatsApp
  • Dalam rapat TC39 ke-108 terbaru, 9 proposal yang akan membentuk masa depan JavaScript mengalami kemajuan di tiap tahap standardisasi
  • Stage 4 (persetujuan akhir) mencakup fitur seperti using, Array.fromAsync, dan Error.isError yang meningkatkan produktivitas dan keamanan pengembangan
  • Di Stage 3~1, berbagai proposal fitur berguna sedang dibahas, termasuk ArrayBuffer immutable, seeded random, clamp, peningkatan NumberFormat, dan fungsi Random
  • Deno aktif mengadopsi dan bereksperimen dengan standar terbaru, dan beberapa fitur sudah dapat digunakan di Deno serta browser modern
  • Diskusi standardisasi akan terus berlanjut, dan ekosistem JavaScript diharapkan berkembang menjadi lebih aman dan ringkas

Tren standardisasi terbaru TC39 dan fitur baru utama JavaScript

Stage 4: fitur yang akan diadopsi secara resmi

Manajemen resource eksplisit (using)

  • Deklarasi using menjamin proses pembersihan dilakukan secara otomatis saat masa hidup objek resource seperti file dan soket jaringan berakhir
  • Terinspirasi dari struktur di C# dan Python, objek mengimplementasikan metode [Symbol.dispose]() atau [Symbol.asyncDispose]() yang dipanggil saat blok berakhir
  • Pembersihan otomatis tetap dilakukan meskipun terjadi exception, sehingga mengurangi risiko kebocoran resource seperti file handle
  • Sudah didukung di Chrome 134, Firefox 134, Deno v2.3 dan lainnya; di Deno, fitur ini bisa langsung dimanfaatkan untuk pekerjaan nyata seperti file dan soket

Array.fromAsync

  • Metode standar untuk mengubah iterable asinkron menjadi array, dan mengembalikan Promise
  • Mengumpulkan nilai secara berurutan dari async generator dan sejenisnya, lalu menghasilkan array akhir dalam bentuk Promise
  • Cara pakainya mirip dengan Array.from sinkron yang sudah ada, serta mendukung fungsi mapping dan thisArg
  • Didukung di semua browser utama, Node v22, dan Deno v1.38 ke atas

Error.isError

  • Fungsi bawaan yang memungkinkan pengecekan sederhana apakah suatu nilai adalah objek Error yang asli
  • Bekerja andal bahkan dalam kasus rumit seperti cross-realm atau error subclass
  • Meningkatkan keandalan saat membuat polyfill atau library

Stage 3: ArrayBuffer immutable

Immutable ArrayBuffer

  • Akan ditambahkan metode transferToImmutable() dan sliceToImmutable() untuk mendukung immutability pada ArrayBuffer
  • Buffer immutable tidak bisa dimodifikasi atau di-detach setelah dibuat, sehingga membantu berbagi data dengan aman antar-thread dan worker serta meningkatkan performa
  • Di Deno dan lingkungan lain, ini dapat dimanfaatkan secara efisien untuk pemrosesan data biner tanpa penyalinan yang tidak perlu

Stage 2: fitur proposal baru

Random.Seeded

  • Dengan PRNG berbasis seed (Random.Seeded(seed)), dimungkinkan menghasilkan urutan angka acak yang sama di eksekusi berulang
  • Berguna untuk area yang menuntut reproduksibilitas seperti game dan simulasi
  • Tidak seperti Math.random(), fitur ini menyediakan kemampuan lanjutan seperti penentuan seed dan penyalinan state

Number.prototype.clamp

  • Metode pembatas rentang nilai yang otomatis menyesuaikan angka ke dalam rentang minimum hingga maksimum yang ditentukan
  • Menjadi pengganti yang lebih singkat dan jelas untuk pola Math.min(Math.max(x, min), max) yang selama ini umum dipakai

Stage 1: proposal tahap diskusi awal

Keep Trailing Zeros

  • Opsi baru untuk Intl.NumberFormat yang memungkinkan kontrol lebih rinci atas mempertahankan/menghapus angka 0 di belakang koma
  • Memperkuat fleksibilitas tampilan yang diinginkan di UI seperti nominal uang dan fixed-point

Comparisons

  • Bertujuan menstandardisasi representasi nilai yang ramah manusia dan output diff, mirip util.inspect di Node.js
  • Memberikan konsistensi pada framework pengujian, output konsol, dan sebagainya

Random Functions

  • Memperkenalkan namespace Random baru yang menghimpun fungsi terkait random secara aman dan ringkas, seperti angka acak, sampling, dan shuffle
  • Mendukung berbagai pola koleksi dan sampling secara intuitif sekaligus mencegah error off-by-one

Masa depan Deno dan ekosistem JavaScript

  • Deno berpartisipasi aktif dalam diskusi standardisasi dan dengan cepat menerapkan fitur terbaru ke penggunaan nyata
  • Contohnya: propagasi async context, OpenTelemetry bawaan, dan pola manajemen resource yang baru
  • Diskusi standardisasi dijadwalkan berlanjut dalam rapat TC39 tambahan setelah September
  • Ke depan, pengembang JavaScript akan dapat merasakan lingkungan bahasa yang lebih kuat, aman, dan nyaman digunakan

3 komentar

 
carnoxen 2025-07-03
 
dohyun682 2025-06-30

Kapan pattern matching akan ditambahkan?

 
click 2025-06-30

Di stage 1 ada signals, tetapi sepertinya masih lama sebelum dirilis secara resmi.