Fix updater and some promise binding issues

The promise specs say that promise functions MUST have undefined bound to `this` context when in strict mode. We use a custom function to bypass this and force the this function into the context