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

Side by Side Diff: src/hydrogen.cc

Issue 306543002: Harden Runtime_FunctionSetPrototype, Isolate::PrintStack (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « src/frames.cc ('k') | src/runtime.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 "hydrogen.h" 5 #include "hydrogen.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "v8.h" 9 #include "v8.h"
10 #include "allocation-site-scopes.h" 10 #include "allocation-site-scopes.h"
(...skipping 8722 matching lines...) Expand 10 before | Expand all | Expand 10 after
8733 HObjectAccess::ForJSArrayBufferViewWeakNext(), 8733 HObjectAccess::ForJSArrayBufferViewWeakNext(),
8734 graph()->GetConstantUndefined()); 8734 graph()->GetConstantUndefined());
8735 } 8735 }
8736 } 8736 }
8737 8737
8738 8738
8739 void HOptimizedGraphBuilder::GenerateDataViewInitialize( 8739 void HOptimizedGraphBuilder::GenerateDataViewInitialize(
8740 CallRuntime* expr) { 8740 CallRuntime* expr) {
8741 ZoneList<Expression*>* arguments = expr->arguments(); 8741 ZoneList<Expression*>* arguments = expr->arguments();
8742 8742
8743 NoObservableSideEffectsScope scope(this);
8744 ASSERT(arguments->length()== 4); 8743 ASSERT(arguments->length()== 4);
8745 CHECK_ALIVE(VisitForValue(arguments->at(0))); 8744 CHECK_ALIVE(VisitForValue(arguments->at(0)));
8746 HValue* obj = Pop(); 8745 HValue* obj = Pop();
8747 8746
8748 CHECK_ALIVE(VisitForValue(arguments->at(1))); 8747 CHECK_ALIVE(VisitForValue(arguments->at(1)));
8749 HValue* buffer = Pop(); 8748 HValue* buffer = Pop();
8750 8749
8751 CHECK_ALIVE(VisitForValue(arguments->at(2))); 8750 CHECK_ALIVE(VisitForValue(arguments->at(2)));
8752 HValue* byte_offset = Pop(); 8751 HValue* byte_offset = Pop();
8753 8752
8754 CHECK_ALIVE(VisitForValue(arguments->at(3))); 8753 CHECK_ALIVE(VisitForValue(arguments->at(3)));
8755 HValue* byte_length = Pop(); 8754 HValue* byte_length = Pop();
8756 8755
8757 BuildArrayBufferViewInitialization<JSDataView>( 8756 {
8758 obj, buffer, byte_offset, byte_length); 8757 NoObservableSideEffectsScope scope(this);
8758 BuildArrayBufferViewInitialization<JSDataView>(
8759 obj, buffer, byte_offset, byte_length);
8760 }
8759 } 8761 }
8760 8762
8761 8763
8762 static Handle<Map> TypedArrayMap(Isolate* isolate, 8764 static Handle<Map> TypedArrayMap(Isolate* isolate,
8763 ExternalArrayType array_type, 8765 ExternalArrayType array_type,
8764 ElementsKind target_kind) { 8766 ElementsKind target_kind) {
8765 Handle<Context> native_context = isolate->native_context(); 8767 Handle<Context> native_context = isolate->native_context();
8766 Handle<JSFunction> fun; 8768 Handle<JSFunction> fun;
8767 switch (array_type) { 8769 switch (array_type) {
8768 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ 8770 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
8869 builder.EndBody(); 8871 builder.EndBody();
8870 } 8872 }
8871 return elements; 8873 return elements;
8872 } 8874 }
8873 8875
8874 8876
8875 void HOptimizedGraphBuilder::GenerateTypedArrayInitialize( 8877 void HOptimizedGraphBuilder::GenerateTypedArrayInitialize(
8876 CallRuntime* expr) { 8878 CallRuntime* expr) {
8877 ZoneList<Expression*>* arguments = expr->arguments(); 8879 ZoneList<Expression*>* arguments = expr->arguments();
8878 8880
8879 NoObservableSideEffectsScope scope(this);
8880 static const int kObjectArg = 0; 8881 static const int kObjectArg = 0;
8881 static const int kArrayIdArg = 1; 8882 static const int kArrayIdArg = 1;
8882 static const int kBufferArg = 2; 8883 static const int kBufferArg = 2;
8883 static const int kByteOffsetArg = 3; 8884 static const int kByteOffsetArg = 3;
8884 static const int kByteLengthArg = 4; 8885 static const int kByteLengthArg = 4;
8885 static const int kArgsLength = 5; 8886 static const int kArgsLength = 5;
8886 ASSERT(arguments->length() == kArgsLength); 8887 ASSERT(arguments->length() == kArgsLength);
8887 8888
8888 8889
8889 CHECK_ALIVE(VisitForValue(arguments->at(kObjectArg))); 8890 CHECK_ALIVE(VisitForValue(arguments->at(kObjectArg)));
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
8924 } else { 8925 } else {
8925 CHECK_ALIVE(VisitForValue(arguments->at(kByteOffsetArg))); 8926 CHECK_ALIVE(VisitForValue(arguments->at(kByteOffsetArg)));
8926 byte_offset = Pop(); 8927 byte_offset = Pop();
8927 is_zero_byte_offset = false; 8928 is_zero_byte_offset = false;
8928 ASSERT(buffer != NULL); 8929 ASSERT(buffer != NULL);
8929 } 8930 }
8930 8931
8931 CHECK_ALIVE(VisitForValue(arguments->at(kByteLengthArg))); 8932 CHECK_ALIVE(VisitForValue(arguments->at(kByteLengthArg)));
8932 HValue* byte_length = Pop(); 8933 HValue* byte_length = Pop();
8933 8934
8935 NoObservableSideEffectsScope scope(this);
8934 IfBuilder byte_offset_smi(this); 8936 IfBuilder byte_offset_smi(this);
8935 8937
8936 if (!is_zero_byte_offset) { 8938 if (!is_zero_byte_offset) {
8937 byte_offset_smi.If<HIsSmiAndBranch>(byte_offset); 8939 byte_offset_smi.If<HIsSmiAndBranch>(byte_offset);
8938 byte_offset_smi.Then(); 8940 byte_offset_smi.Then();
8939 } 8941 }
8940 8942
8941 ExternalArrayType array_type = 8943 ExternalArrayType array_type =
8942 kExternalInt8Array; // Bogus initialization. 8944 kExternalInt8Array; // Bogus initialization.
8943 size_t element_size = 1; // Bogus initialization. 8945 size_t element_size = 1; // Bogus initialization.
(...skipping 2851 matching lines...) Expand 10 before | Expand all | Expand 10 after
11795 if (ShouldProduceTraceOutput()) { 11797 if (ShouldProduceTraceOutput()) {
11796 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 11798 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
11797 } 11799 }
11798 11800
11799 #ifdef DEBUG 11801 #ifdef DEBUG
11800 graph_->Verify(false); // No full verify. 11802 graph_->Verify(false); // No full verify.
11801 #endif 11803 #endif
11802 } 11804 }
11803 11805
11804 } } // namespace v8::internal 11806 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/frames.cc ('k') | src/runtime.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698