| Index: test/cctest/profiler-extension.cc
 | 
| diff --git a/src/extensions/trigger-failure-extension.cc b/test/cctest/profiler-extension.cc
 | 
| similarity index 54%
 | 
| copy from src/extensions/trigger-failure-extension.cc
 | 
| copy to test/cctest/profiler-extension.cc
 | 
| index 5fe6bbbf477a57696421f35dc41ad218bda1910e..7b0b099fa751c49bfa1b0fba396d6ae43508f294 100644
 | 
| --- a/src/extensions/trigger-failure-extension.cc
 | 
| +++ b/test/cctest/profiler-extension.cc
 | 
| @@ -24,59 +24,49 @@
 | 
|  // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
|  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
|  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
| +//
 | 
| +// Tests of profiles generator and utilities.
 | 
|  
 | 
| -#include "trigger-failure-extension.h"
 | 
| -#include "v8.h"
 | 
| -
 | 
| -namespace v8 {
 | 
| -namespace internal {
 | 
| -
 | 
| +#include "profiler-extension.h"
 | 
|  
 | 
| -const char* const TriggerFailureExtension::kSource =
 | 
| -    "native function triggerCheckFalse();"
 | 
| -    "native function triggerAssertFalse();"
 | 
| -    "native function triggerSlowAssertFalse();";
 | 
| +#include "cctest.h"
 | 
|  
 | 
| +const v8::CpuProfile* ProfilerExtension::last_profile = NULL;
 | 
| +const char* ProfilerExtension::kSource =
 | 
| +    "native function startProfiling();"
 | 
| +    "native function stopProfiling();";
 | 
|  
 | 
| -v8::Handle<v8::FunctionTemplate>
 | 
| -TriggerFailureExtension::GetNativeFunctionTemplate(
 | 
| -    v8::Isolate* isolate,
 | 
| -    v8::Handle<v8::String> str) {
 | 
| -  if (strcmp(*v8::String::Utf8Value(str), "triggerCheckFalse") == 0) {
 | 
| -    return v8::FunctionTemplate::New(
 | 
| -        TriggerFailureExtension::TriggerCheckFalse);
 | 
| -  } else if (strcmp(*v8::String::Utf8Value(str), "triggerAssertFalse") == 0) {
 | 
| -    return v8::FunctionTemplate::New(
 | 
| -        TriggerFailureExtension::TriggerAssertFalse);
 | 
| +v8::Handle<v8::FunctionTemplate> ProfilerExtension::GetNativeFunctionTemplate(
 | 
| +    v8::Isolate* isolate, v8::Handle<v8::String> name) {
 | 
| +  if (name->Equals(v8::String::NewFromUtf8(isolate, "startProfiling"))) {
 | 
| +    return v8::FunctionTemplate::New(ProfilerExtension::StartProfiling);
 | 
| +  } else if (name->Equals(v8::String::NewFromUtf8(isolate, "stopProfiling"))) {
 | 
| +    return v8::FunctionTemplate::New(ProfilerExtension::StopProfiling);
 | 
|    } else {
 | 
| -    CHECK_EQ(0, strcmp(*v8::String::Utf8Value(str), "triggerSlowAssertFalse"));
 | 
| -    return v8::FunctionTemplate::New(
 | 
| -        TriggerFailureExtension::TriggerSlowAssertFalse);
 | 
| +    CHECK(false);
 | 
| +    return v8::Handle<v8::FunctionTemplate>();
 | 
|    }
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void TriggerFailureExtension::TriggerCheckFalse(
 | 
| +void ProfilerExtension::StartProfiling(
 | 
|      const v8::FunctionCallbackInfo<v8::Value>& args) {
 | 
| -  CHECK(false);
 | 
| +  last_profile = NULL;
 | 
| +  v8::CpuProfiler* cpu_profiler = args.GetIsolate()->GetCpuProfiler();
 | 
| +  cpu_profiler->StartCpuProfiling((args.Length() > 0)
 | 
| +      ? args[0].As<v8::String>()
 | 
| +      : v8::String::Empty(args.GetIsolate()));
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void TriggerFailureExtension::TriggerAssertFalse(
 | 
| +void ProfilerExtension::StopProfiling(
 | 
|      const v8::FunctionCallbackInfo<v8::Value>& args) {
 | 
| -  ASSERT(false);
 | 
| +  v8::CpuProfiler* cpu_profiler = args.GetIsolate()->GetCpuProfiler();
 | 
| +  last_profile = cpu_profiler->StopCpuProfiling((args.Length() > 0)
 | 
| +      ? args[0].As<v8::String>()
 | 
| +      : v8::String::Empty(args.GetIsolate()));
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void TriggerFailureExtension::TriggerSlowAssertFalse(
 | 
| -    const v8::FunctionCallbackInfo<v8::Value>& args) {
 | 
| -  SLOW_ASSERT(false);
 | 
| -}
 | 
| -
 | 
| -
 | 
| -void TriggerFailureExtension::Register() {
 | 
| -  static TriggerFailureExtension trigger_failure_extension;
 | 
| -  static v8::DeclareExtension declaration(&trigger_failure_extension);
 | 
| -}
 | 
| -
 | 
| -} }  // namespace v8::internal
 | 
| +static ProfilerExtension kProfilerExtension;
 | 
| +v8::DeclareExtension kProfilerExtensionDeclaration(&kProfilerExtension);
 | 
| 
 |