Experiments in general purpose lazy evaluation for JavaScript