| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index b2448793e821a8256a0d51e442c0fbb96f0c2c35..0280c960ac52b9f8a285b4b3e8b3f5a8a8932b42 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -7114,7 +7114,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)
|
| @@ -7199,7 +7199,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 {
|
| @@ -7727,9 +7728,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)
|
|
|
| @@ -7817,19 +7815,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)
|
| @@ -7989,7 +8003,7 @@ class SharedFunctionInfo: public HeapObject {
|
| kAllowLazyCompilation,
|
| kMarkedForTierUp,
|
| kOptimizationDisabled,
|
| - kNeverCompiled,
|
| + kIsClassFieldInitializer,
|
| kNative,
|
| kStrictModeFunction,
|
| kUsesArguments,
|
| @@ -8011,7 +8025,6 @@ class SharedFunctionInfo: public HeapObject {
|
| kIsDeclaration,
|
| kIsAsmWasmBroken,
|
| kRequiresClassFieldInit,
|
| - kIsClassFieldInitializer,
|
| kCompilerHintsCount, // Pseudo entry
|
| };
|
| // kFunctionKind has to be byte-aligned
|
|
|