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

Side by Side Diff: src/types.cc

Issue 509343002: Better typing and type verification (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Drop typedness from graph Created 6 years, 2 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
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/types.h" 5 #include "src/types.h"
6 6
7 #include "src/ostreams.h" 7 #include "src/ostreams.h"
8 #include "src/types-inl.h" 8 #include "src/types-inl.h"
9 9
10 namespace v8 { 10 namespace v8 {
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 case CONS_STRING_TYPE: 174 case CONS_STRING_TYPE:
175 case CONS_ASCII_STRING_TYPE: 175 case CONS_ASCII_STRING_TYPE:
176 case SLICED_STRING_TYPE: 176 case SLICED_STRING_TYPE:
177 case SLICED_ASCII_STRING_TYPE: 177 case SLICED_ASCII_STRING_TYPE:
178 case EXTERNAL_STRING_TYPE: 178 case EXTERNAL_STRING_TYPE:
179 case EXTERNAL_ASCII_STRING_TYPE: 179 case EXTERNAL_ASCII_STRING_TYPE:
180 case EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE: 180 case EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE:
181 case SHORT_EXTERNAL_STRING_TYPE: 181 case SHORT_EXTERNAL_STRING_TYPE:
182 case SHORT_EXTERNAL_ASCII_STRING_TYPE: 182 case SHORT_EXTERNAL_ASCII_STRING_TYPE:
183 case SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE: 183 case SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE:
184 return kOtherString;
184 case INTERNALIZED_STRING_TYPE: 185 case INTERNALIZED_STRING_TYPE:
185 case ASCII_INTERNALIZED_STRING_TYPE: 186 case ASCII_INTERNALIZED_STRING_TYPE:
186 case EXTERNAL_INTERNALIZED_STRING_TYPE: 187 case EXTERNAL_INTERNALIZED_STRING_TYPE:
187 case EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE: 188 case EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE:
188 case EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE: 189 case EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE:
189 case SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE: 190 case SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE:
190 case SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE: 191 case SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE:
191 case SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE: 192 case SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE:
192 return kString; 193 return kInternalizedString;
193 case SYMBOL_TYPE: 194 case SYMBOL_TYPE:
194 return kSymbol; 195 return kSymbol;
195 case ODDBALL_TYPE: { 196 case ODDBALL_TYPE: {
196 Heap* heap = map->GetHeap(); 197 Heap* heap = map->GetHeap();
197 if (map == heap->undefined_map()) return kUndefined; 198 if (map == heap->undefined_map()) return kUndefined;
198 if (map == heap->null_map()) return kNull; 199 if (map == heap->null_map()) return kNull;
199 if (map == heap->boolean_map()) return kBoolean; 200 if (map == heap->boolean_map()) return kBoolean;
200 DCHECK(map == heap->the_hole_map() || 201 DCHECK(map == heap->the_hole_map() ||
201 map == heap->uninitialized_map() || 202 map == heap->uninitialized_map() ||
202 map == heap->no_interceptor_result_sentinel_map() || 203 map == heap->no_interceptor_result_sentinel_map() ||
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 // because it means that the template isn't actually parametric. 245 // because it means that the template isn't actually parametric.
245 // Also, it doesn't apply elsewhere. 8-( 246 // Also, it doesn't apply elsewhere. 8-(
246 // We ought to find a cleaner solution for compiling stubs parameterised 247 // We ought to find a cleaner solution for compiling stubs parameterised
247 // over type or class variables, esp ones with bounds... 248 // over type or class variables, esp ones with bounds...
248 return kDetectable; 249 return kDetectable;
249 case DECLARED_ACCESSOR_INFO_TYPE: 250 case DECLARED_ACCESSOR_INFO_TYPE:
250 case EXECUTABLE_ACCESSOR_INFO_TYPE: 251 case EXECUTABLE_ACCESSOR_INFO_TYPE:
251 case SHARED_FUNCTION_INFO_TYPE: 252 case SHARED_FUNCTION_INFO_TYPE:
252 case ACCESSOR_PAIR_TYPE: 253 case ACCESSOR_PAIR_TYPE:
253 case FIXED_ARRAY_TYPE: 254 case FIXED_ARRAY_TYPE:
255 case BYTE_ARRAY_TYPE:
254 case FOREIGN_TYPE: 256 case FOREIGN_TYPE:
255 case CODE_TYPE: 257 case CODE_TYPE:
256 return kInternal & kTaggedPtr; 258 return kInternal & kTaggedPtr;
257 default: 259 default:
258 UNREACHABLE(); 260 UNREACHABLE();
259 return kNone; 261 return kNone;
260 } 262 }
261 } 263 }
262 264
263 265
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after
978 template class TypeImpl<HeapTypeConfig>::Iterator<i::Object>; 980 template class TypeImpl<HeapTypeConfig>::Iterator<i::Object>;
979 981
980 template TypeImpl<ZoneTypeConfig>::TypeHandle 982 template TypeImpl<ZoneTypeConfig>::TypeHandle
981 TypeImpl<ZoneTypeConfig>::Convert<HeapType>( 983 TypeImpl<ZoneTypeConfig>::Convert<HeapType>(
982 TypeImpl<HeapTypeConfig>::TypeHandle, TypeImpl<ZoneTypeConfig>::Region*); 984 TypeImpl<HeapTypeConfig>::TypeHandle, TypeImpl<ZoneTypeConfig>::Region*);
983 template TypeImpl<HeapTypeConfig>::TypeHandle 985 template TypeImpl<HeapTypeConfig>::TypeHandle
984 TypeImpl<HeapTypeConfig>::Convert<Type>( 986 TypeImpl<HeapTypeConfig>::Convert<Type>(
985 TypeImpl<ZoneTypeConfig>::TypeHandle, TypeImpl<HeapTypeConfig>::Region*); 987 TypeImpl<ZoneTypeConfig>::TypeHandle, TypeImpl<HeapTypeConfig>::Region*);
986 988
987 } } // namespace v8::internal 989 } } // namespace v8::internal
OLDNEW
« src/compiler/js-graph.cc ('K') | « src/types.h ('k') | src/types-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698