Chromium Code Reviews| Index: test/cctest/test-api.cc |
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
| index ca2c8dea063c4fca55ad398b7e1c8897f15900b6..2273651d0824fc84079aa6301bd9e43bd509739a 100644 |
| --- a/test/cctest/test-api.cc |
| +++ b/test/cctest/test-api.cc |
| @@ -18421,7 +18421,33 @@ TEST(PromiseHook) { |
| v8_str(promise_hook_data->promise_hook_value.c_str())) |
| .FromJust()); |
| + promise_hook_data->Reset(); |
| + promise_hook_data->promise_hook_value = "subclass"; |
| + source = |
| + "var resolve, value = '';\n" |
| + "class MyPromise extends Promise {};\n" |
| + "var p = new MyPromise(r => resolve = r);\n" |
| + "var p1 = p.then(() => value = 'subclass');\n"; |
| + |
| + CompileRun(source); |
| + // No init hook for subclasses |
|
Dan Ehrenberg
2016/12/20 16:29:38
Is this behavior intentional? Maybe the Promise co
|
| + CHECK_EQ(0, promise_hook_data->promise_hook_count); |
| + |
| + CompileRun("resolve();\n"); |
| + resolve_promise = global->Get(context, v8_str("resolve")).ToLocalChecked(); |
| + before_promise = global->Get(context, v8_str("before")).ToLocalChecked(); |
| + after_promise = global->Get(context, v8_str("after")).ToLocalChecked(); |
| + CHECK(GetPromise("p")->Equals(env.local(), before_promise).FromJust()); |
| + CHECK(GetPromise("p")->Equals(env.local(), after_promise).FromJust()); |
| + CHECK(GetPromise("p1")->Equals(env.local(), resolve_promise).FromJust()); |
| + // 1) resolve hook (p) |
| + // 2) before hook (p) |
| + // 3) after hook (p) |
| + // 4) resolve hook (p1) |
| + CHECK_EQ(4, promise_hook_data->promise_hook_count); |
| + |
| delete promise_hook_data; |
| + isolate->SetPromiseHook(nullptr); |
| } |
| void AnalyzeStackOfDynamicScriptWithSourceURL( |