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

Side by Side Diff: src/compiler/js-operator.h

Issue 1683103002: [compiler] Sanitize entry points to LookupSlot access. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: REBASE. Fixes. Comments. Created 4 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/compiler/js-generic-lowering.cc ('k') | src/compiler/js-operator.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 #ifndef V8_COMPILER_JS_OPERATOR_H_ 5 #ifndef V8_COMPILER_JS_OPERATOR_H_
6 #define V8_COMPILER_JS_OPERATOR_H_ 6 #define V8_COMPILER_JS_OPERATOR_H_
7 7
8 #include "src/compiler/type-hints.h" 8 #include "src/compiler/type-hints.h"
9 #include "src/runtime/runtime.h" 9 #include "src/runtime/runtime.h"
10 10
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 bool operator==(ContextAccess const&, ContextAccess const&); 206 bool operator==(ContextAccess const&, ContextAccess const&);
207 bool operator!=(ContextAccess const&, ContextAccess const&); 207 bool operator!=(ContextAccess const&, ContextAccess const&);
208 208
209 size_t hash_value(ContextAccess const&); 209 size_t hash_value(ContextAccess const&);
210 210
211 std::ostream& operator<<(std::ostream&, ContextAccess const&); 211 std::ostream& operator<<(std::ostream&, ContextAccess const&);
212 212
213 ContextAccess const& ContextAccessOf(Operator const*); 213 ContextAccess const& ContextAccessOf(Operator const*);
214 214
215 215
216 // Defines the name for a dynamic variable lookup. This is used as a parameter
217 // by JSLoadDynamic and JSStoreDynamic operators.
218 class DynamicAccess final {
219 public:
220 DynamicAccess(const Handle<String>& name, TypeofMode typeof_mode);
221
222 const Handle<String>& name() const { return name_; }
223 TypeofMode typeof_mode() const { return typeof_mode_; }
224
225 private:
226 const Handle<String> name_;
227 const TypeofMode typeof_mode_;
228 };
229
230 size_t hash_value(DynamicAccess const&);
231
232 bool operator==(DynamicAccess const&, DynamicAccess const&);
233 bool operator!=(DynamicAccess const&, DynamicAccess const&);
234
235 std::ostream& operator<<(std::ostream&, DynamicAccess const&);
236
237 DynamicAccess const& DynamicAccessOf(Operator const*);
238
239
240 // Defines the property of an object for a named access. This is 216 // Defines the property of an object for a named access. This is
241 // used as a parameter by the JSLoadNamed and JSStoreNamed operators. 217 // used as a parameter by the JSLoadNamed and JSStoreNamed operators.
242 class NamedAccess final { 218 class NamedAccess final {
243 public: 219 public:
244 NamedAccess(LanguageMode language_mode, Handle<Name> name, 220 NamedAccess(LanguageMode language_mode, Handle<Name> name,
245 VectorSlotPair const& feedback) 221 VectorSlotPair const& feedback)
246 : name_(name), feedback_(feedback), language_mode_(language_mode) {} 222 : name_(name), feedback_(feedback), language_mode_(language_mode) {}
247 223
248 Handle<Name> name() const { return name_; } 224 Handle<Name> name() const { return name_; }
249 LanguageMode language_mode() const { return language_mode_; } 225 LanguageMode language_mode() const { return language_mode_; }
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 const Operator* LoadGlobal(const Handle<Name>& name, 493 const Operator* LoadGlobal(const Handle<Name>& name,
518 const VectorSlotPair& feedback, 494 const VectorSlotPair& feedback,
519 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF); 495 TypeofMode typeof_mode = NOT_INSIDE_TYPEOF);
520 const Operator* StoreGlobal(LanguageMode language_mode, 496 const Operator* StoreGlobal(LanguageMode language_mode,
521 const Handle<Name>& name, 497 const Handle<Name>& name,
522 const VectorSlotPair& feedback); 498 const VectorSlotPair& feedback);
523 499
524 const Operator* LoadContext(size_t depth, size_t index, bool immutable); 500 const Operator* LoadContext(size_t depth, size_t index, bool immutable);
525 const Operator* StoreContext(size_t depth, size_t index); 501 const Operator* StoreContext(size_t depth, size_t index);
526 502
527 const Operator* LoadDynamic(const Handle<String>& name,
528 TypeofMode typeof_mode);
529
530 const Operator* TypeOf(); 503 const Operator* TypeOf();
531 const Operator* InstanceOf(); 504 const Operator* InstanceOf();
532 505
533 const Operator* ForInDone(); 506 const Operator* ForInDone();
534 const Operator* ForInNext(); 507 const Operator* ForInNext();
535 const Operator* ForInPrepare(); 508 const Operator* ForInPrepare();
536 const Operator* ForInStep(); 509 const Operator* ForInStep();
537 510
538 const Operator* LoadMessage(); 511 const Operator* LoadMessage();
539 const Operator* StoreMessage(); 512 const Operator* StoreMessage();
(...skipping 14 matching lines...) Expand all
554 Zone* const zone_; 527 Zone* const zone_;
555 528
556 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); 529 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder);
557 }; 530 };
558 531
559 } // namespace compiler 532 } // namespace compiler
560 } // namespace internal 533 } // namespace internal
561 } // namespace v8 534 } // namespace v8
562 535
563 #endif // V8_COMPILER_JS_OPERATOR_H_ 536 #endif // V8_COMPILER_JS_OPERATOR_H_
OLDNEW
« no previous file with comments | « src/compiler/js-generic-lowering.cc ('k') | src/compiler/js-operator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698