Commit 401b3087 authored by vitalyr@chromium.org's avatar vitalyr@chromium.org

Allow calling stats API functions before we have an isolate.

Review URL: http://codereview.chromium.org/6733030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent aa0dfc8a
......@@ -4398,19 +4398,19 @@ void V8::SetCaptureStackTraceForUncaughtExceptions(
void V8::SetCounterFunction(CounterLookupCallback callback) {
i::Isolate* isolate = i::Isolate::Current();
i::Isolate* isolate = EnterIsolateIfNeeded();
if (IsDeadCheck(isolate, "v8::V8::SetCounterFunction()")) return;
isolate->stats_table()->SetCounterFunction(callback);
}
void V8::SetCreateHistogramFunction(CreateHistogramCallback callback) {
i::Isolate* isolate = i::Isolate::Current();
i::Isolate* isolate = EnterIsolateIfNeeded();
if (IsDeadCheck(isolate, "v8::V8::SetCreateHistogramFunction()")) return;
isolate->stats_table()->SetCreateHistogramFunction(callback);
}
void V8::SetAddHistogramSampleFunction(AddHistogramSampleCallback callback) {
i::Isolate* isolate = i::Isolate::Current();
i::Isolate* isolate = EnterIsolateIfNeeded();
if (IsDeadCheck(isolate, "v8::V8::SetAddHistogramSampleFunction()")) return;
isolate->stats_table()->
SetAddHistogramSampleFunction(callback);
......
......@@ -13181,7 +13181,14 @@ TEST(MultipleIsolatesOnIndividualThreads) {
class InitDefaultIsolateThread : public v8::internal::Thread {
public:
enum TestCase { IgnoreOOM, SetResourceConstraints, SetFatalHandler };
enum TestCase {
IgnoreOOM,
SetResourceConstraints,
SetFatalHandler,
SetCounterFunction,
SetCreateHistogramFunction,
SetAddHistogramSampleFunction
};
explicit InitDefaultIsolateThread(TestCase testCase)
: Thread(NULL, "InitDefaultIsolateThread"),
......@@ -13206,6 +13213,18 @@ class InitDefaultIsolateThread : public v8::internal::Thread {
case SetFatalHandler:
v8::V8::SetFatalErrorHandler(NULL);
break;
case SetCounterFunction:
v8::V8::SetCounterFunction(NULL);
break;
case SetCreateHistogramFunction:
v8::V8::SetCreateHistogramFunction(NULL);
break;
case SetAddHistogramSampleFunction:
v8::V8::SetAddHistogramSampleFunction(NULL);
break;
}
result_ = true;
}
......@@ -13237,6 +13256,18 @@ TEST(InitializeDefaultIsolateOnSecondaryThread3) {
InitializeTestHelper(InitDefaultIsolateThread::SetFatalHandler);
}
TEST(InitializeDefaultIsolateOnSecondaryThread4) {
InitializeTestHelper(InitDefaultIsolateThread::SetCounterFunction);
}
TEST(InitializeDefaultIsolateOnSecondaryThread5) {
InitializeTestHelper(InitDefaultIsolateThread::SetCreateHistogramFunction);
}
TEST(InitializeDefaultIsolateOnSecondaryThread6) {
InitializeTestHelper(InitDefaultIsolateThread::SetAddHistogramSampleFunction);
}
TEST(StringCheckMultipleContexts) {
const char* code =
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment