Κυκλοφορία της ενσωματωμένης μηχανής JavaScript Duktape 2.4.0

Που δημοσιεύθηκε Έκδοση μηχανής JavaScript Duktape 2.4.0, με στόχο την ενσωμάτωση στη βάση κώδικα έργων στη γλώσσα C/C++. Ο κινητήρας είναι συμπαγής σε μέγεθος, εξαιρετικά φορητός και χαμηλή κατανάλωση πόρων. Ο πηγαίος κώδικας του κινητήρα είναι γραμμένος σε C και εξάπλωση υπό την άδεια του MIT.

Ο κωδικός Duktape καταλαμβάνει περίπου 160 kB και καταναλώνει μόνο 70 kB μνήμης RAM και σε λειτουργία χαμηλής κατανάλωσης μνήμης 27 kB μνήμης RAM. Για να ενσωματώσετε το Duktape σε κώδικα C/C++ αρκετά προσθέστε τα αρχεία duktape.c και duktape.h στο έργο και χρησιμοποιήστε Duktape API για κλήση συναρτήσεων JavaScript από κώδικα C/C++ ή αντίστροφα. Για την απελευθέρωση αχρησιμοποίητων αντικειμένων από τη μνήμη, χρησιμοποιείται ένας συλλέκτης σκουπιδιών με τελικό επεξεργαστή, κατασκευασμένος με βάση έναν συνδυασμό αλγόριθμος Καταμέτρηση συνδέσμων με αλγόριθμο σήμανσης (Mark and Sweep). Ο κινητήρας χρησιμοποιείται για την επεξεργασία JavaScript στο πρόγραμμα περιήγησης NetSurf.

Παρέχει πλήρη συμβατότητα με τις προδιαγραφές Ecmascript 5.1 και μερική υποστήριξη Ecmascript 2015 και 2016 (E6 και E7), συμπεριλαμβανομένης της υποστήριξης αντικειμένων Proxy για εικονικοποίηση ιδιοτήτων, Typed Arrays, ArrayBuffer, Node.js Buffer, Encoding API, Symbol object, κ.λπ. Περιλαμβάνει ένα ενσωματωμένο πρόγραμμα εντοπισμού σφαλμάτων, έναν κινητήρα κανονικής έκφρασης και ένα υποσύστημα για υποστήριξη Unicode. Παρέχονται επίσης συγκεκριμένες επεκτάσεις, όπως υποστήριξη κορουτίνας, ενσωματωμένο πλαίσιο καταγραφής, μηχανισμός φόρτωσης λειτουργιών που βασίζεται σε CommonJS και σύστημα προσωρινής αποθήκευσης bytecode που σας επιτρέπει να αποθηκεύετε και να φορτώνετε μεταγλωττισμένες συναρτήσεις.

Στη νέα κυκλοφορία εφαρμόστηκε νέες κλήσεις σε duk_to_stacktrace() και duk_safe_to_stacktrace() για λήψη ιχνών στοίβας, duk_push_bare_array() για προσθήκη ανεξάρτητων παρουσιών πίνακα. Οι συναρτήσεις duk_require_constructable() και duk_require_constructor_call() έχουν δημοσιοποιηθεί. Βελτιωμένη συμβατότητα με την προδιαγραφή ES2017. Η εργασία με πίνακες και αντικείμενα έχει βελτιστοποιηθεί. Προστέθηκε η επιλογή «--no-auto-complete» στη διεπαφή duk CLI για να απενεργοποιήσετε την ολοκλήρωση εισαγωγής.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο