Constellation / iv

ECMAScript Lexer / Parser / Interpreter / VM / method JIT written in C++
BSD 2-Clause "Simplified" License
417 stars 33 forks source link

Merging type records from predecessor blocks (not backward jumped) #74

Open Constellation opened 12 years ago

Constellation commented 12 years ago

We should merge type records from predecessor blocks.

A;
if (cond)
    B;
C;

We should merge A and B type record and provide merged type record to C.

Constellation commented 12 years ago

First, we add mutated flag to TypeRecord and hold their database (unordered_map) as shapred_ptr. And if branched target modify TypeRecord, we split out.