| Index: test/cctest/compiler/function-tester.h
|
| diff --git a/test/cctest/compiler/function-tester.h b/test/cctest/compiler/function-tester.h
|
| index 2ed2fe99883da65ae29d0c40ef287d40b1b41ed0..6568fc7679a35e279502a117de97200a20268c56 100644
|
| --- a/test/cctest/compiler/function-tester.h
|
| +++ b/test/cctest/compiler/function-tester.h
|
| @@ -24,16 +24,25 @@ namespace v8 {
|
| namespace internal {
|
| namespace compiler {
|
|
|
| +static void AssertStackDepth(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| + v8::HandleScope scope(args.GetIsolate());
|
| + v8::Handle<v8::StackTrace> stackTrace = v8::StackTrace::CurrentStackTrace(
|
| + args.GetIsolate(), 10, v8::StackTrace::kDetailed);
|
| + CHECK_EQ(args[0]->ToInt32()->Value(), stackTrace->GetFrameCount());
|
| +}
|
| +
|
| class FunctionTester : public InitializedHandleScope {
|
| public:
|
| explicit FunctionTester(const char* source)
|
| - : isolate(main_isolate()),
|
| - function((FLAG_allow_natives_syntax = true, NewFunction(source))) {
|
| + : isolate(main_isolate()), context(0, GetObjectTemplate()) {
|
| + FLAG_allow_natives_syntax = true;
|
| + function = NewFunction(source);
|
| Compile(function);
|
| }
|
|
|
| Isolate* isolate;
|
| Handle<JSFunction> function;
|
| + LocalContext context;
|
|
|
| Handle<JSFunction> Compile(Handle<JSFunction> function) {
|
| #if V8_TURBOFAN_TARGET
|
| @@ -70,6 +79,13 @@ class FunctionTester : public InitializedHandleScope {
|
| return function;
|
| }
|
|
|
| + Local<ObjectTemplate> GetObjectTemplate() {
|
| + Local<ObjectTemplate> templ = ObjectTemplate::New(CcTest::isolate());
|
| + templ->Set(v8_str("AssertStackDepth"),
|
| + v8::FunctionTemplate::New(CcTest::isolate(), AssertStackDepth));
|
| + return templ;
|
| + }
|
| +
|
| static void EnsureDeoptimizationSupport(CompilationInfo* info) {
|
| bool should_recompile = !info->shared_info()->has_deoptimization_support();
|
| if (should_recompile) {
|
|
|