Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index f7192b60c0f49f87c256555cfe473c8e2747f575..f2bbbe3291c3f1932feb3a60ac062e20d0c15332 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -6406,6 +6406,9 @@ class PrototypeInfo : public Struct { |
}; |
+// Forward declaration. |
+class SharedFunctionInfo; |
Michael Starzinger
2015/06/19 11:17:08
nit: Can we just move this up to the forward decla
|
+ |
// Script describes a script which has been added to the VM. |
class Script: public Struct { |
public: |
@@ -6464,6 +6467,10 @@ class Script: public Struct { |
// function from which eval was called where eval was called. |
DECL_ACCESSORS(eval_from_instructions_offset, Smi) |
+ // [shared_function_infos]: weak fixed array containing all shared |
+ // function infos created from this script. |
+ DECL_ACCESSORS(shared_function_infos, Object) |
+ |
// [flags]: Holds an exciting bitfield. |
DECL_ACCESSORS(flags, Smi) |
@@ -6511,6 +6518,11 @@ class Script: public Struct { |
// Get the JS object wrapping the given script; create it if none exists. |
static Handle<JSObject> GetWrapper(Handle<Script> script); |
+ MaybeHandle<SharedFunctionInfo> FindSharedFunctionInfo(FunctionLiteral* fun); |
Michael Starzinger
2015/06/19 11:17:08
nit: IMHO this function needs short explaining com
|
+ |
+ static void AddSharedFunctionInfo(Handle<Script> script, |
Michael Starzinger
2015/06/19 11:17:08
nit: This shouldn't be needed anymore, correct?
|
+ Handle<SharedFunctionInfo> shared); |
+ |
// Dispatched behavior. |
DECLARE_PRINTER(Script) |
DECLARE_VERIFIER(Script) |
@@ -6527,8 +6539,9 @@ class Script: public Struct { |
static const int kEvalFromSharedOffset = kIdOffset + kPointerSize; |
static const int kEvalFrominstructionsOffsetOffset = |
kEvalFromSharedOffset + kPointerSize; |
- static const int kFlagsOffset = |
+ static const int kSharedFunctionInfosOffset = |
kEvalFrominstructionsOffsetOffset + kPointerSize; |
+ static const int kFlagsOffset = kSharedFunctionInfosOffset + kPointerSize; |
static const int kSourceUrlOffset = kFlagsOffset + kPointerSize; |
static const int kSourceMappingUrlOffset = kSourceUrlOffset + kPointerSize; |
static const int kSize = kSourceMappingUrlOffset + kPointerSize; |
@@ -6659,6 +6672,9 @@ class SharedFunctionInfo: public HeapObject { |
Handle<FixedArray> literals, |
BailoutId osr_ast_id); |
+ static void SetScript(Handle<SharedFunctionInfo> shared, |
Michael Starzinger
2015/06/19 11:17:08
nit: Likewise, can we get a comment?
|
+ Handle<Object> script_object); |
+ |
// Layout description of the optimized code map. |
static const int kNextMapIndex = 0; |
static const int kEntriesStart = 1; |
@@ -6702,6 +6718,9 @@ class SharedFunctionInfo: public HeapObject { |
// available. |
DECL_ACCESSORS(feedback_vector, TypeFeedbackVector) |
+ // A WeakFixedArray of inner shared function infos. |
+ DECL_ACCESSORS(inner_functions, Object) |
Michael Starzinger
2015/06/19 11:17:08
nit: This shouldn't be needed anymore, correct?
|
+ |
#if TRACE_MAPS |
// [unique_id] - For --trace-maps purposes, an identifier that's persistent |
// even if the GC moves this SharedFunctionInfo. |