Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(459)

Side by Side Diff: test/cctest/test-parsing.cc

Issue 2266973002: Allocate script scopes using a separate constructor (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: update test Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/parsing/parser-base.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 3375 matching lines...) Expand 10 before | Expand all | Expand 10 after
3386 i::Zone zone(CcTest::i_isolate()->allocator()); 3386 i::Zone zone(CcTest::i_isolate()->allocator());
3387 v8::Local<v8::Value> v = CompileRun(src); 3387 v8::Local<v8::Value> v = CompileRun(src);
3388 i::Handle<i::Object> o = v8::Utils::OpenHandle(*v); 3388 i::Handle<i::Object> o = v8::Utils::OpenHandle(*v);
3389 i::Handle<i::JSFunction> f = i::Handle<i::JSFunction>::cast(o); 3389 i::Handle<i::JSFunction> f = i::Handle<i::JSFunction>::cast(o);
3390 i::Context* context = f->context(); 3390 i::Context* context = f->context();
3391 i::AstValueFactory avf(&zone, isolate->heap()->HashSeed()); 3391 i::AstValueFactory avf(&zone, isolate->heap()->HashSeed());
3392 avf.Internalize(isolate); 3392 avf.Internalize(isolate);
3393 const i::AstRawString* name = avf.GetOneByteString("result"); 3393 const i::AstRawString* name = avf.GetOneByteString("result");
3394 i::Handle<i::String> str = name->string(); 3394 i::Handle<i::String> str = name->string();
3395 CHECK(str->IsInternalizedString()); 3395 CHECK(str->IsInternalizedString());
3396 i::DeclarationScope* script_scope = 3396 i::DeclarationScope* script_scope = new (&zone) i::DeclarationScope(&zone);
3397 new (&zone) i::DeclarationScope(&zone, nullptr, i::SCRIPT_SCOPE);
3398 i::Scope* s = i::Scope::DeserializeScopeChain( 3397 i::Scope* s = i::Scope::DeserializeScopeChain(
3399 isolate, &zone, context, script_scope, &avf, 3398 isolate, &zone, context, script_scope, &avf,
3400 i::Scope::DeserializationMode::kKeepScopeInfo); 3399 i::Scope::DeserializationMode::kKeepScopeInfo);
3401 CHECK(s != script_scope); 3400 CHECK(s != script_scope);
3402 CHECK(name != NULL); 3401 CHECK(name != NULL);
3403 3402
3404 // Get result from h's function context (that is f's context) 3403 // Get result from h's function context (that is f's context)
3405 i::Variable* var = s->Lookup(name); 3404 i::Variable* var = s->Lookup(name);
3406 3405
3407 CHECK(var != NULL); 3406 CHECK(var != NULL);
(...skipping 26 matching lines...) Expand all
3434 source->PrintOn(stdout); 3433 source->PrintOn(stdout);
3435 printf("\n"); 3434 printf("\n");
3436 i::Zone zone(CcTest::i_isolate()->allocator()); 3435 i::Zone zone(CcTest::i_isolate()->allocator());
3437 v8::Local<v8::Value> v = CompileRun(src); 3436 v8::Local<v8::Value> v = CompileRun(src);
3438 i::Handle<i::Object> o = v8::Utils::OpenHandle(*v); 3437 i::Handle<i::Object> o = v8::Utils::OpenHandle(*v);
3439 i::Handle<i::JSFunction> f = i::Handle<i::JSFunction>::cast(o); 3438 i::Handle<i::JSFunction> f = i::Handle<i::JSFunction>::cast(o);
3440 i::Context* context = f->context(); 3439 i::Context* context = f->context();
3441 i::AstValueFactory avf(&zone, isolate->heap()->HashSeed()); 3440 i::AstValueFactory avf(&zone, isolate->heap()->HashSeed());
3442 avf.Internalize(isolate); 3441 avf.Internalize(isolate);
3443 3442
3444 i::DeclarationScope* script_scope = 3443 i::DeclarationScope* script_scope = new (&zone) i::DeclarationScope(&zone);
3445 new (&zone) i::DeclarationScope(&zone, nullptr, i::SCRIPT_SCOPE);
3446 i::Scope* s = i::Scope::DeserializeScopeChain( 3444 i::Scope* s = i::Scope::DeserializeScopeChain(
3447 isolate, &zone, context, script_scope, &avf, 3445 isolate, &zone, context, script_scope, &avf,
3448 i::Scope::DeserializationMode::kKeepScopeInfo); 3446 i::Scope::DeserializationMode::kKeepScopeInfo);
3449 CHECK(s != script_scope); 3447 CHECK(s != script_scope);
3450 const i::AstRawString* name_x = avf.GetOneByteString("x"); 3448 const i::AstRawString* name_x = avf.GetOneByteString("x");
3451 3449
3452 // Get result from f's function context (that is g's outer context) 3450 // Get result from f's function context (that is g's outer context)
3453 i::Variable* var_x = s->Lookup(name_x); 3451 i::Variable* var_x = s->Lookup(name_x);
3454 CHECK(var_x != NULL); 3452 CHECK(var_x != NULL);
3455 CHECK(var_x->maybe_assigned() == i::kMaybeAssigned); 3453 CHECK(var_x->maybe_assigned() == i::kMaybeAssigned);
(...skipping 4736 matching lines...) Expand 10 before | Expand all | Expand 10 after
8192 "(a,);", 8190 "(a,);",
8193 "(a,b,c,);", 8191 "(a,b,c,);",
8194 NULL 8192 NULL
8195 }; 8193 };
8196 // clang-format on 8194 // clang-format on
8197 8195
8198 static const ParserFlag always_flags[] = {kAllowHarmonyTrailingCommas}; 8196 static const ParserFlag always_flags[] = {kAllowHarmonyTrailingCommas};
8199 RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags, 8197 RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
8200 arraysize(always_flags)); 8198 arraysize(always_flags));
8201 } 8199 }
OLDNEW
« no previous file with comments | « src/parsing/parser-base.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698