Phát hành công cụ JavaScript nhúng Duktape 2.4.0

được phát hành Phát hành công cụ JavaScript Duktape 2.4.0, nhằm mục đích nhúng vào cơ sở mã của các dự án bằng ngôn ngữ C/C++. Động cơ có kích thước nhỏ gọn, tính di động cao và tiêu thụ tài nguyên thấp. Mã nguồn của động cơ được viết bằng C và lây lan theo giấy phép MIT.

Mã Duktape chiếm khoảng 160 kB và chỉ tiêu thụ 70 kB RAM và ở chế độ tiêu thụ bộ nhớ thấp là 27 kB RAM. Để tích hợp Duktape vào mã C/C++ là đủ thêm tệp duktape.c và duktape.h vào dự án và sử dụng API Duktape để gọi các hàm JavaScript từ mã C/C++ hoặc ngược lại. Để giải phóng các đối tượng không sử dụng khỏi bộ nhớ, bộ thu gom rác có bộ hoàn thiện được sử dụng, được xây dựng trên cơ sở kết hợp thuật toán đếm liên kết bằng thuật toán đánh dấu (Mark và Sweep). Công cụ được sử dụng để xử lý JavaScript trong trình duyệt NetSurf.

Cung cấp khả năng tương thích hoàn toàn với thông số kỹ thuật Ecmascript 5.1 và một phần ủng hộ Ecmascript 2015 và 2016 (E6 và E7), bao gồm hỗ trợ đối tượng Proxy để ảo hóa thuộc tính, Mảng đã nhập, ArrayBuffer, Bộ đệm Node.js, API mã hóa, đối tượng Biểu tượng, v.v. Nó bao gồm một trình gỡ lỗi tích hợp, một công cụ biểu thức chính quy và một hệ thống con để hỗ trợ Unicode. Các tiện ích mở rộng cụ thể cũng được cung cấp, chẳng hạn như hỗ trợ coroutine, khung ghi nhật ký tích hợp, cơ chế tải mô-đun dựa trên CommonJS và hệ thống bộ đệm mã byte cho phép bạn lưu và tải các hàm đã biên dịch.

Trong bản phát hành mới thực hiện các lệnh gọi mới tới duk_to_stacktrace() và duk_safe_to_stacktrace() để lấy dấu vết ngăn xếp, duk_push_bare_array() để thêm các phiên bản mảng độc lập. Các hàm duk_require_constructable() và duk_require_constructor_call() đã được công khai. Cải thiện khả năng tương thích với thông số kỹ thuật ES2017. Làm việc với mảng và đối tượng đã được tối ưu hóa. Đã thêm tùy chọn “--no-auto-complete” vào giao diện duk CLI để tắt tính năng hoàn thành đầu vào.

Nguồn: opennet.ru

Thêm một lời nhận xét