Use scoped policy for micro tasks

This commit is contained in:
Cheng Zhao 2016-08-22 19:34:59 +09:00
parent 9bc6302aea
commit 103fea5cdf
2 changed files with 7 additions and 5 deletions

View file

@ -169,10 +169,11 @@ node::Environment* NodeBindings::CreateEnvironment(
context->GetIsolate(), uv_default_loop(), context, context->GetIsolate(), uv_default_loop(), context,
args.size(), c_argv.get(), 0, nullptr); args.size(), c_argv.get(), 0, nullptr);
// Node turns off AutorunMicrotasks, but we need it in web pages to match the // Node uses the deprecated SetAutorunMicrotasks(false) mode, we should switch
// behavior of Chrome. // to use the scoped policy to match blink's behavior.
if (!is_browser_) if (!is_browser_) {
context->GetIsolate()->SetAutorunMicrotasks(true); context->GetIsolate()->SetMicrotasksPolicy(v8::MicrotasksPolicy::kScoped);
}
mate::Dictionary process(context->GetIsolate(), env->process_object()); mate::Dictionary process(context->GetIsolate(), env->process_object());
process.Set("type", process_type); process.Set("type", process_type);

View file

@ -510,9 +510,10 @@ describe('chromium feature', function () {
}).then((reader) => { }).then((reader) => {
reader.read().then((r) => { reader.read().then((r) => {
reader.cancel() reader.cancel()
done()
}) })
}).catch(function (e) { }).catch(function (e) {
done() done(e)
}) })
}) })
}) })