@@ -1877,6 +1877,11 @@ Local<String> Shell::Stringify(Isolate* isolate, Local<Value> value) {
18771877
18781878Local<ObjectTemplate> Shell::CreateGlobalTemplate (Isolate* isolate) {
18791879 Local<ObjectTemplate> global_template = ObjectTemplate::New (isolate);
1880+ global_template->Set (Symbol::GetToStringTag (isolate),
1881+ String::NewFromUtf8Literal (isolate, " global" ));
1882+ global_template->Set (isolate, " version" ,
1883+ FunctionTemplate::New (isolate, Version));
1884+
18801885 global_template->Set (isolate, " print" , FunctionTemplate::New (isolate, Print));
18811886 global_template->Set (isolate, " printErr" ,
18821887 FunctionTemplate::New (isolate, PrintErr));
@@ -1895,8 +1900,77 @@ Local<ObjectTemplate> Shell::CreateGlobalTemplate(Isolate* isolate) {
18951900 if (!options.omit_quit ) {
18961901 global_template->Set (isolate, " quit" , FunctionTemplate::New (isolate, Quit));
18971902 }
1903+ global_template->Set (isolate, " testRunner" ,
1904+ Shell::CreateTestRunnerTemplate (isolate));
1905+ global_template->Set (isolate, " Realm" , Shell::CreateRealmTemplate (isolate));
1906+ global_template->Set (isolate, " performance" ,
1907+ Shell::CreatePerformanceTemplate (isolate));
1908+ global_template->Set (isolate, " Worker" , Shell::CreateWorkerTemplate (isolate));
1909+ global_template->Set (isolate, " os" , Shell::CreateOSTemplate (isolate));
1910+ global_template->Set (isolate, " d8" , Shell::CreateD8Template (isolate));
1911+
1912+ if (i::FLAG_expose_async_hooks) {
1913+ global_template->Set (isolate, " async_hooks" ,
1914+ Shell::CreateAsyncHookTemplate (isolate));
1915+ }
1916+
1917+ return global_template;
1918+ }
1919+
1920+ Local<ObjectTemplate> Shell::CreateOSTemplate (Isolate* isolate) {
1921+ Local<ObjectTemplate> os_template = ObjectTemplate::New (isolate);
1922+ AddOSMethods (isolate, os_template);
1923+ return os_template;
1924+ }
1925+
1926+ Local<FunctionTemplate> Shell::CreateWorkerTemplate (Isolate* isolate) {
1927+ Local<FunctionTemplate> worker_fun_template =
1928+ FunctionTemplate::New (isolate, WorkerNew);
1929+ Local<Signature> worker_signature =
1930+ Signature::New (isolate, worker_fun_template);
1931+ worker_fun_template->SetClassName (
1932+ String::NewFromUtf8Literal (isolate, " Worker" ));
1933+ worker_fun_template->ReadOnlyPrototype ();
1934+ worker_fun_template->PrototypeTemplate ()->Set (
1935+ isolate, " terminate" ,
1936+ FunctionTemplate::New (isolate, WorkerTerminate, Local<Value>(),
1937+ worker_signature));
1938+ worker_fun_template->PrototypeTemplate ()->Set (
1939+ isolate, " postMessage" ,
1940+ FunctionTemplate::New (isolate, WorkerPostMessage, Local<Value>(),
1941+ worker_signature));
1942+ worker_fun_template->PrototypeTemplate ()->Set (
1943+ isolate, " getMessage" ,
1944+ FunctionTemplate::New (isolate, WorkerGetMessage, Local<Value>(),
1945+ worker_signature));
1946+ worker_fun_template->InstanceTemplate ()->SetInternalFieldCount (1 );
1947+ return worker_fun_template;
1948+ }
1949+
1950+ Local<ObjectTemplate> Shell::CreateAsyncHookTemplate (Isolate* isolate) {
1951+ Local<ObjectTemplate> async_hooks_templ = ObjectTemplate::New (isolate);
1952+ async_hooks_templ->Set (isolate, " createHook" ,
1953+ FunctionTemplate::New (isolate, AsyncHooksCreateHook));
1954+ async_hooks_templ->Set (
1955+ isolate, " executionAsyncId" ,
1956+ FunctionTemplate::New (isolate, AsyncHooksExecutionAsyncId));
1957+ async_hooks_templ->Set (
1958+ isolate, " triggerAsyncId" ,
1959+ FunctionTemplate::New (isolate, AsyncHooksTriggerAsyncId));
1960+ return async_hooks_templ;
1961+ }
1962+
1963+ Local<ObjectTemplate> Shell::CreatePromiseHookTemplate (Isolate* isolate) {
1964+ Local<ObjectTemplate> promise_hooks_templ = ObjectTemplate::New (isolate);
1965+ promise_hooks_templ->Set (
1966+ isolate, " setHooks" ,
1967+ FunctionTemplate::New (isolate, SetPromiseHooks, Local<Value>(),
1968+ Local<Signature>(), 4 ));
1969+ return promise_hooks_templ;
1970+ }
1971+
1972+ Local<ObjectTemplate> Shell::CreateTestRunnerTemplate (Isolate* isolate) {
18981973 Local<ObjectTemplate> test_template = ObjectTemplate::New (isolate);
1899- global_template->Set (isolate, " testRunner" , test_template);
19001974 test_template->Set (isolate, " notifyDone" ,
19011975 FunctionTemplate::New (isolate, NotifyDone));
19021976 test_template->Set (isolate, " waitUntilDone" ,
@@ -1905,13 +1979,20 @@ Local<ObjectTemplate> Shell::CreateGlobalTemplate(Isolate* isolate) {
19051979 // installed on the global object can be hidden with the --omit-quit flag
19061980 // (e.g. on asan bots).
19071981 test_template->Set (isolate, " quit" , FunctionTemplate::New (isolate, Quit));
1982+ return test_template;
1983+ }
19081984
1909- global_template->Set (isolate, " version" ,
1910- FunctionTemplate::New (isolate, Version));
1911- global_template->Set (Symbol::GetToStringTag (isolate),
1912- String::NewFromUtf8Literal (isolate, " global" ));
1985+ Local<ObjectTemplate> Shell::CreatePerformanceTemplate (Isolate* isolate) {
1986+ Local<ObjectTemplate> performance_template = ObjectTemplate::New (isolate);
1987+ performance_template->Set (isolate, " now" ,
1988+ FunctionTemplate::New (isolate, PerformanceNow));
1989+ performance_template->Set (
1990+ isolate, " measureMemory" ,
1991+ FunctionTemplate::New (isolate, PerformanceMeasureMemory));
1992+ return performance_template;
1993+ }
19131994
1914- // Bind the Realm object.
1995+ Local<ObjectTemplate> Shell::CreateRealmTemplate (Isolate* isolate) {
19151996 Local<ObjectTemplate> realm_template = ObjectTemplate::New (isolate);
19161997 realm_template->Set (isolate, " current" ,
19171998 FunctionTemplate::New (isolate, RealmCurrent));
@@ -1936,64 +2017,13 @@ Local<ObjectTemplate> Shell::CreateGlobalTemplate(Isolate* isolate) {
19362017 FunctionTemplate::New (isolate, RealmEval));
19372018 realm_template->SetAccessor (String::NewFromUtf8Literal (isolate, " shared" ),
19382019 RealmSharedGet, RealmSharedSet);
1939- global_template->Set (isolate, " Realm" , realm_template);
1940-
1941- Local<ObjectTemplate> performance_template = ObjectTemplate::New (isolate);
1942- performance_template->Set (isolate, " now" ,
1943- FunctionTemplate::New (isolate, PerformanceNow));
1944- performance_template->Set (
1945- isolate, " measureMemory" ,
1946- FunctionTemplate::New (isolate, PerformanceMeasureMemory));
1947- global_template->Set (isolate, " performance" , performance_template);
1948-
1949- Local<FunctionTemplate> worker_fun_template =
1950- FunctionTemplate::New (isolate, WorkerNew);
1951- Local<Signature> worker_signature =
1952- Signature::New (isolate, worker_fun_template);
1953- worker_fun_template->SetClassName (
1954- String::NewFromUtf8Literal (isolate, " Worker" ));
1955- worker_fun_template->ReadOnlyPrototype ();
1956- worker_fun_template->PrototypeTemplate ()->Set (
1957- isolate, " terminate" ,
1958- FunctionTemplate::New (isolate, WorkerTerminate, Local<Value>(),
1959- worker_signature));
1960- worker_fun_template->PrototypeTemplate ()->Set (
1961- isolate, " postMessage" ,
1962- FunctionTemplate::New (isolate, WorkerPostMessage, Local<Value>(),
1963- worker_signature));
1964- worker_fun_template->PrototypeTemplate ()->Set (
1965- isolate, " getMessage" ,
1966- FunctionTemplate::New (isolate, WorkerGetMessage, Local<Value>(),
1967- worker_signature));
1968- worker_fun_template->InstanceTemplate ()->SetInternalFieldCount (1 );
1969- global_template->Set (isolate, " Worker" , worker_fun_template);
1970-
1971- Local<ObjectTemplate> os_templ = ObjectTemplate::New (isolate);
1972- AddOSMethods (isolate, os_templ);
1973- global_template->Set (isolate, " os" , os_templ);
1974-
1975- if (i::FLAG_expose_async_hooks) {
1976- Local<ObjectTemplate> async_hooks_templ = ObjectTemplate::New (isolate);
1977- async_hooks_templ->Set (
1978- isolate, " createHook" ,
1979- FunctionTemplate::New (isolate, AsyncHooksCreateHook));
1980- async_hooks_templ->Set (
1981- isolate, " executionAsyncId" ,
1982- FunctionTemplate::New (isolate, AsyncHooksExecutionAsyncId));
1983- async_hooks_templ->Set (
1984- isolate, " triggerAsyncId" ,
1985- FunctionTemplate::New (isolate, AsyncHooksTriggerAsyncId));
1986- global_template->Set (isolate, " async_hooks" , async_hooks_templ);
1987- }
1988- {
1989- Local<ObjectTemplate> promise_template = ObjectTemplate::New (isolate);
1990- promise_template->Set (
1991- isolate, " setHooks" ,
1992- FunctionTemplate::New (isolate, SetPromiseHooks, Local<Value>(),
1993- Local<Signature>(), 4 ));
1994- global_template->Set (isolate, " promise" , promise_template);
1995- }
1996- return global_template;
2020+ return realm_template;
2021+ }
2022+ Local<ObjectTemplate> Shell::CreateD8Template (Isolate* isolate) {
2023+ Local<ObjectTemplate> d8_template = ObjectTemplate::New (isolate);
2024+ d8_template->Set (isolate, " promise" ,
2025+ Shell::CreatePromiseHookTemplate (isolate));
2026+ return d8_template;
19972027}
19982028
19992029static void PrintMessageCallback (Local<Message> message, Local<Value> error) {
0 commit comments