// The current thread may not yet had entered an isolate to run.
// Note the Isolate::Current() may be non-null because for various
- // initialization purposes an initializing thread may be assigned an
- // isolate but not actually enter it.
+ // initialization purposes an initializing thread may be assigned an isolate
+ // but not actually enter it.
if (i::Isolate::CurrentPerIsolateThreadData() == NULL) {
i::Isolate::EnterDefaultIsolate();
}
void V8::TearDown() {
- // The current thread may not yet had entered an isolate to run or may
- // have already disposed the entered isolated before.
- // Note the Isolate::Current() may be non-null because for various
- // initialization purposes an initializing thread may be assigned an
- // isolate but not actually enter it.
- if (i::Isolate::CurrentPerIsolateThreadData() == NULL) {
- return;
- }
-
Isolate* isolate = Isolate::Current();
ASSERT(isolate->IsDefaultIsolate());
if (!isolate->IsInitialized()) return;
// The isolate has to be torn down before clearing the LOperand
// caches so that the optimizing compiler thread (if running)
// doesn't see an inconsistent view of the lithium instructions.
- Isolate::SetIsolateThreadLocals(isolate, NULL);
isolate->TearDown();
delete isolate;
# BUG(382): Weird test. Can't guarantee that it never times out.
test-api/ApplyInterruption: PASS || TIMEOUT
+# TODO(mstarzinger): Fail gracefully on multiple V8::Dispose calls.
+test-api/InitializeAndDisposeMultiple: SKIP
+
# These tests always fail. They are here to test test.py. If
# they don't fail then test.py has failed.
test-serialize/TestThatAlwaysFails: FAIL