separated js compiler