JavaScript Transpiler for Asynchronous Runtime Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Synchronous computer-programming instructions are not compatible with asynchronous processing environments, leading to disorganized job processing and failures when applications written for synchronous runtime environments are run in asynchronous environments.

Innovation Solution

A method that parses source code to identify functions relying on synchronous processing, modifies them to include asynchronous functions and commands like async and await, and stores the modified code for compatibility with asynchronous processing, allowing successful execution in asynchronous runtime environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If synchronous processing is used, then job processing is simple and straightforward, but the application cannot run in asynchronous runtime environments

Engineering Contradiction:
Improvecompatibility with asynchronous runtime environmentsVSAvoidcode modification complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a transpiler as an intermediary tool that automatically converts synchronous code into asynchronous code. The transpiler acts as a mediator between the original synchronous application and the asynchronous runtime environment, translating synchronous functions, callbacks, and event handlers into their asynchronous equivalents without requiring manual intervention for each code transformation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the execution mode parameter from synchronous to asynchronous by modifying key code elements. This includes changing function invocation patterns, transforming synchronous callbacks into Promise-based async functions, and updating event handling mechanisms. These parameter changes enable the application to adapt to asynchronous runtime environments while maintaining functional equivalence.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If synchronous functions are executed in asynchronous environments, then code execution is fast and simple, but disorganized job processing and failures occur

Engineering Contradiction:
Improvejob processing reliabilityVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing code transformation before execution. The transpiler pre-processes the synchronous code and generates the asynchronous version in advance, so that when the application runs in an asynchronous environment, the code is already properly structured to handle async/await patterns, promises, and event loops correctly, preventing job processing failures.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms through Promise objects and async/await syntax that provide structured error handling and execution status feedback. This allows the asynchronous runtime environment to track job processing status, handle errors properly, and maintain organized execution flow, preventing the disorganized processing that occurs with direct synchronous code execution.

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If manual code modification is performed to ensure asynchronous compatibility, then code compatibility is improved, but the process is time-consuming and error-prone

Engineering Contradiction:
Improveasynchronous compatibilityVSAvoidcode modification time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent enables self-service by allowing the codebase to transform itself automatically through the transpiler. Instead of developers manually reviewing and modifying each synchronous function, the transpiler autonomously analyzes the code structure, identifies synchronous patterns, and generates the corresponding asynchronous versions, significantly reducing the time and effort required for adaptation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent uses copying by creating a transformed copy of the synchronous codebase in the asynchronous format. The transpiler generates a new version of the code that mirrors the structure of the original synchronous code but uses asynchronous syntax, allowing developers to leverage existing synchronous logic while obtaining async compatibility without rewriting everything from scratch.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11314491B1Generating asynchronous runtime compatibility in JavaScript applications
Publication Date: 2022.04.26 CERNER INNOVATION INC
  • US11314491B1 patent drawing
  • US11314491B1 patent drawing
  • US11314491B1 patent drawing

AI summary

Methods and computer-readable media are disclosed herein for generating asynchronous runtime compatible applications from non-asynchronous applications. In embodiments, source code for the application that is not compatible with asynchronous processing is examined. The source code is parsed in order to identify unsafe functions that will cause failures of the application when processed in an asynchronous runtime. The source code corresponding to those unsafe functions is modified by adding asynchronous functions and commands to the source code and restructuring the source code. The modified source code may then be provided to an asynchronous runtime environment as the application is now compatible with asynchronous processing.