| OLD | NEW |
| 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 801 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 812 i::Scanner scanner(CcTest::i_isolate()->unicode_cache()); | 812 i::Scanner scanner(CcTest::i_isolate()->unicode_cache()); |
| 813 scanner.Initialize(&stream); | 813 scanner.Initialize(&stream); |
| 814 | 814 |
| 815 i::Token::Value start = scanner.peek(); | 815 i::Token::Value start = scanner.peek(); |
| 816 CHECK(start == i::Token::DIV || start == i::Token::ASSIGN_DIV); | 816 CHECK(start == i::Token::DIV || start == i::Token::ASSIGN_DIV); |
| 817 CHECK(scanner.ScanRegExpPattern()); | 817 CHECK(scanner.ScanRegExpPattern()); |
| 818 scanner.Next(); // Current token is now the regexp literal. | 818 scanner.Next(); // Current token is now the regexp literal. |
| 819 i::Zone zone(CcTest::i_isolate()->allocator()); | 819 i::Zone zone(CcTest::i_isolate()->allocator()); |
| 820 i::AstValueFactory ast_value_factory(&zone, | 820 i::AstValueFactory ast_value_factory(&zone, |
| 821 CcTest::i_isolate()->heap()->HashSeed()); | 821 CcTest::i_isolate()->heap()->HashSeed()); |
| 822 const i::AstRawString* current_symbol = |
| 823 scanner.CurrentSymbol(&ast_value_factory); |
| 822 ast_value_factory.Internalize(CcTest::i_isolate()); | 824 ast_value_factory.Internalize(CcTest::i_isolate()); |
| 823 i::Handle<i::String> val = | 825 i::Handle<i::String> val = current_symbol->string(); |
| 824 scanner.CurrentSymbol(&ast_value_factory)->string(); | |
| 825 i::DisallowHeapAllocation no_alloc; | 826 i::DisallowHeapAllocation no_alloc; |
| 826 i::String::FlatContent content = val->GetFlatContent(); | 827 i::String::FlatContent content = val->GetFlatContent(); |
| 827 CHECK(content.IsOneByte()); | 828 CHECK(content.IsOneByte()); |
| 828 i::Vector<const uint8_t> actual = content.ToOneByteVector(); | 829 i::Vector<const uint8_t> actual = content.ToOneByteVector(); |
| 829 for (int i = 0; i < actual.length(); i++) { | 830 for (int i = 0; i < actual.length(); i++) { |
| 830 CHECK_NE('\0', expected[i]); | 831 CHECK_NE('\0', expected[i]); |
| 831 CHECK_EQ(expected[i], actual[i]); | 832 CHECK_EQ(expected[i], actual[i]); |
| 832 } | 833 } |
| 833 } | 834 } |
| 834 | 835 |
| (...skipping 2555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3390 i::SNPrintF(program, "%s", src); | 3391 i::SNPrintF(program, "%s", src); |
| 3391 i::Handle<i::String> source = factory->InternalizeUtf8String(program.start()); | 3392 i::Handle<i::String> source = factory->InternalizeUtf8String(program.start()); |
| 3392 source->PrintOn(stdout); | 3393 source->PrintOn(stdout); |
| 3393 printf("\n"); | 3394 printf("\n"); |
| 3394 i::Zone zone(CcTest::i_isolate()->allocator()); | 3395 i::Zone zone(CcTest::i_isolate()->allocator()); |
| 3395 v8::Local<v8::Value> v = CompileRun(src); | 3396 v8::Local<v8::Value> v = CompileRun(src); |
| 3396 i::Handle<i::Object> o = v8::Utils::OpenHandle(*v); | 3397 i::Handle<i::Object> o = v8::Utils::OpenHandle(*v); |
| 3397 i::Handle<i::JSFunction> f = i::Handle<i::JSFunction>::cast(o); | 3398 i::Handle<i::JSFunction> f = i::Handle<i::JSFunction>::cast(o); |
| 3398 i::Context* context = f->context(); | 3399 i::Context* context = f->context(); |
| 3399 i::AstValueFactory avf(&zone, isolate->heap()->HashSeed()); | 3400 i::AstValueFactory avf(&zone, isolate->heap()->HashSeed()); |
| 3401 const i::AstRawString* name = avf.GetOneByteString("result"); |
| 3400 avf.Internalize(isolate); | 3402 avf.Internalize(isolate); |
| 3401 const i::AstRawString* name = avf.GetOneByteString("result"); | |
| 3402 i::Handle<i::String> str = name->string(); | 3403 i::Handle<i::String> str = name->string(); |
| 3403 CHECK(str->IsInternalizedString()); | 3404 CHECK(str->IsInternalizedString()); |
| 3404 i::DeclarationScope* script_scope = | 3405 i::DeclarationScope* script_scope = |
| 3405 new (&zone) i::DeclarationScope(&zone, &avf); | 3406 new (&zone) i::DeclarationScope(&zone, &avf); |
| 3406 i::Scope* s = i::Scope::DeserializeScopeChainForTesting( | 3407 i::Scope* s = i::Scope::DeserializeScopeChainForTesting( |
| 3407 isolate, &zone, context, script_scope, &avf); | 3408 isolate, &zone, context, script_scope, &avf); |
| 3408 CHECK(s != script_scope); | 3409 CHECK(s != script_scope); |
| 3409 CHECK(name != NULL); | 3410 CHECK(name != NULL); |
| 3410 | 3411 |
| 3411 // Get result from h's function context (that is f's context) | 3412 // Get result from h's function context (that is f's context) |
| (...skipping 27 matching lines...) Expand all Loading... |
| 3439 i::SNPrintF(program, "%s", src); | 3440 i::SNPrintF(program, "%s", src); |
| 3440 i::Handle<i::String> source = factory->InternalizeUtf8String(program.start()); | 3441 i::Handle<i::String> source = factory->InternalizeUtf8String(program.start()); |
| 3441 source->PrintOn(stdout); | 3442 source->PrintOn(stdout); |
| 3442 printf("\n"); | 3443 printf("\n"); |
| 3443 i::Zone zone(CcTest::i_isolate()->allocator()); | 3444 i::Zone zone(CcTest::i_isolate()->allocator()); |
| 3444 v8::Local<v8::Value> v = CompileRun(src); | 3445 v8::Local<v8::Value> v = CompileRun(src); |
| 3445 i::Handle<i::Object> o = v8::Utils::OpenHandle(*v); | 3446 i::Handle<i::Object> o = v8::Utils::OpenHandle(*v); |
| 3446 i::Handle<i::JSFunction> f = i::Handle<i::JSFunction>::cast(o); | 3447 i::Handle<i::JSFunction> f = i::Handle<i::JSFunction>::cast(o); |
| 3447 i::Context* context = f->context(); | 3448 i::Context* context = f->context(); |
| 3448 i::AstValueFactory avf(&zone, isolate->heap()->HashSeed()); | 3449 i::AstValueFactory avf(&zone, isolate->heap()->HashSeed()); |
| 3450 const i::AstRawString* name_x = avf.GetOneByteString("x"); |
| 3449 avf.Internalize(isolate); | 3451 avf.Internalize(isolate); |
| 3450 | 3452 |
| 3451 i::DeclarationScope* script_scope = | 3453 i::DeclarationScope* script_scope = |
| 3452 new (&zone) i::DeclarationScope(&zone, &avf); | 3454 new (&zone) i::DeclarationScope(&zone, &avf); |
| 3453 i::Scope* s = i::Scope::DeserializeScopeChainForTesting( | 3455 i::Scope* s = i::Scope::DeserializeScopeChainForTesting( |
| 3454 isolate, &zone, context, script_scope, &avf); | 3456 isolate, &zone, context, script_scope, &avf); |
| 3455 CHECK(s != script_scope); | 3457 CHECK(s != script_scope); |
| 3456 const i::AstRawString* name_x = avf.GetOneByteString("x"); | |
| 3457 | 3458 |
| 3458 // Get result from f's function context (that is g's outer context) | 3459 // Get result from f's function context (that is g's outer context) |
| 3459 i::Variable* var_x = s->Lookup(name_x); | 3460 i::Variable* var_x = s->Lookup(name_x); |
| 3460 CHECK(var_x != NULL); | 3461 CHECK(var_x != NULL); |
| 3461 CHECK(var_x->maybe_assigned() == i::kMaybeAssigned); | 3462 CHECK(var_x->maybe_assigned() == i::kMaybeAssigned); |
| 3462 } | 3463 } |
| 3463 | 3464 |
| 3464 | 3465 |
| 3465 TEST(InnerAssignment) { | 3466 TEST(InnerAssignment) { |
| 3466 i::Isolate* isolate = CcTest::i_isolate(); | 3467 i::Isolate* isolate = CcTest::i_isolate(); |
| (...skipping 4879 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8346 const char* data[] = { | 8347 const char* data[] = { |
| 8347 "const arguments = 1", | 8348 "const arguments = 1", |
| 8348 "let arguments", | 8349 "let arguments", |
| 8349 "var arguments", | 8350 "var arguments", |
| 8350 NULL | 8351 NULL |
| 8351 }; | 8352 }; |
| 8352 // clang-format on | 8353 // clang-format on |
| 8353 RunParserSyncTest(context_data, data, kSuccess); | 8354 RunParserSyncTest(context_data, data, kSuccess); |
| 8354 } | 8355 } |
| 8355 } | 8356 } |
| OLD | NEW |