Patent application number | Description | Published |
20100205673 | CODE PROPERTY ANALYSIS FOR SECURITY MITIGATIONS - Attempts to make code secure often are associated with performance penalties. To facilitate striking an acceptable balance between performance and security, vulnerable areas of source code are identified. The vulnerable areas are examined for areas that are actually safe and the safe areas are filtered from the universe of code that receives security mitigations. The remaining code receives security mitigations appropriate to the level of risk of the code. | 08-12-2010 |
20110191848 | PREVENTING MALICIOUS JUST-IN-TIME SPRAYING ATTACKS - A method disclosed herein includes acts of receiving code at a Just-in-Time compiler executing in an application on a computing device and compiling the code to generate machine code and causing the machine code to be placed on at least one page that is accessible by at least one processor on the computing device, wherein the Just-in-Time compiler compiles the code utilizing at least one technique for preventing a Just-in-Time spraying attack. | 08-04-2011 |
20120297360 | DYNAMIC CODE GENERATION AND MEMORY MANAGEMENT FOR COMPONENT OBJECT MODEL DATA CONSTRUCTS - Dynamic code generation and memory management techniques are provided for component object model (COM) objects with corresponding representations in script code and native code. A browser component can receive script code including the code representing the COM object and a marshaling component is provided that marshals, based on a request for native code representing the COM object, the code representing the COM object to the native code based on a pre-constructed intermediate data structure. The pre-constructed intermediate data structure, such as a virtual table, is pre-constructed based on a dynamic type representation associated with a prototype of the COM object and cached for re-use by the marshaling component. Other embodiments provide finalizer support for memory management of COM objects having script and native world representations including an implementation of a two-phase commit protocol that enables efficient and conservative recycling of objects and associated memory. | 11-22-2012 |
20130061128 | FAST PRESENTATION OF MARKUP CONTENT HAVING SCRIPT CODE - Dynamic code generation and coordination techniques are provided for display of dynamic markup documents including script code. A code generation process is not only guided by deferral of code preparation stages and sub-stages, but also informed by various information levels possessed concerning the code itself, either through interpretation or observation of execution, to not only generate modified code, but also to generate alternative code for alternative situations (e.g., generating different loop bodies that can thereafter be readily swapped in or out depending on a given function call by the browser application). A multi-core architecture further improves user experience by asymmetrically ensuring web site presentation and functionality is prioritized for the user experience. | 03-07-2013 |
20130067441 | PROFILE GUIDED JIT CODE GENERATION - Methods, systems, and computer program products are provided for profiling source code to enable improved source code execution. A runtime engine includes a parser, a bytecode generator, an execution controller, an interpreter, a just-in-time (JIT) compiler, and a profile generator. The parser receives source code coded in a dynamic language and parses the source code to generate parsed source code. The bytecode generator converts the parsed source code to bytecode. The interpreter is configured to interpret the bytecode when enabled by the execution controller. The JIT compiler is configured to compile the bytecode when enabled by the execution controller. The profile generator generates profile information from the bytecode and stores the profile information. The execution controller enables the interpreter or the JIT compiler to perform their respective functions based on the profile information. | 03-14-2013 |
20130205282 | TRANSFERRING PROGRAM EXECUTION FROM COMPILED CODE TO INTERPRETED CODE - Optimized compiled code can be generated from bytecode derived from a program written in a dynamic language such as JavaScript. Optimizations can be based on one or more assumptions. During execution of the optimized compiled code, the assumption or assumptions on which the optimization was based can be examined for validity. In response to determining that the optimization was based on an invalid assumption or assumptions, execution of the optimized code can stop, the state of variables used by an interpreter can be restored and execution of the program can resume in the interpreter using the unoptimized bytecode derived from the program. Resumption of the program can resume at the point in the bytecode analogous to the point in the optimized compiled code at which the assumption or assumptions was determined to be false. | 08-08-2013 |
20140181591 | TEST STRATEGY FOR PROFILE-GUIDED CODE EXECUTION OPTIMIZERS - Systems, methods and computer program products are described herein for testing a system that is designed to optimize the execution of code within an application or other computer program based on profile data collected during the execution of such code. The embodiments described herein utilize what is referred to as a “profile data mutator” to mutate or modify the profile data between the point when it is collected and the point when it is used to apply an optimization. By mutating the profile data at this point, testing of a system for optimized code execution can be significantly more thorough. Furthermore, such profile data mutation leads to a more scalable and efficient testing technique for profile-guided systems for optimized code execution. | 06-26-2014 |