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

Side by Side Diff: include/v8.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
« no previous file with comments | « no previous file | src/api.cc » ('j') | src/api.cc » ('J')
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 /** \mainpage V8 API Reference Guide 5 /** \mainpage V8 API Reference Guide
6 * 6 *
7 * V8 is Google's open source JavaScript engine. 7 * V8 is Google's open source JavaScript engine.
8 * 8 *
9 * This set of documents provides reference material generated from the 9 * This set of documents provides reference material generated from the
10 * V8 header file, include/v8.h. 10 * V8 header file, include/v8.h.
(...skipping 955 matching lines...) Expand 10 before | Expand all | Expand 10 after
966 /** 966 /**
967 * The superclass of values and API object templates. 967 * The superclass of values and API object templates.
968 */ 968 */
969 class V8_EXPORT Data { 969 class V8_EXPORT Data {
970 private: 970 private:
971 Data(); 971 Data();
972 }; 972 };
973 973
974 974
975 /** 975 /**
976 * The optional attributes of ScriptOrigin.
977 */
978 class ScriptOriginOptions {
979 public:
980 V8_INLINE ScriptOriginOptions(bool is_embedder_debug_script = false,
981 bool is_shared_cross_origin = false,
982 bool is_opaque = false)
983 : flags_((is_embedder_debug_script ? kIsEmbedderDebugScript : 0) |
984 (is_shared_cross_origin ? kIsSharedCrossOrigin : 0) |
985 (is_opaque ? kIsOpaque : 0)) {}
986 bool IsEmbedderDebugScript() const { return flags_ & kIsEmbedderDebugScript; }
987 bool IsSharedCrossOrigin() const { return flags_ & kIsSharedCrossOrigin; }
988 bool IsOpaque() const { return flags_ & kIsOpaque; }
989
990 private:
991 enum {
992 kIsEmbedderDebugScript = 1,
993 kIsSharedCrossOrigin = 1 << 1,
994 kIsOpaque = 1 << 2
995 };
996 const unsigned char flags_;
997 };
998
999 /**
976 * The origin, within a file, of a script. 1000 * The origin, within a file, of a script.
977 */ 1001 */
978 class ScriptOrigin { 1002 class ScriptOrigin {
979 public: 1003 public:
980 V8_INLINE ScriptOrigin( 1004 V8_INLINE ScriptOrigin(
981 Handle<Value> resource_name, 1005 Handle<Value> resource_name,
982 Handle<Integer> resource_line_offset = Handle<Integer>(), 1006 Handle<Integer> resource_line_offset = Handle<Integer>(),
983 Handle<Integer> resource_column_offset = Handle<Integer>(), 1007 Handle<Integer> resource_column_offset = Handle<Integer>(),
984 Handle<Boolean> resource_is_shared_cross_origin = Handle<Boolean>(), 1008 Handle<Boolean> resource_is_shared_cross_origin = Handle<Boolean>(),
985 Handle<Integer> script_id = Handle<Integer>(), 1009 Handle<Integer> script_id = Handle<Integer>(),
986 Handle<Boolean> resource_is_embedder_debug_script = Handle<Boolean>(), 1010 Handle<Boolean> resource_is_embedder_debug_script = Handle<Boolean>(),
987 Handle<Value> source_map_url = Handle<Value>()) 1011 Handle<Value> source_map_url = Handle<Value>(),
988 : resource_name_(resource_name), 1012 Handle<Boolean> resource_is_opaque = Handle<Boolean>());
989 resource_line_offset_(resource_line_offset),
990 resource_column_offset_(resource_column_offset),
991 resource_is_embedder_debug_script_(resource_is_embedder_debug_script),
992 resource_is_shared_cross_origin_(resource_is_shared_cross_origin),
993 script_id_(script_id),
994 source_map_url_(source_map_url) {}
995 V8_INLINE Handle<Value> ResourceName() const; 1013 V8_INLINE Handle<Value> ResourceName() const;
996 V8_INLINE Handle<Integer> ResourceLineOffset() const; 1014 V8_INLINE Handle<Integer> ResourceLineOffset() const;
997 V8_INLINE Handle<Integer> ResourceColumnOffset() const; 1015 V8_INLINE Handle<Integer> ResourceColumnOffset() const;
998 /** 1016 /**
999 * Returns true for embedder's debugger scripts 1017 * Returns true for embedder's debugger scripts
1000 */ 1018 */
1001 V8_INLINE Handle<Boolean> ResourceIsEmbedderDebugScript() const;
1002 V8_INLINE Handle<Boolean> ResourceIsSharedCrossOrigin() const;
1003 V8_INLINE Handle<Integer> ScriptID() const; 1019 V8_INLINE Handle<Integer> ScriptID() const;
1004 V8_INLINE Handle<Value> SourceMapUrl() const; 1020 V8_INLINE Handle<Value> SourceMapUrl() const;
1021 V8_INLINE ScriptOriginOptions Options() const { return options_; }
1005 1022
1006 private: 1023 private:
1007 Handle<Value> resource_name_; 1024 Handle<Value> resource_name_;
1008 Handle<Integer> resource_line_offset_; 1025 Handle<Integer> resource_line_offset_;
1009 Handle<Integer> resource_column_offset_; 1026 Handle<Integer> resource_column_offset_;
1010 Handle<Boolean> resource_is_embedder_debug_script_; 1027 ScriptOriginOptions options_;
1011 Handle<Boolean> resource_is_shared_cross_origin_;
1012 Handle<Integer> script_id_; 1028 Handle<Integer> script_id_;
1013 Handle<Value> source_map_url_; 1029 Handle<Value> source_map_url_;
1014 }; 1030 };
1015 1031
1016 1032
1017 /** 1033 /**
1018 * A compiled JavaScript script, not yet tied to a Context. 1034 * A compiled JavaScript script, not yet tied to a Context.
1019 */ 1035 */
1020 class V8_EXPORT UnboundScript { 1036 class V8_EXPORT UnboundScript {
1021 public: 1037 public:
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1153 // Prevent copying. Not implemented. 1169 // Prevent copying. Not implemented.
1154 Source(const Source&); 1170 Source(const Source&);
1155 Source& operator=(const Source&); 1171 Source& operator=(const Source&);
1156 1172
1157 Local<String> source_string; 1173 Local<String> source_string;
1158 1174
1159 // Origin information 1175 // Origin information
1160 Handle<Value> resource_name; 1176 Handle<Value> resource_name;
1161 Handle<Integer> resource_line_offset; 1177 Handle<Integer> resource_line_offset;
1162 Handle<Integer> resource_column_offset; 1178 Handle<Integer> resource_column_offset;
1163 Handle<Boolean> resource_is_embedder_debug_script; 1179 ScriptOriginOptions resource_options;
1164 Handle<Boolean> resource_is_shared_cross_origin;
1165 Handle<Value> source_map_url; 1180 Handle<Value> source_map_url;
1166 1181
1167 // Cached data from previous compilation (if a kConsume*Cache flag is 1182 // Cached data from previous compilation (if a kConsume*Cache flag is
1168 // set), or hold newly generated cache data (kProduce*Cache flags) are 1183 // set), or hold newly generated cache data (kProduce*Cache flags) are
1169 // set when calling a compile method. 1184 // set when calling a compile method.
1170 CachedData* cached_data; 1185 CachedData* cached_data;
1171 }; 1186 };
1172 1187
1173 /** 1188 /**
1174 * For streaming incomplete script data to V8. The embedder should implement a 1189 * For streaming incomplete script data to V8. The embedder should implement a
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
1443 * the error occurred. 1458 * the error occurred.
1444 */ 1459 */
1445 V8_DEPRECATE_SOON("Use maybe version", int GetEndColumn() const); 1460 V8_DEPRECATE_SOON("Use maybe version", int GetEndColumn() const);
1446 V8_WARN_UNUSED_RESULT Maybe<int> GetEndColumn(Local<Context> context) const; 1461 V8_WARN_UNUSED_RESULT Maybe<int> GetEndColumn(Local<Context> context) const;
1447 1462
1448 /** 1463 /**
1449 * Passes on the value set by the embedder when it fed the script from which 1464 * Passes on the value set by the embedder when it fed the script from which
1450 * this Message was generated to V8. 1465 * this Message was generated to V8.
1451 */ 1466 */
1452 bool IsSharedCrossOrigin() const; 1467 bool IsSharedCrossOrigin() const;
1468 bool IsOpaque() const;
1453 1469
1454 // TODO(1245381): Print to a string instead of on a FILE. 1470 // TODO(1245381): Print to a string instead of on a FILE.
1455 static void PrintCurrentStackTrace(Isolate* isolate, FILE* out); 1471 static void PrintCurrentStackTrace(Isolate* isolate, FILE* out);
1456 1472
1457 static const int kNoLineNumberInfo = 0; 1473 static const int kNoLineNumberInfo = 0;
1458 static const int kNoColumnInfo = 0; 1474 static const int kNoColumnInfo = 0;
1459 static const int kNoScriptIdInfo = 0; 1475 static const int kNoScriptIdInfo = 0;
1460 }; 1476 };
1461 1477
1462 1478
(...skipping 5756 matching lines...) Expand 10 before | Expand all | Expand 10 after
7219 bool FunctionCallbackInfo<T>::IsConstructCall() const { 7235 bool FunctionCallbackInfo<T>::IsConstructCall() const {
7220 return is_construct_call_ & 0x1; 7236 return is_construct_call_ & 0x1;
7221 } 7237 }
7222 7238
7223 7239
7224 template<typename T> 7240 template<typename T>
7225 int FunctionCallbackInfo<T>::Length() const { 7241 int FunctionCallbackInfo<T>::Length() const {
7226 return length_; 7242 return length_;
7227 } 7243 }
7228 7244
7245 ScriptOrigin::ScriptOrigin(Handle<Value> resource_name,
7246 Handle<Integer> resource_line_offset,
7247 Handle<Integer> resource_column_offset,
7248 Handle<Boolean> resource_is_shared_cross_origin,
7249 Handle<Integer> script_id,
7250 Handle<Boolean> resource_is_embedder_debug_script,
7251 Handle<Value> source_map_url,
7252 Handle<Boolean> resource_is_opaque)
7253 : resource_name_(resource_name),
7254 resource_line_offset_(resource_line_offset),
7255 resource_column_offset_(resource_column_offset),
7256 options_(!resource_is_embedder_debug_script.IsEmpty() &&
7257 resource_is_embedder_debug_script->IsTrue(),
7258 !resource_is_shared_cross_origin.IsEmpty() &&
7259 resource_is_shared_cross_origin->IsTrue(),
7260 !resource_is_opaque.IsEmpty() && resource_is_opaque->IsTrue()),
7261 script_id_(script_id),
7262 source_map_url_(source_map_url) {}
7229 7263
7230 Handle<Value> ScriptOrigin::ResourceName() const { 7264 Handle<Value> ScriptOrigin::ResourceName() const {
7231 return resource_name_; 7265 return resource_name_;
7232 } 7266 }
7233 7267
7234 7268
7235 Handle<Integer> ScriptOrigin::ResourceLineOffset() const { 7269 Handle<Integer> ScriptOrigin::ResourceLineOffset() const {
7236 return resource_line_offset_; 7270 return resource_line_offset_;
7237 } 7271 }
7238 7272
7239 7273
7240 Handle<Integer> ScriptOrigin::ResourceColumnOffset() const { 7274 Handle<Integer> ScriptOrigin::ResourceColumnOffset() const {
7241 return resource_column_offset_; 7275 return resource_column_offset_;
7242 } 7276 }
7243 7277
7244 7278
7245 Handle<Boolean> ScriptOrigin::ResourceIsEmbedderDebugScript() const {
7246 return resource_is_embedder_debug_script_;
7247 }
7248
7249
7250 Handle<Boolean> ScriptOrigin::ResourceIsSharedCrossOrigin() const {
7251 return resource_is_shared_cross_origin_;
7252 }
7253
7254
7255 Handle<Integer> ScriptOrigin::ScriptID() const { 7279 Handle<Integer> ScriptOrigin::ScriptID() const {
7256 return script_id_; 7280 return script_id_;
7257 } 7281 }
7258 7282
7259 7283
7260 Handle<Value> ScriptOrigin::SourceMapUrl() const { return source_map_url_; } 7284 Handle<Value> ScriptOrigin::SourceMapUrl() const { return source_map_url_; }
7261 7285
7262 7286
7263 ScriptCompiler::Source::Source(Local<String> string, const ScriptOrigin& origin, 7287 ScriptCompiler::Source::Source(Local<String> string, const ScriptOrigin& origin,
7264 CachedData* data) 7288 CachedData* data)
7265 : source_string(string), 7289 : source_string(string),
7266 resource_name(origin.ResourceName()), 7290 resource_name(origin.ResourceName()),
7267 resource_line_offset(origin.ResourceLineOffset()), 7291 resource_line_offset(origin.ResourceLineOffset()),
7268 resource_column_offset(origin.ResourceColumnOffset()), 7292 resource_column_offset(origin.ResourceColumnOffset()),
7269 resource_is_embedder_debug_script(origin.ResourceIsEmbedderDebugScript()), 7293 resource_options(origin.Options()),
7270 resource_is_shared_cross_origin(origin.ResourceIsSharedCrossOrigin()),
7271 source_map_url(origin.SourceMapUrl()), 7294 source_map_url(origin.SourceMapUrl()),
7272 cached_data(data) {} 7295 cached_data(data) {}
7273 7296
7274 7297
7275 ScriptCompiler::Source::Source(Local<String> string, 7298 ScriptCompiler::Source::Source(Local<String> string,
7276 CachedData* data) 7299 CachedData* data)
7277 : source_string(string), cached_data(data) {} 7300 : source_string(string), cached_data(data) {}
7278 7301
7279 7302
7280 ScriptCompiler::Source::~Source() { 7303 ScriptCompiler::Source::~Source() {
(...skipping 743 matching lines...) Expand 10 before | Expand all | Expand 10 after
8024 */ 8047 */
8025 8048
8026 8049
8027 } // namespace v8 8050 } // namespace v8
8028 8051
8029 8052
8030 #undef TYPE_CHECK 8053 #undef TYPE_CHECK
8031 8054
8032 8055
8033 #endif // V8_H_ 8056 #endif // V8_H_
OLDNEW
« no previous file with comments | « no previous file | src/api.cc » ('j') | src/api.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698