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

Side by Side Diff: src/parser.cc

Issue 935723004: Rename Interface to ModuleDescriptor (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 10 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/modules.cc ('k') | src/ppc/full-codegen-ppc.cc » ('j') | 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 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/api.h" 7 #include "src/api.h"
8 #include "src/ast.h" 8 #include "src/ast.h"
9 #include "src/bailout-reason.h" 9 #include "src/bailout-reason.h"
10 #include "src/base/platform/platform.h" 10 #include "src/base/platform/platform.h"
(...skipping 1260 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 if (stat && !stat->IsEmpty()) { 1271 if (stat && !stat->IsEmpty()) {
1272 body->AddStatement(stat, zone()); 1272 body->AddStatement(stat, zone());
1273 } 1273 }
1274 } 1274 }
1275 } 1275 }
1276 1276
1277 scope->set_end_position(scanner()->location().end_pos); 1277 scope->set_end_position(scanner()->location().end_pos);
1278 body->set_scope(scope); 1278 body->set_scope(scope);
1279 1279
1280 // Check that all exports are bound. 1280 // Check that all exports are bound.
1281 Interface* interface = scope->interface(); 1281 ModuleDescriptor* descriptor = scope->module();
1282 for (Interface::Iterator it = interface->iterator(); 1282 for (ModuleDescriptor::Iterator it = descriptor->iterator(); !it.done();
1283 !it.done(); it.Advance()) { 1283 it.Advance()) {
1284 if (scope->LookupLocal(it.name()) == NULL) { 1284 if (scope->LookupLocal(it.name()) == NULL) {
1285 ParserTraits::ReportMessage("module_export_undefined", it.name()); 1285 ParserTraits::ReportMessage("module_export_undefined", it.name());
1286 *ok = false; 1286 *ok = false;
1287 return NULL; 1287 return NULL;
1288 } 1288 }
1289 } 1289 }
1290 1290
1291 scope->interface()->Freeze(); 1291 scope->module()->Freeze();
1292 return body; 1292 return body;
1293 } 1293 }
1294 1294
1295 1295
1296 Literal* Parser::ParseModuleSpecifier(bool* ok) { 1296 Literal* Parser::ParseModuleSpecifier(bool* ok) {
1297 // ModuleSpecifier : 1297 // ModuleSpecifier :
1298 // StringLiteral 1298 // StringLiteral
1299 1299
1300 int pos = peek_position(); 1300 int pos = peek_position();
1301 Expect(Token::STRING, CHECK_OK); 1301 Expect(Token::STRING, CHECK_OK);
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
1493 1493
1494 default: { 1494 default: {
1495 int pos = peek_position(); 1495 int pos = peek_position();
1496 Expression* expr = ParseAssignmentExpression(true, CHECK_OK); 1496 Expression* expr = ParseAssignmentExpression(true, CHECK_OK);
1497 ExpectSemicolon(CHECK_OK); 1497 ExpectSemicolon(CHECK_OK);
1498 result = factory()->NewExpressionStatement(expr, pos); 1498 result = factory()->NewExpressionStatement(expr, pos);
1499 break; 1499 break;
1500 } 1500 }
1501 } 1501 }
1502 1502
1503 // TODO(ES6): Add default export to scope_->interface() 1503 // TODO(ES6): Add default export to scope_->module()
1504 1504
1505 return result; 1505 return result;
1506 } 1506 }
1507 1507
1508 1508
1509 Statement* Parser::ParseExportDeclaration(bool* ok) { 1509 Statement* Parser::ParseExportDeclaration(bool* ok) {
1510 // ExportDeclaration: 1510 // ExportDeclaration:
1511 // 'export' '*' 'from' ModuleSpecifier ';' 1511 // 'export' '*' 'from' ModuleSpecifier ';'
1512 // 'export' ExportClause ('from' ModuleSpecifier)? ';' 1512 // 'export' ExportClause ('from' ModuleSpecifier)? ';'
1513 // 'export' VariableStatement 1513 // 'export' VariableStatement
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1598 continue; 1598 continue;
1599 } 1599 }
1600 if (!IsImmutableVariableMode(var->mode())) { 1600 if (!IsImmutableVariableMode(var->mode())) {
1601 var->set_maybe_assigned(); 1601 var->set_maybe_assigned();
1602 } 1602 }
1603 } 1603 }
1604 1604
1605 // TODO(ES6): Handle 'export from' once imports are properly implemented. 1605 // TODO(ES6): Handle 'export from' once imports are properly implemented.
1606 // For now we just drop such exports on the floor. 1606 // For now we just drop such exports on the floor.
1607 if (!is_export_from) { 1607 if (!is_export_from) {
1608 // Extract declared names into export declarations and interface. 1608 // Extract declared names into export declarations and module descriptor.
1609 Interface* interface = scope_->interface(); 1609 ModuleDescriptor* descriptor = scope_->module();
1610 for (int i = 0; i < names.length(); ++i) { 1610 for (int i = 0; i < names.length(); ++i) {
1611 #ifdef DEBUG
1612 if (FLAG_print_interface_details)
1613 PrintF("# Export %.*s ", names[i]->length(), names[i]->raw_data());
1614 #endif
1615 // TODO(adamk): Make early errors here provide the right error message 1611 // TODO(adamk): Make early errors here provide the right error message
1616 // (duplicate exported names). 1612 // (duplicate exported names).
1617 interface->Add(names[i], zone(), CHECK_OK); 1613 descriptor->Add(names[i], zone(), CHECK_OK);
1618 // TODO(rossberg): Rethink whether we actually need to store export 1614 // TODO(rossberg): Rethink whether we actually need to store export
1619 // declarations (for compilation?). 1615 // declarations (for compilation?).
1620 // ExportDeclaration* declaration = 1616 // ExportDeclaration* declaration =
1621 // factory()->NewExportDeclaration(proxy, scope_, position); 1617 // factory()->NewExportDeclaration(proxy, scope_, position);
1622 // scope_->AddDeclaration(declaration); 1618 // scope_->AddDeclaration(declaration);
1623 } 1619 }
1624 } 1620 }
1625 1621
1626 DCHECK(result != NULL); 1622 DCHECK(result != NULL);
1627 return result; 1623 return result;
(...skipping 3816 matching lines...) Expand 10 before | Expand all | Expand 10 after
5444 } else { 5440 } else {
5445 const uc16* data = reinterpret_cast<const uc16*>(raw_string->raw_data()); 5441 const uc16* data = reinterpret_cast<const uc16*>(raw_string->raw_data());
5446 running_hash = StringHasher::ComputeRunningHash(running_hash, data, 5442 running_hash = StringHasher::ComputeRunningHash(running_hash, data,
5447 raw_string->length()); 5443 raw_string->length());
5448 } 5444 }
5449 } 5445 }
5450 5446
5451 return running_hash; 5447 return running_hash;
5452 } 5448 }
5453 } } // namespace v8::internal 5449 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/modules.cc ('k') | src/ppc/full-codegen-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698