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

Side by Side Diff: src/hydrogen.cc

Issue 745963002: harmony-scoping: Disallow cross-script assignment to const (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 6 years, 1 month 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 | « no previous file | test/cctest/test-decls.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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/hydrogen.h" 5 #include "src/hydrogen.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "src/v8.h" 9 #include "src/v8.h"
10 10
(...skipping 6538 matching lines...) Expand 10 before | Expand all | Expand 10 after
6549 Variable* var, 6549 Variable* var,
6550 HValue* value, 6550 HValue* value,
6551 BailoutId ast_id) { 6551 BailoutId ast_id) {
6552 Handle<GlobalObject> global(current_info()->global_object()); 6552 Handle<GlobalObject> global(current_info()->global_object());
6553 6553
6554 if (FLAG_harmony_scoping) { 6554 if (FLAG_harmony_scoping) {
6555 Handle<ScriptContextTable> script_contexts( 6555 Handle<ScriptContextTable> script_contexts(
6556 global->native_context()->script_context_table()); 6556 global->native_context()->script_context_table());
6557 ScriptContextTable::LookupResult lookup; 6557 ScriptContextTable::LookupResult lookup;
6558 if (ScriptContextTable::Lookup(script_contexts, var->name(), &lookup)) { 6558 if (ScriptContextTable::Lookup(script_contexts, var->name(), &lookup)) {
6559 if (lookup.mode == CONST) {
6560 return Bailout(kNonInitializerAssignmentToConst);
6561 }
6559 Handle<Context> script_context = 6562 Handle<Context> script_context =
6560 ScriptContextTable::GetContext(script_contexts, lookup.context_index); 6563 ScriptContextTable::GetContext(script_contexts, lookup.context_index);
6561 HStoreNamedField* instr = Add<HStoreNamedField>( 6564 HStoreNamedField* instr = Add<HStoreNamedField>(
6562 Add<HConstant>(script_context), 6565 Add<HConstant>(script_context),
6563 HObjectAccess::ForContextSlot(lookup.slot_index), value); 6566 HObjectAccess::ForContextSlot(lookup.slot_index), value);
6564 USE(instr); 6567 USE(instr);
6565 DCHECK(instr->HasObservableSideEffects()); 6568 DCHECK(instr->HasObservableSideEffects());
6566 Add<HSimulate>(ast_id, REMOVABLE_SIMULATE); 6569 Add<HSimulate>(ast_id, REMOVABLE_SIMULATE);
6567 return; 6570 return;
6568 } 6571 }
(...skipping 6196 matching lines...) Expand 10 before | Expand all | Expand 10 after
12765 if (ShouldProduceTraceOutput()) { 12768 if (ShouldProduceTraceOutput()) {
12766 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 12769 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
12767 } 12770 }
12768 12771
12769 #ifdef DEBUG 12772 #ifdef DEBUG
12770 graph_->Verify(false); // No full verify. 12773 graph_->Verify(false); // No full verify.
12771 #endif 12774 #endif
12772 } 12775 }
12773 12776
12774 } } // namespace v8::internal 12777 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | test/cctest/test-decls.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698