JavaScript Dependency Tracking via Property Coercion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current dependency tracking methods in JavaScript are inefficient, leading to performance issues due to unnecessary recalculations and complex syntax, making it difficult for novice developers to manage dependencies in dynamic web applications, such as online shopping carts, where changes in input fields need to automatically update calculated fields.

Innovation Solution

A method and apparatus for dependency tracking in JavaScript that defines properties as objects and uses coercion methods (valueOf() and toString()) to detect dependencies, notifying and updating dependent properties when a property object changes, allowing for automatic recalculation of calculated fields without extensive programming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional dependency tracking algorithms are used to ensure calculated fields update automatically, then dependency tracking is achieved, but the syntax becomes complicated and difficult for novice developers to use

Engineering Contradiction:
Improvedependency trackingVSAvoidsyntax complexity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system automatically tracks dependencies and performs recalculations without requiring developers to manually implement observer patterns or establish listening relationships. The JavaScript engine intercepts property accesses and automatically establishes dependency relationships, allowing the system to serve itself rather than requiring complex manual configuration by developers.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary layer between the simple expression syntax and the dependency tracking mechanism. This intermediary intercepts property accesses within expressions and automatically establishes dependency relationships, shielding developers from the complexity of implementing dependency tracking while maintaining reliable automatic updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If all quantities within the form are recalculated whenever any input field is changed, then all dependent fields are updated, but performance deteriorates due to unnecessary recalculations

Engineering Contradiction:
Improvefield updatesVSAvoidrecalculation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the form into distinct dependency groups by tracking which specific fields depend on which input fields. Instead of recalculating all quantities, the system identifies and recalculates only the specific segments (dependent fields) that are actually affected by changes, reducing unnecessary computations while ensuring all required fields are updated.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements feedback mechanisms where dependent fields register their dependencies on input fields. When an input field changes, the system receives feedback about which specific dependent fields need updating, allowing it to perform targeted recalculations only for those fields that require updates based on the change propagation pattern.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9058160B2Method and apparatus for dependency tracking in javascript
Publication Date: 2015.06.16 ADOBE INC
  • US9058160B2 patent drawing
  • US9058160B2 patent drawing
  • US9058160B2 patent drawing

AI summary

A method and apparatus for dependency tracking in a JavaScript is disclosed. The method comprises defining a plurality of properties as JavaScript property objects, evaluating at least one expression containing at least one property object in the plurality of property objects to define at least one dependent property, notifying the at least one dependent property when a state of the property object changes, and updating the state of the at least one dependent property based on the changed state of the property object.