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

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

Issue 1189153002: Revert of [strong] Implement strong mode restrictions on property access (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 6 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/runtime/runtime.h" 8 #include "src/runtime/runtime.h"
9 #include "src/unique.h" 9 #include "src/unique.h"
10 10
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 216
217 DynamicContextAccess const& DynamicContextAccessOf(Operator const*); 217 DynamicContextAccess const& DynamicContextAccessOf(Operator const*);
218 218
219 219
220 // Defines the property being loaded from an object by a named load. This is 220 // Defines the property being loaded from an object by a named load. This is
221 // used as a parameter by JSLoadNamed operators. 221 // used as a parameter by JSLoadNamed operators.
222 class LoadNamedParameters final { 222 class LoadNamedParameters final {
223 public: 223 public:
224 LoadNamedParameters(const Unique<Name>& name, 224 LoadNamedParameters(const Unique<Name>& name,
225 const ResolvedFeedbackSlot& feedback, 225 const ResolvedFeedbackSlot& feedback,
226 LanguageMode language_mode,
227 ContextualMode contextual_mode) 226 ContextualMode contextual_mode)
228 : name_(name), 227 : name_(name), feedback_(feedback), contextual_mode_(contextual_mode) {}
229 feedback_(feedback),
230 language_mode_(language_mode),
231 contextual_mode_(contextual_mode) {}
232 228
233 const Unique<Name>& name() const { return name_; } 229 const Unique<Name>& name() const { return name_; }
234 LanguageMode language_mode() const { return language_mode_; }
235 ContextualMode contextual_mode() const { return contextual_mode_; } 230 ContextualMode contextual_mode() const { return contextual_mode_; }
236 231
237 const ResolvedFeedbackSlot& feedback() const { return feedback_; } 232 const ResolvedFeedbackSlot& feedback() const { return feedback_; }
238 233
239 private: 234 private:
240 const Unique<Name> name_; 235 const Unique<Name> name_;
241 const ResolvedFeedbackSlot feedback_; 236 const ResolvedFeedbackSlot feedback_;
242 const LanguageMode language_mode_;
243 const ContextualMode contextual_mode_; 237 const ContextualMode contextual_mode_;
244 }; 238 };
245 239
246 bool operator==(LoadNamedParameters const&, LoadNamedParameters const&); 240 bool operator==(LoadNamedParameters const&, LoadNamedParameters const&);
247 bool operator!=(LoadNamedParameters const&, LoadNamedParameters const&); 241 bool operator!=(LoadNamedParameters const&, LoadNamedParameters const&);
248 242
249 size_t hash_value(LoadNamedParameters const&); 243 size_t hash_value(LoadNamedParameters const&);
250 244
251 std::ostream& operator<<(std::ostream&, LoadNamedParameters const&); 245 std::ostream& operator<<(std::ostream&, LoadNamedParameters const&);
252 246
253 const LoadNamedParameters& LoadNamedParametersOf(const Operator* op); 247 const LoadNamedParameters& LoadNamedParametersOf(const Operator* op);
254 248
255 249
256 // Defines the property being loaded from an object. This is 250 // Defines the property being loaded from an object. This is
257 // used as a parameter by JSLoadProperty operators. 251 // used as a parameter by JSLoadProperty operators.
258 class LoadPropertyParameters final { 252 class LoadPropertyParameters final {
259 public: 253 public:
260 explicit LoadPropertyParameters(const ResolvedFeedbackSlot& feedback, 254 explicit LoadPropertyParameters(const ResolvedFeedbackSlot& feedback)
261 LanguageMode language_mode) 255 : feedback_(feedback) {}
262 : feedback_(feedback), language_mode_(language_mode) {}
263 256
264 const ResolvedFeedbackSlot& feedback() const { return feedback_; } 257 const ResolvedFeedbackSlot& feedback() const { return feedback_; }
265 258
266 LanguageMode language_mode() const { return language_mode_; }
267
268 private: 259 private:
269 const ResolvedFeedbackSlot feedback_; 260 const ResolvedFeedbackSlot feedback_;
270 const LanguageMode language_mode_;
271 }; 261 };
272 262
273 bool operator==(LoadPropertyParameters const&, LoadPropertyParameters const&); 263 bool operator==(LoadPropertyParameters const&, LoadPropertyParameters const&);
274 bool operator!=(LoadPropertyParameters const&, LoadPropertyParameters const&); 264 bool operator!=(LoadPropertyParameters const&, LoadPropertyParameters const&);
275 265
276 size_t hash_value(LoadPropertyParameters const&); 266 size_t hash_value(LoadPropertyParameters const&);
277 267
278 std::ostream& operator<<(std::ostream&, LoadPropertyParameters const&); 268 std::ostream& operator<<(std::ostream&, LoadPropertyParameters const&);
279 269
280 const LoadPropertyParameters& LoadPropertyParametersOf(const Operator* op); 270 const LoadPropertyParameters& LoadPropertyParametersOf(const Operator* op);
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 PretenureFlag pretenure); 361 PretenureFlag pretenure);
372 const Operator* CreateLiteralArray(int literal_flags); 362 const Operator* CreateLiteralArray(int literal_flags);
373 const Operator* CreateLiteralObject(int literal_flags); 363 const Operator* CreateLiteralObject(int literal_flags);
374 364
375 const Operator* CallFunction(size_t arity, CallFunctionFlags flags, 365 const Operator* CallFunction(size_t arity, CallFunctionFlags flags,
376 LanguageMode language_mode); 366 LanguageMode language_mode);
377 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity); 367 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity);
378 368
379 const Operator* CallConstruct(int arguments); 369 const Operator* CallConstruct(int arguments);
380 370
381 const Operator* LoadProperty(const ResolvedFeedbackSlot& feedback, 371 const Operator* LoadProperty(const ResolvedFeedbackSlot& feedback);
382 LanguageMode language_mode);
383 const Operator* LoadNamed(const Unique<Name>& name, 372 const Operator* LoadNamed(const Unique<Name>& name,
384 const ResolvedFeedbackSlot& feedback, 373 const ResolvedFeedbackSlot& feedback,
385 LanguageMode language_mode,
386 ContextualMode contextual_mode = NOT_CONTEXTUAL); 374 ContextualMode contextual_mode = NOT_CONTEXTUAL);
387 375
388 const Operator* StoreProperty(LanguageMode language_mode); 376 const Operator* StoreProperty(LanguageMode language_mode);
389 const Operator* StoreNamed(LanguageMode language_mode, 377 const Operator* StoreNamed(LanguageMode language_mode,
390 const Unique<Name>& name); 378 const Unique<Name>& name);
391 379
392 const Operator* DeleteProperty(LanguageMode language_mode); 380 const Operator* DeleteProperty(LanguageMode language_mode);
393 381
394 const Operator* HasProperty(); 382 const Operator* HasProperty();
395 383
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 Zone* const zone_; 417 Zone* const zone_;
430 418
431 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); 419 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder);
432 }; 420 };
433 421
434 } // namespace compiler 422 } // namespace compiler
435 } // namespace internal 423 } // namespace internal
436 } // namespace v8 424 } // namespace v8
437 425
438 #endif // V8_COMPILER_JS_OPERATOR_H_ 426 #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