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/objects.h

Issue 1140673002: [V8] Added Script::is_opaque flag for embedders (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Introduces ScriptOriginOptions Created 5 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
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_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 6732 matching lines...) Expand 10 before | Expand all | Expand 10 after
6743 // script's origin. V8 just passes this through. Encoded in 6743 // script's origin. V8 just passes this through. Encoded in
6744 // the 'flags' field. 6744 // the 'flags' field.
6745 DECL_BOOLEAN_ACCESSORS(is_embedder_debug_script) 6745 DECL_BOOLEAN_ACCESSORS(is_embedder_debug_script)
6746 6746
6747 // [is_shared_cross_origin]: An opaque boolean set by the embedder via 6747 // [is_shared_cross_origin]: An opaque boolean set by the embedder via
6748 // ScriptOrigin, and used by the embedder to make decisions about the 6748 // ScriptOrigin, and used by the embedder to make decisions about the
6749 // script's level of privilege. V8 just passes this through. Encoded in 6749 // script's level of privilege. V8 just passes this through. Encoded in
6750 // the 'flags' field. 6750 // the 'flags' field.
6751 DECL_BOOLEAN_ACCESSORS(is_shared_cross_origin) 6751 DECL_BOOLEAN_ACCESSORS(is_shared_cross_origin)
6752 6752
6753 // [is_opaque]: An opaque boolean set by the embedder via ScriptOrigin, and
6754 // used by the embedder to make decisions about the opaqueness of script. V8
6755 // just passes this through. Encoded in the 'flags' field.
6756 DECL_BOOLEAN_ACCESSORS(is_opaque)
6757
6753 DECLARE_CAST(Script) 6758 DECLARE_CAST(Script)
6754 6759
6755 // If script source is an external string, check that the underlying 6760 // If script source is an external string, check that the underlying
6756 // resource is accessible. Otherwise, always return true. 6761 // resource is accessible. Otherwise, always return true.
6757 inline bool HasValidSource(); 6762 inline bool HasValidSource();
6758 6763
6759 // Convert code position into column number. 6764 // Convert code position into column number.
6760 static int GetColumnNumber(Handle<Script> script, int code_pos); 6765 static int GetColumnNumber(Handle<Script> script, int code_pos);
6761 6766
6762 // Convert code position into (zero-based) line number. 6767 // Convert code position into (zero-based) line number.
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
6795 static const int kSize = kSourceMappingUrlOffset + kPointerSize; 6800 static const int kSize = kSourceMappingUrlOffset + kPointerSize;
6796 6801
6797 private: 6802 private:
6798 int GetLineNumberWithArray(int code_pos); 6803 int GetLineNumberWithArray(int code_pos);
6799 6804
6800 // Bit positions in the flags field. 6805 // Bit positions in the flags field.
6801 static const int kCompilationTypeBit = 0; 6806 static const int kCompilationTypeBit = 0;
6802 static const int kCompilationStateBit = 1; 6807 static const int kCompilationStateBit = 1;
6803 static const int kIsEmbedderDebugScriptBit = 2; 6808 static const int kIsEmbedderDebugScriptBit = 2;
6804 static const int kIsSharedCrossOriginBit = 3; 6809 static const int kIsSharedCrossOriginBit = 3;
6810 static const int kIsOpaqueBit = 4;
6805 6811
6806 DISALLOW_IMPLICIT_CONSTRUCTORS(Script); 6812 DISALLOW_IMPLICIT_CONSTRUCTORS(Script);
6807 }; 6813 };
6808 6814
6809 6815
6810 // List of builtin functions we want to identify to improve code 6816 // List of builtin functions we want to identify to improve code
6811 // generation. 6817 // generation.
6812 // 6818 //
6813 // Each entry has a name of a global object property holding an object 6819 // Each entry has a name of a global object property holding an object
6814 // optionally followed by ".prototype", a name of a builtin function 6820 // optionally followed by ".prototype", a name of a builtin function
(...skipping 3726 matching lines...) Expand 10 before | Expand all | Expand 10 after
10541 static const int kExpectedReceiverTypeOffset = kFlagOffset + kPointerSize; 10547 static const int kExpectedReceiverTypeOffset = kFlagOffset + kPointerSize;
10542 static const int kSize = kExpectedReceiverTypeOffset + kPointerSize; 10548 static const int kSize = kExpectedReceiverTypeOffset + kPointerSize;
10543 10549
10544 private: 10550 private:
10545 inline bool HasExpectedReceiverType() { 10551 inline bool HasExpectedReceiverType() {
10546 return expected_receiver_type()->IsFunctionTemplateInfo(); 10552 return expected_receiver_type()->IsFunctionTemplateInfo();
10547 } 10553 }
10548 // Bit positions in flag. 10554 // Bit positions in flag.
10549 static const int kAllCanReadBit = 0; 10555 static const int kAllCanReadBit = 0;
10550 static const int kAllCanWriteBit = 1; 10556 static const int kAllCanWriteBit = 1;
10551 class AttributesField: public BitField<PropertyAttributes, 2, 3> {}; 10557 class AttributesField : public BitField<PropertyAttributes, 2, 3> {};
10552 10558
10553 DISALLOW_IMPLICIT_CONSTRUCTORS(AccessorInfo); 10559 DISALLOW_IMPLICIT_CONSTRUCTORS(AccessorInfo);
10554 }; 10560 };
10555 10561
10556 10562
10557 // An accessor must have a getter, but can have no setter. 10563 // An accessor must have a getter, but can have no setter.
10558 // 10564 //
10559 // When setting a property, V8 searches accessors in prototypes. 10565 // When setting a property, V8 searches accessors in prototypes.
10560 // If an accessor was found and it does not have a setter, 10566 // If an accessor was found and it does not have a setter,
10561 // the request is ignored. 10567 // the request is ignored.
(...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after
11111 } else { 11117 } else {
11112 value &= ~(1 << bit_position); 11118 value &= ~(1 << bit_position);
11113 } 11119 }
11114 return value; 11120 return value;
11115 } 11121 }
11116 }; 11122 };
11117 11123
11118 } } // namespace v8::internal 11124 } } // namespace v8::internal
11119 11125
11120 #endif // V8_OBJECTS_H_ 11126 #endif // V8_OBJECTS_H_
OLDNEW
« src/compilation-cache.cc ('K') | « src/debug.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698