## 5 State-of-the-Art
### Applications and Evaluation  
In [101], the authors evaluated the use of Wasm to enhance the performance of JavaScript applications in IoT environments. Tests were conducted on a Raspberry Pi using the Ostrich Benchmark Suite. The study found that when JavaScript was executed in Wasm, performance improved by 39.81% in terms of execution time, there was a slight increase in memory usage, and battery consumption decreased by 39.86%. The authors of [102] delved into Wasm as a potential solution for performance issues in JavaScript applications, especially highly user-interactive websites and browser-based games. In a continuation of our previous research on the GraalVM ecosystem, we examined Truffle-Wasm, a Wasm based system hosted on GraalVM and Truffle Java framework, outlining the architecture and performance of TruffleWasm within the GraalVM-based ecosystem based on tests conducted in our academic environment. Another work investigated the correlation between energy consumption and the use of Wasm versus JavaScript [103]. This research showed that Wasm consumes less energy than JavaScript. It was found that Firefox has significantly lower energy consumption compared to Chrome for both Wasm and JavaScript. These findings indicate that utilizing Wasm for web application development can reduce energy consumption and improve Android device battery life. In another article [104], the authors sought to evaluate advances in JavaScript and Wasm execution environments across a variety of devices. Using the Ostrich benchmark suite, they assessed the improvements in JavaScript-based browser engines, a performance comparison of JavaScript and Wasm, the performance of portable versus vendor-specific browsers, and server-side versus client-side JavaScript/Wasm, with the aim of determining the best performing browser/language and device. The thesis in [105] provides a general introduction to Wasm and its potential to revolutionize web application development. After a review of articles and lectures, Wasm's applications and capabilities were evaluated and it was found to have the potential to change web and other applications in the future. This thesis demonstrates how to create a simple Wasm module with the Rust language to decode QR code data from images. In [106], the authors examined the performance of numerical computing on the web, including both JavaScript and Wasm, across a variety of devices. They created a new benchmarking approach for centralized benchmarking on mobile and IoT devices, and conducted four performance studies using the Ostrich benchmark suite,then analyzed the performance evolution of JavaScript, the relative performance of Wasm, and the performance of server-side Node.js while providing a comprehensive performance analysis for a wide range of devices. The need for isomorphic software architectures in IoT development was investigated in [107]. Such architectures can allow for consistency in programming across various devices, enabling applications and their components to be deployed or migrated dynamically without any alterations to their original format. Another study [108] explored the use of Wasm beyond the browser environment. Wasm is a relatively new technology designed to provide a compilation target for numerous programming languages, with the aim of deploying both client and server applications on the web. This study particularly focused on partitioning Wasm applications into modules and linking them during execution, potentially reducing memory usage, binary size, and compilation and startup time. Another paper proposed a method for slicing Wasm programs to aid applications in reverse engineering, code comprehension, and security, among others [109]. Program slicing creates a minimal version of the original program that maintains the behavior at a specific location. The proposed approach, which focuses on Wasm's specific dependencies, faces the challenge of performing dependence analysis at the binary level.