| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/assert-scope.h" | 10 #include "src/assert-scope.h" |
| (...skipping 6400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6411 // this through. Encoded in the 'flags' field. | 6411 // this through. Encoded in the 'flags' field. |
| 6412 inline v8::ScriptOriginOptions origin_options(); | 6412 inline v8::ScriptOriginOptions origin_options(); |
| 6413 inline void set_origin_options(ScriptOriginOptions origin_options); | 6413 inline void set_origin_options(ScriptOriginOptions origin_options); |
| 6414 | 6414 |
| 6415 DECLARE_CAST(Script) | 6415 DECLARE_CAST(Script) |
| 6416 | 6416 |
| 6417 // If script source is an external string, check that the underlying | 6417 // If script source is an external string, check that the underlying |
| 6418 // resource is accessible. Otherwise, always return true. | 6418 // resource is accessible. Otherwise, always return true. |
| 6419 inline bool HasValidSource(); | 6419 inline bool HasValidSource(); |
| 6420 | 6420 |
| 6421 // Convert code offset into column number. | |
| 6422 static int GetColumnNumber(Handle<Script> script, int code_offset); | |
| 6423 | |
| 6424 // Convert code offset into (zero-based) line number. | |
| 6425 // The non-handlified version does not allocate, but may be much slower. | |
| 6426 static int GetLineNumber(Handle<Script> script, int code_offset); | |
| 6427 int GetLineNumber(int code_pos); | |
| 6428 | |
| 6429 static Handle<Object> GetNameOrSourceURL(Handle<Script> script); | 6421 static Handle<Object> GetNameOrSourceURL(Handle<Script> script); |
| 6430 | 6422 |
| 6431 // Set eval origin for stack trace formatting. | 6423 // Set eval origin for stack trace formatting. |
| 6432 static void SetEvalOrigin(Handle<Script> script, | 6424 static void SetEvalOrigin(Handle<Script> script, |
| 6433 Handle<SharedFunctionInfo> outer, | 6425 Handle<SharedFunctionInfo> outer, |
| 6434 int eval_position); | 6426 int eval_position); |
| 6435 // Retrieve source position from where eval was called. | 6427 // Retrieve source position from where eval was called. |
| 6436 int GetEvalPosition(); | 6428 int GetEvalPosition(); |
| 6437 | 6429 |
| 6438 // Init line_ends array with source code positions of line ends. | 6430 // Init line_ends array with source code positions of line ends. |
| 6439 static void InitLineEnds(Handle<Script> script); | 6431 static void InitLineEnds(Handle<Script> script); |
| 6440 | 6432 |
| 6433 // Convert code offset into column number. |
| 6434 static int GetColumnNumber(Handle<Script> script, int code_offset); |
| 6435 |
| 6436 // Convert code offset into (zero-based) line number. |
| 6437 // The non-handlified version does not allocate, but may be much slower. |
| 6438 static int GetLineNumber(Handle<Script> script, int code_offset); |
| 6439 int GetLineNumber(int code_pos); |
| 6440 |
| 6441 // Carries information about a source position. |
| 6442 struct PositionInfo { |
| 6443 PositionInfo() : line(-1), column(-1), line_start(-1), line_end(-1) {} |
| 6444 |
| 6445 int line; // Zero-based line number. |
| 6446 int column; // Zero-based column number. |
| 6447 int line_start; // Position of first character in line. |
| 6448 int line_end; // Position of last (non-linebreak) character in line. |
| 6449 }; |
| 6450 |
| 6451 // Specifies whether to add offsets to position infos. |
| 6452 enum OffsetFlag { NO_OFFSET = 0, WITH_OFFSET = 1 }; |
| 6453 |
| 6454 // Retrieves information about the given position, optionally with an offset. |
| 6455 // Returns false on failure, and otherwise writes into the given info object |
| 6456 // on success. |
| 6457 bool GetPositionInfo(int position, PositionInfo* info, |
| 6458 OffsetFlag offset_flag); |
| 6459 |
| 6441 // Get the JS object wrapping the given script; create it if none exists. | 6460 // Get the JS object wrapping the given script; create it if none exists. |
| 6442 static Handle<JSObject> GetWrapper(Handle<Script> script); | 6461 static Handle<JSObject> GetWrapper(Handle<Script> script); |
| 6443 | 6462 |
| 6444 // Look through the list of existing shared function infos to find one | 6463 // Look through the list of existing shared function infos to find one |
| 6445 // that matches the function literal. Return empty handle if not found. | 6464 // that matches the function literal. Return empty handle if not found. |
| 6446 MaybeHandle<SharedFunctionInfo> FindSharedFunctionInfo(FunctionLiteral* fun); | 6465 MaybeHandle<SharedFunctionInfo> FindSharedFunctionInfo(FunctionLiteral* fun); |
| 6447 | 6466 |
| 6448 // Iterate over all script objects on the heap. | 6467 // Iterate over all script objects on the heap. |
| 6449 class Iterator { | 6468 class Iterator { |
| 6450 public: | 6469 public: |
| (...skipping 4298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10749 } | 10768 } |
| 10750 return value; | 10769 return value; |
| 10751 } | 10770 } |
| 10752 }; | 10771 }; |
| 10753 | 10772 |
| 10754 | 10773 |
| 10755 } // NOLINT, false-positive due to second-order macros. | 10774 } // NOLINT, false-positive due to second-order macros. |
| 10756 } // NOLINT, false-positive due to second-order macros. | 10775 } // NOLINT, false-positive due to second-order macros. |
| 10757 | 10776 |
| 10758 #endif // V8_OBJECTS_H_ | 10777 #endif // V8_OBJECTS_H_ |
| OLD | NEW |