A reflective data and calculating model for javascript