برمجياتقراءة دقيقتين

Safari Technology Preview 250 يدعم using في JavaScript لتصبح الميزة متاحة في المحركات الثلاثة

المغزى

إغلاق الموارد يصبح مرتبطًا بتعريف المتغير نفسه لا بكود يُكتب يدويًا ويمكن نسيانه، ومن يكتب TypeScript يقترب من استهداف المحركات مباشرة دون تحويل.

أصدر فريق WebKit في 13 أغسطس 2026 نسخة Safari Technology Preview 250، وفيها دعم كامل لمقترح TC39 المسمى Explicit Resource Management، أي الكلمتين using وawait using. وكان المقترح قد وصل إلى Stage 4 وأصبح جزءًا معتمدًا من المعيار في 2025. وبذلك صارت الميزة منفذة في المحركات الثلاثة: V8 وSpiderMonkey وWebKit.

والفكرة بسيطة وتعالج مشكلة قديمة. فحين يُعرَّف متغير باستخدام using، مثل اتصال بقاعدة بيانات، يستدعي الـ runtime تلقائيًا الدالة Symbol.dispose الخاصة بالكائن فور انتهاء الـ block. أما await using فتستدعي Symbol.asyncDispose للموارد التي يتم إغلاقها بشكل غير متزامن.

والنتيجة تشبه ما يفعله try وfinally، لكن الإغلاق هنا مرتبط بالتعريف نفسه، لا بكود يُكتب بعده. ولذلك يصعب نسيان إغلاق المورد، لأن الإغلاق لا يُكتب يدويًا أصلًا. وتظهر الفائدة مع الموارد التي تبقى مفتوحة إذا نُسيت: الملفات، واتصالات قواعد البيانات، والـ locks، والـ streams.

وبالنسبة لمن يكتب TypeScript، كانت using متاحة منذ فترة، وكانت أداة البناء هي التي تحولها إلى كود تفهمه المتصفحات. ومع اكتمال الدعم في المحركات الثلاثة، يصبح ممكنًا استهدافها مباشرة دون polyfill.

لكن هذا الإصدار نسخة تجريبية (Technology Preview)، لا Safari المستقر. ولذلك يبقى الموعد الفعلي للاعتماد على الميزة في Safari هو وصولها إلى إصدار مستقر.

ويتضمن الإصدار نفسه إضافات أخرى، منها WebAssembly multi-memory وrelaxed SIMD، ودعم streaming upload في fetch، ودعم SVG في الـ clipboard API، وخمس خصائص CSS جديدة للنصوص.

المصادر

  1. تقرير TechTimes عن وصول using إلى Safari
  2. مدونة WebKit وملاحظات إصدارات Safari Technology Preview
  3. مقترح TC39 لـ Explicit Resource Management
  4. توثيق MDN لـ using
  5. توثيق TypeScript للميزة

من عدد السبت 2 ربيع الأول - 15 أغسطس

أخبار ذات صلة

أخبار السبت 2 ربيع الأول - 15 أغسطس