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

Side by Side Diff: src/hydrogen.h

Issue 495483003: Indirect LookupResult accesses over PropertyAccessInfo (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: More private Created 6 years, 4 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 | « no previous file | src/hydrogen.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 #ifndef V8_HYDROGEN_H_ 5 #ifndef V8_HYDROGEN_H_
6 #define V8_HYDROGEN_H_ 6 #define V8_HYDROGEN_H_
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/accessors.h" 10 #include "src/accessors.h"
(...skipping 2477 matching lines...) Expand 10 before | Expand all | Expand 10 after
2488 *access = HObjectAccess::ForMapAndOffset(map(), offset); 2488 *access = HObjectAccess::ForMapAndOffset(map(), offset);
2489 } 2489 }
2490 return true; 2490 return true;
2491 } 2491 }
2492 return false; 2492 return false;
2493 } 2493 }
2494 2494
2495 bool has_holder() { return !holder_.is_null(); } 2495 bool has_holder() { return !holder_.is_null(); }
2496 bool IsLoad() const { return access_type_ == LOAD; } 2496 bool IsLoad() const { return access_type_ == LOAD; }
2497 2497
2498 LookupResult* lookup() { return &lookup_; }
2499 Handle<JSObject> holder() { return holder_; } 2498 Handle<JSObject> holder() { return holder_; }
2500 Handle<JSFunction> accessor() { return accessor_; } 2499 Handle<JSFunction> accessor() { return accessor_; }
2501 Handle<Object> constant() { return constant_; } 2500 Handle<Object> constant() { return constant_; }
2502 Handle<Map> transition() { return handle(lookup_.GetTransitionTarget()); } 2501 Handle<Map> transition() { return handle(lookup_.GetTransitionTarget()); }
2503 SmallMapList* field_maps() { return &field_maps_; } 2502 SmallMapList* field_maps() { return &field_maps_; }
2504 HType field_type() const { return field_type_; } 2503 HType field_type() const { return field_type_; }
2505 HObjectAccess access() { return access_; } 2504 HObjectAccess access() { return access_; }
2506 2505
2506 bool IsFound() const { return lookup_.IsFound(); }
2507 bool IsProperty() const { return lookup_.IsProperty(); }
2508 bool IsField() const { return lookup_.IsField(); }
2509 bool IsConstant() const { return lookup_.IsConstant(); }
2510 bool IsAccessor() const { return lookup_.IsPropertyCallbacks(); }
2511 bool IsTransition() const { return lookup_.IsTransition(); }
2512
2513 bool IsConfigurable() const { return !lookup_.IsDontDelete(); }
2514 bool IsReadOnly() const { return lookup_.IsReadOnly(); }
2515 bool IsCacheable() const { return lookup_.IsCacheable(); }
2516
2507 private: 2517 private:
2518 Handle<Object> GetAccessorsFromMap(Handle<Map> map) const {
2519 return handle(lookup_.GetValueFromMap(*map), isolate());
2520 }
2521 Handle<Object> GetConstantFromMap(Handle<Map> map) const {
2522 return handle(lookup_.GetConstantFromMap(*map), isolate());
2523 }
2524 Handle<HeapType> GetFieldTypeFromMap(Handle<Map> map) const {
2525 return handle(lookup_.GetFieldTypeFromMap(*map), isolate());
2526 }
2527 Handle<Map> GetFieldOwnerFromMap(Handle<Map> map) const {
2528 return handle(lookup_.GetFieldOwnerFromMap(*map));
2529 }
2530 int GetLocalFieldIndexFromMap(Handle<Map> map) const {
2531 return lookup_.GetLocalFieldIndexFromMap(*map);
2532 }
2533 Representation representation() const { return lookup_.representation(); }
2534
2508 Type* ToType(Handle<Map> map) { return builder_->ToType(map); } 2535 Type* ToType(Handle<Map> map) { return builder_->ToType(map); }
2509 Zone* zone() { return builder_->zone(); } 2536 Zone* zone() { return builder_->zone(); }
2510 Isolate* isolate() { return lookup_.isolate(); } 2537 Isolate* isolate() const { return lookup_.isolate(); }
2511 CompilationInfo* top_info() { return builder_->top_info(); } 2538 CompilationInfo* top_info() { return builder_->top_info(); }
2512 CompilationInfo* current_info() { return builder_->current_info(); } 2539 CompilationInfo* current_info() { return builder_->current_info(); }
2513 2540
2514 bool LoadResult(Handle<Map> map); 2541 bool LoadResult(Handle<Map> map);
2515 void LoadFieldMaps(Handle<Map> map); 2542 void LoadFieldMaps(Handle<Map> map);
2516 bool LookupDescriptor(); 2543 bool LookupDescriptor();
2517 bool LookupInPrototypes(); 2544 bool LookupInPrototypes();
2518 bool IsCompatible(PropertyAccessInfo* other); 2545 bool IsCompatible(PropertyAccessInfo* other);
2519 2546
2520 void GeneralizeRepresentation(Representation r) { 2547 void GeneralizeRepresentation(Representation r) {
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
2902 } 2929 }
2903 2930
2904 private: 2931 private:
2905 HGraphBuilder* builder_; 2932 HGraphBuilder* builder_;
2906 }; 2933 };
2907 2934
2908 2935
2909 } } // namespace v8::internal 2936 } } // namespace v8::internal
2910 2937
2911 #endif // V8_HYDROGEN_H_ 2938 #endif // V8_HYDROGEN_H_
OLDNEW
« no previous file with comments | « no previous file | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698