| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 8d05411cd1beb6fe96482ebb2e20fcae2b9fa8b3..0fa21cd144bd117c9d79a07f802a1e5714ab8083 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -7123,7 +7123,7 @@ class Script: public Struct {
|
|
|
| // [shared_function_infos]: weak fixed array containing all shared
|
| // function infos created from this script.
|
| - DECL_ACCESSORS(shared_function_infos, Object)
|
| + DECL_ACCESSORS(shared_function_infos, FixedArray)
|
|
|
| // [flags]: Holds an exciting bitfield.
|
| DECL_INT_ACCESSORS(flags)
|
| @@ -7208,7 +7208,8 @@ class Script: public Struct {
|
|
|
| // Look through the list of existing shared function infos to find one
|
| // that matches the function literal. Return empty handle if not found.
|
| - MaybeHandle<SharedFunctionInfo> FindSharedFunctionInfo(FunctionLiteral* fun);
|
| + MaybeHandle<SharedFunctionInfo> FindSharedFunctionInfo(Isolate* isolate,
|
| + FunctionLiteral* fun);
|
|
|
| // Iterate over all script objects on the heap.
|
| class Iterator {
|
| @@ -7736,9 +7737,6 @@ class SharedFunctionInfo: public HeapObject {
|
| // Indicates that the the shared function info is deserialized from cache.
|
| DECL_BOOLEAN_ACCESSORS(deserialized)
|
|
|
| - // Indicates that the the shared function info has never been compiled before.
|
| - DECL_BOOLEAN_ACCESSORS(never_compiled)
|
| -
|
| // Whether this function was created from a FunctionDeclaration.
|
| DECL_BOOLEAN_ACCESSORS(is_declaration)
|
|
|
| @@ -7826,19 +7824,35 @@ class SharedFunctionInfo: public HeapObject {
|
|
|
| void ResetForNewContext(int new_ic_age);
|
|
|
| - // Iterate over all shared function infos.
|
| - class Iterator {
|
| + // Iterate over all shared function infos in a given script.
|
| + class ScriptIterator {
|
| public:
|
| - explicit Iterator(Isolate* isolate);
|
| + explicit ScriptIterator(Handle<Script> script);
|
| + ScriptIterator(Isolate* isolate, Handle<FixedArray> shared_function_infos);
|
| SharedFunctionInfo* Next();
|
|
|
| + // Reset the iterator to run on |script|.
|
| + void Reset(Handle<Script> script);
|
| +
|
| private:
|
| - bool NextScript();
|
| + Isolate* isolate_;
|
| + Handle<FixedArray> shared_function_infos_;
|
| + int index_;
|
| + DISALLOW_COPY_AND_ASSIGN(ScriptIterator);
|
| + };
|
|
|
| + // Iterate over all shared function infos on the heap.
|
| + class GlobalIterator {
|
| + public:
|
| + explicit GlobalIterator(Isolate* isolate);
|
| + SharedFunctionInfo* Next();
|
| +
|
| + private:
|
| Script::Iterator script_iterator_;
|
| - WeakFixedArray::Iterator sfi_iterator_;
|
| + WeakFixedArray::Iterator noscript_sfi_iterator_;
|
| + SharedFunctionInfo::ScriptIterator sfi_iterator_;
|
| DisallowHeapAllocation no_gc_;
|
| - DISALLOW_COPY_AND_ASSIGN(Iterator);
|
| + DISALLOW_COPY_AND_ASSIGN(GlobalIterator);
|
| };
|
|
|
| DECLARE_CAST(SharedFunctionInfo)
|
| @@ -7998,7 +8012,7 @@ class SharedFunctionInfo: public HeapObject {
|
| kAllowLazyCompilation,
|
| kMarkedForTierUp,
|
| kOptimizationDisabled,
|
| - kNeverCompiled,
|
| + kIsClassFieldInitializer,
|
| kNative,
|
| kStrictModeFunction,
|
| kUsesArguments,
|
| @@ -8020,7 +8034,6 @@ class SharedFunctionInfo: public HeapObject {
|
| kIsDeclaration,
|
| kIsAsmWasmBroken,
|
| kRequiresClassFieldInit,
|
| - kIsClassFieldInitializer,
|
| kCompilerHintsCount, // Pseudo entry
|
| };
|
| // kFunctionKind has to be byte-aligned
|
|
|