| Index: src/heap.h
|
| ===================================================================
|
| --- src/heap.h (revision 5696)
|
| +++ src/heap.h (working copy)
|
| @@ -316,32 +316,33 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateJSObject(
|
| + MUST_USE_RESULT static MaybeObject* AllocateJSObject(
|
| JSFunction* constructor, PretenureFlag pretenure = NOT_TENURED);
|
|
|
| // Allocates and initializes a new global object based on a constructor.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateGlobalObject(JSFunction* constructor);
|
| + MUST_USE_RESULT static MaybeObject* AllocateGlobalObject(
|
| + JSFunction* constructor);
|
|
|
| // Returns a deep copy of the JavaScript object.
|
| // Properties and elements are copied too.
|
| // Returns failure if allocation failed.
|
| - MUST_USE_RESULT static Object* CopyJSObject(JSObject* source);
|
| + MUST_USE_RESULT static MaybeObject* CopyJSObject(JSObject* source);
|
|
|
| // Allocates the function prototype.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateFunctionPrototype(
|
| + MUST_USE_RESULT static MaybeObject* AllocateFunctionPrototype(
|
| JSFunction* function);
|
|
|
| // Reinitialize an JSGlobalProxy based on a constructor. The object
|
| // must have the same size as objects allocated using the
|
| // constructor. The object is reinitialized and behaves as an
|
| // object that has been freshly allocated using the constructor.
|
| - MUST_USE_RESULT static Object* ReinitializeJSGlobalProxy(
|
| + MUST_USE_RESULT static MaybeObject* ReinitializeJSGlobalProxy(
|
| JSFunction* constructor,
|
| JSGlobalProxy* global);
|
|
|
| @@ -349,31 +350,32 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateJSObjectFromMap(
|
| + MUST_USE_RESULT static MaybeObject* AllocateJSObjectFromMap(
|
| Map* map, PretenureFlag pretenure = NOT_TENURED);
|
|
|
| // Allocates a heap object based on the map.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this function does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* Allocate(Map* map, AllocationSpace space);
|
| + MUST_USE_RESULT static MaybeObject* Allocate(Map* map, AllocationSpace space);
|
|
|
| // Allocates a JS Map in the heap.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this function does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateMap(InstanceType instance_type,
|
| + MUST_USE_RESULT static MaybeObject* AllocateMap(InstanceType instance_type,
|
| int instance_size);
|
|
|
| // Allocates a partial map for bootstrapping.
|
| - MUST_USE_RESULT static Object* AllocatePartialMap(InstanceType instance_type,
|
| - int instance_size);
|
| + MUST_USE_RESULT static MaybeObject* AllocatePartialMap(
|
| + InstanceType instance_type,
|
| + int instance_size);
|
|
|
| // Allocate a map for the specified function
|
| - MUST_USE_RESULT static Object* AllocateInitialMap(JSFunction* fun);
|
| + MUST_USE_RESULT static MaybeObject* AllocateInitialMap(JSFunction* fun);
|
|
|
| // Allocates an empty code cache.
|
| - MUST_USE_RESULT static Object* AllocateCodeCache();
|
| + MUST_USE_RESULT static MaybeObject* AllocateCodeCache();
|
|
|
| // Clear the Instanceof cache (used when a prototype changes).
|
| static void ClearInstanceofCache() {
|
| @@ -398,13 +400,13 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateStringFromAscii(
|
| + MUST_USE_RESULT static MaybeObject* AllocateStringFromAscii(
|
| Vector<const char> str,
|
| PretenureFlag pretenure = NOT_TENURED);
|
| - MUST_USE_RESULT static Object* AllocateStringFromUtf8(
|
| + MUST_USE_RESULT static MaybeObject* AllocateStringFromUtf8(
|
| Vector<const char> str,
|
| PretenureFlag pretenure = NOT_TENURED);
|
| - MUST_USE_RESULT static Object* AllocateStringFromTwoByte(
|
| + MUST_USE_RESULT static MaybeObject* AllocateStringFromTwoByte(
|
| Vector<const uc16> str,
|
| PretenureFlag pretenure = NOT_TENURED);
|
|
|
| @@ -412,15 +414,17 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this function does not perform a garbage collection.
|
| - MUST_USE_RESULT static inline Object* AllocateSymbol(Vector<const char> str,
|
| - int chars,
|
| - uint32_t hash_field);
|
| + MUST_USE_RESULT static inline MaybeObject* AllocateSymbol(
|
| + Vector<const char> str,
|
| + int chars,
|
| + uint32_t hash_field);
|
|
|
| - MUST_USE_RESULT static Object* AllocateInternalSymbol(
|
| + MUST_USE_RESULT static MaybeObject* AllocateInternalSymbol(
|
| unibrow::CharacterStream* buffer, int chars, uint32_t hash_field);
|
|
|
| - MUST_USE_RESULT static Object* AllocateExternalSymbol(Vector<const char> str,
|
| - int chars);
|
| + MUST_USE_RESULT static MaybeObject* AllocateExternalSymbol(
|
| + Vector<const char> str,
|
| + int chars);
|
|
|
|
|
| // Allocates and partially initializes a String. There are two String
|
| @@ -430,10 +434,10 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateRawAsciiString(
|
| + MUST_USE_RESULT static MaybeObject* AllocateRawAsciiString(
|
| int length,
|
| PretenureFlag pretenure = NOT_TENURED);
|
| - MUST_USE_RESULT static Object* AllocateRawTwoByteString(
|
| + MUST_USE_RESULT static MaybeObject* AllocateRawTwoByteString(
|
| int length,
|
| PretenureFlag pretenure = NOT_TENURED);
|
|
|
| @@ -441,27 +445,27 @@
|
| // A cache is used for ascii codes.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed. Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* LookupSingleCharacterStringFromCode(
|
| + MUST_USE_RESULT static MaybeObject* LookupSingleCharacterStringFromCode(
|
| uint16_t code);
|
|
|
| // Allocate a byte array of the specified length
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateByteArray(int length,
|
| + MUST_USE_RESULT static MaybeObject* AllocateByteArray(int length,
|
| PretenureFlag pretenure);
|
|
|
| // Allocate a non-tenured byte array of the specified length
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateByteArray(int length);
|
| + MUST_USE_RESULT static MaybeObject* AllocateByteArray(int length);
|
|
|
| // Allocate a pixel array of the specified length
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocatePixelArray(int length,
|
| + MUST_USE_RESULT static MaybeObject* AllocatePixelArray(int length,
|
| uint8_t* external_pointer,
|
| PretenureFlag pretenure);
|
|
|
| @@ -469,7 +473,7 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateExternalArray(
|
| + MUST_USE_RESULT static MaybeObject* AllocateExternalArray(
|
| int length,
|
| ExternalArrayType array_type,
|
| void* external_pointer,
|
| @@ -479,66 +483,71 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateJSGlobalPropertyCell(Object* value);
|
| + MUST_USE_RESULT static MaybeObject* AllocateJSGlobalPropertyCell(
|
| + Object* value);
|
|
|
| // Allocates a fixed array initialized with undefined values
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateFixedArray(int length,
|
| - PretenureFlag pretenure);
|
| + MUST_USE_RESULT static MaybeObject* AllocateFixedArray(
|
| + int length,
|
| + PretenureFlag pretenure);
|
| // Allocates a fixed array initialized with undefined values
|
| - MUST_USE_RESULT static Object* AllocateFixedArray(int length);
|
| + MUST_USE_RESULT static MaybeObject* AllocateFixedArray(int length);
|
|
|
| // Allocates an uninitialized fixed array. It must be filled by the caller.
|
| //
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateUninitializedFixedArray(int length);
|
| + MUST_USE_RESULT static MaybeObject* AllocateUninitializedFixedArray(
|
| + int length);
|
|
|
| // Make a copy of src and return it. Returns
|
| // Failure::RetryAfterGC(requested_bytes, space) if the allocation failed.
|
| - MUST_USE_RESULT static inline Object* CopyFixedArray(FixedArray* src);
|
| + MUST_USE_RESULT static inline MaybeObject* CopyFixedArray(FixedArray* src);
|
|
|
| // Make a copy of src, set the map, and return the copy. Returns
|
| // Failure::RetryAfterGC(requested_bytes, space) if the allocation failed.
|
| - MUST_USE_RESULT static Object* CopyFixedArrayWithMap(FixedArray* src,
|
| - Map* map);
|
| + MUST_USE_RESULT static MaybeObject* CopyFixedArrayWithMap(FixedArray* src,
|
| + Map* map);
|
|
|
| // Allocates a fixed array initialized with the hole values.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateFixedArrayWithHoles(
|
| + MUST_USE_RESULT static MaybeObject* AllocateFixedArrayWithHoles(
|
| int length,
|
| PretenureFlag pretenure = NOT_TENURED);
|
|
|
| // AllocateHashTable is identical to AllocateFixedArray except
|
| // that the resulting object has hash_table_map as map.
|
| - MUST_USE_RESULT static Object* AllocateHashTable(
|
| + MUST_USE_RESULT static MaybeObject* AllocateHashTable(
|
| int length, PretenureFlag pretenure = NOT_TENURED);
|
|
|
| // Allocate a global (but otherwise uninitialized) context.
|
| - MUST_USE_RESULT static Object* AllocateGlobalContext();
|
| + MUST_USE_RESULT static MaybeObject* AllocateGlobalContext();
|
|
|
| // Allocate a function context.
|
| - MUST_USE_RESULT static Object* AllocateFunctionContext(int length,
|
| - JSFunction* closure);
|
| + MUST_USE_RESULT static MaybeObject* AllocateFunctionContext(
|
| + int length,
|
| + JSFunction* closure);
|
|
|
| // Allocate a 'with' context.
|
| - MUST_USE_RESULT static Object* AllocateWithContext(Context* previous,
|
| - JSObject* extension,
|
| - bool is_catch_context);
|
| + MUST_USE_RESULT static MaybeObject* AllocateWithContext(
|
| + Context* previous,
|
| + JSObject* extension,
|
| + bool is_catch_context);
|
|
|
| // Allocates a new utility object in the old generation.
|
| - MUST_USE_RESULT static Object* AllocateStruct(InstanceType type);
|
| + MUST_USE_RESULT static MaybeObject* AllocateStruct(InstanceType type);
|
|
|
| // Allocates a function initialized with a shared part.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateFunction(
|
| + MUST_USE_RESULT static MaybeObject* AllocateFunction(
|
| Map* function_map,
|
| SharedFunctionInfo* shared,
|
| Object* prototype,
|
| @@ -554,37 +563,38 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateArgumentsObject(Object* callee,
|
| - int length);
|
| + MUST_USE_RESULT static MaybeObject* AllocateArgumentsObject(Object* callee,
|
| + int length);
|
|
|
| // Same as NewNumberFromDouble, but may return a preallocated/immutable
|
| // number object (e.g., minus_zero_value_, nan_value_)
|
| - MUST_USE_RESULT static Object* NumberFromDouble(
|
| + MUST_USE_RESULT static MaybeObject* NumberFromDouble(
|
| double value, PretenureFlag pretenure = NOT_TENURED);
|
|
|
| // Allocated a HeapNumber from value.
|
| - MUST_USE_RESULT static Object* AllocateHeapNumber(double value,
|
| - PretenureFlag pretenure);
|
| + MUST_USE_RESULT static MaybeObject* AllocateHeapNumber(
|
| + double value,
|
| + PretenureFlag pretenure);
|
| // pretenure = NOT_TENURED.
|
| - MUST_USE_RESULT static Object* AllocateHeapNumber(double value);
|
| + MUST_USE_RESULT static MaybeObject* AllocateHeapNumber(double value);
|
|
|
| // Converts an int into either a Smi or a HeapNumber object.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static inline Object* NumberFromInt32(int32_t value);
|
| + MUST_USE_RESULT static inline MaybeObject* NumberFromInt32(int32_t value);
|
|
|
| // Converts an int into either a Smi or a HeapNumber object.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static inline Object* NumberFromUint32(uint32_t value);
|
| + MUST_USE_RESULT static inline MaybeObject* NumberFromUint32(uint32_t value);
|
|
|
| // Allocates a new proxy object.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateProxy(
|
| + MUST_USE_RESULT static MaybeObject* AllocateProxy(
|
| Address proxy,
|
| PretenureFlag pretenure = NOT_TENURED);
|
|
|
| @@ -592,14 +602,14 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateSharedFunctionInfo(Object* name);
|
| + MUST_USE_RESULT static MaybeObject* AllocateSharedFunctionInfo(Object* name);
|
|
|
| // Allocates a new cons string object.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateConsString(String* first,
|
| - String* second);
|
| + MUST_USE_RESULT static MaybeObject* AllocateConsString(String* first,
|
| + String* second);
|
|
|
| // Allocates a new sub string object which is a substring of an underlying
|
| // string buffer stretching from the index start (inclusive) to the index
|
| @@ -607,7 +617,7 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateSubString(
|
| + MUST_USE_RESULT static MaybeObject* AllocateSubString(
|
| String* buffer,
|
| int start,
|
| int end,
|
| @@ -618,9 +628,9 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* AllocateExternalStringFromAscii(
|
| + MUST_USE_RESULT static MaybeObject* AllocateExternalStringFromAscii(
|
| ExternalAsciiString::Resource* resource);
|
| - MUST_USE_RESULT static Object* AllocateExternalStringFromTwoByte(
|
| + MUST_USE_RESULT static MaybeObject* AllocateExternalStringFromTwoByte(
|
| ExternalTwoByteString::Resource* resource);
|
|
|
| // Finalizes an external string by deleting the associated external
|
| @@ -632,7 +642,7 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this function does not perform a garbage collection.
|
| - MUST_USE_RESULT static inline Object* AllocateRaw(
|
| + MUST_USE_RESULT static inline MaybeObject* AllocateRaw(
|
| int size_in_bytes,
|
| AllocationSpace space,
|
| AllocationSpace retry_space);
|
| @@ -647,26 +657,27 @@
|
| // self_reference. This allows generated code to reference its own Code
|
| // object by containing this pointer.
|
| // Please note this function does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* CreateCode(const CodeDesc& desc,
|
| - Code::Flags flags,
|
| - Handle<Object> self_reference);
|
| + MUST_USE_RESULT static MaybeObject* CreateCode(const CodeDesc& desc,
|
| + Code::Flags flags,
|
| + Handle<Object> self_reference);
|
|
|
| - MUST_USE_RESULT static Object* CopyCode(Code* code);
|
| + MUST_USE_RESULT static MaybeObject* CopyCode(Code* code);
|
|
|
| // Copy the code and scope info part of the code object, but insert
|
| // the provided data as the relocation information.
|
| - MUST_USE_RESULT static Object* CopyCode(Code* code, Vector<byte> reloc_info);
|
| + MUST_USE_RESULT static MaybeObject* CopyCode(Code* code,
|
| + Vector<byte> reloc_info);
|
|
|
| // Finds the symbol for string in the symbol table.
|
| // If not found, a new symbol is added to the table and returned.
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if allocation
|
| // failed.
|
| // Please note this function does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* LookupSymbol(Vector<const char> str);
|
| - MUST_USE_RESULT static Object* LookupAsciiSymbol(const char* str) {
|
| + MUST_USE_RESULT static MaybeObject* LookupSymbol(Vector<const char> str);
|
| + MUST_USE_RESULT static MaybeObject* LookupAsciiSymbol(const char* str) {
|
| return LookupSymbol(CStrVector(str));
|
| }
|
| - MUST_USE_RESULT static Object* LookupSymbol(String* str);
|
| + MUST_USE_RESULT static MaybeObject* LookupSymbol(String* str);
|
| static bool LookupSymbolIfExists(String* str, String** symbol);
|
| static bool LookupTwoCharsSymbolIfExists(String* str, String** symbol);
|
|
|
| @@ -681,7 +692,7 @@
|
| // string might stay non-flat even when not a failure is returned.
|
| //
|
| // Please note this function does not perform a garbage collection.
|
| - MUST_USE_RESULT static inline Object* PrepareForCompare(String* str);
|
| + MUST_USE_RESULT static inline MaybeObject* PrepareForCompare(String* str);
|
|
|
| // Converts the given boolean condition to JavaScript boolean value.
|
| static Object* ToBoolean(bool condition) {
|
| @@ -897,10 +908,10 @@
|
| // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
| // failed.
|
| // Please note this function does not perform a garbage collection.
|
| - MUST_USE_RESULT static Object* CreateSymbol(const char* str,
|
| - int length,
|
| - int hash);
|
| - MUST_USE_RESULT static Object* CreateSymbol(String* str);
|
| + MUST_USE_RESULT static MaybeObject* CreateSymbol(const char* str,
|
| + int length,
|
| + int hash);
|
| + MUST_USE_RESULT static MaybeObject* CreateSymbol(String* str);
|
|
|
| // Write barrier support for address[offset] = o.
|
| static inline void RecordWrite(Address address, int offset);
|
| @@ -972,9 +983,10 @@
|
| static inline int AdjustAmountOfExternalAllocatedMemory(int change_in_bytes);
|
|
|
| // Allocate uninitialized fixed array.
|
| - MUST_USE_RESULT static Object* AllocateRawFixedArray(int length);
|
| - MUST_USE_RESULT static Object* AllocateRawFixedArray(int length,
|
| - PretenureFlag pretenure);
|
| + MUST_USE_RESULT static MaybeObject* AllocateRawFixedArray(int length);
|
| + MUST_USE_RESULT static MaybeObject* AllocateRawFixedArray(
|
| + int length,
|
| + PretenureFlag pretenure);
|
|
|
| // True if we have reached the allocation limit in the old generation that
|
| // should force the next GC (caused normally) to be a full one.
|
| @@ -1017,7 +1029,7 @@
|
| kRootListLength
|
| };
|
|
|
| - MUST_USE_RESULT static Object* NumberToString(
|
| + MUST_USE_RESULT static MaybeObject* NumberToString(
|
| Object* number,
|
| bool check_number_string_cache = true);
|
|
|
| @@ -1241,10 +1253,10 @@
|
| // to Heap::AllocateRaw(size_in_bytes, MAP_SPACE), except that (a) it doesn't
|
| // have to test the allocation space argument and (b) can reduce code size
|
| // (since both AllocateRaw and AllocateRawMap are inlined).
|
| - MUST_USE_RESULT static inline Object* AllocateRawMap();
|
| + MUST_USE_RESULT static inline MaybeObject* AllocateRawMap();
|
|
|
| // Allocate an uninitialized object in the global property cell space.
|
| - MUST_USE_RESULT static inline Object* AllocateRawCell();
|
| + MUST_USE_RESULT static inline MaybeObject* AllocateRawCell();
|
|
|
| // Initializes a JSObject based on its map.
|
| static void InitializeJSObjectFromMap(JSObject* obj,
|
| @@ -1263,10 +1275,11 @@
|
|
|
| static void CreateFixedStubs();
|
|
|
| - static Object* CreateOddball(const char* to_string, Object* to_number);
|
| + MUST_USE_RESULT static MaybeObject* CreateOddball(const char* to_string,
|
| + Object* to_number);
|
|
|
| // Allocate empty fixed array.
|
| - static Object* AllocateEmptyFixedArray();
|
| + MUST_USE_RESULT static MaybeObject* AllocateEmptyFixedArray();
|
|
|
| // Performs a minor collection in new generation.
|
| static void Scavenge();
|
| @@ -1305,7 +1318,7 @@
|
| // other parts of the VM could use it. Specifically, a function that creates
|
| // instances of type JS_FUNCTION_TYPE benefit from the use of this function.
|
| // Please note this does not perform a garbage collection.
|
| - MUST_USE_RESULT static inline Object* InitializeFunction(
|
| + MUST_USE_RESULT static inline MaybeObject* InitializeFunction(
|
| JSFunction* function,
|
| SharedFunctionInfo* shared,
|
| Object* prototype);
|
| @@ -1314,7 +1327,7 @@
|
|
|
|
|
| // Initializes the number to string cache based on the max semispace size.
|
| - static Object* InitializeNumberStringCache();
|
| + MUST_USE_RESULT static MaybeObject* InitializeNumberStringCache();
|
| // Flush the number to string cache.
|
| static void FlushNumberStringCache();
|
|
|
| @@ -1922,7 +1935,7 @@
|
|
|
| // Returns a heap number with f(input), where f is a math function specified
|
| // by the 'type' argument.
|
| - MUST_USE_RESULT static inline Object* Get(Type type, double input) {
|
| + MUST_USE_RESULT static inline MaybeObject* Get(Type type, double input) {
|
| TranscendentalCache* cache = caches_[type];
|
| if (cache == NULL) {
|
| caches_[type] = cache = new TranscendentalCache(type);
|
| @@ -1935,7 +1948,7 @@
|
| static void Clear();
|
|
|
| private:
|
| - MUST_USE_RESULT inline Object* Get(double input) {
|
| + MUST_USE_RESULT inline MaybeObject* Get(double input) {
|
| Converter c;
|
| c.dbl = input;
|
| int hash = Hash(c);
|
| @@ -1947,13 +1960,14 @@
|
| return e.output;
|
| }
|
| double answer = Calculate(input);
|
| - Object* heap_number = Heap::AllocateHeapNumber(answer);
|
| - if (!heap_number->IsFailure()) {
|
| - elements_[hash].in[0] = c.integers[0];
|
| - elements_[hash].in[1] = c.integers[1];
|
| - elements_[hash].output = heap_number;
|
| + Counters::transcendental_cache_miss.Increment();
|
| + Object* heap_number;
|
| + { MaybeObject* maybe_heap_number = Heap::AllocateHeapNumber(answer);
|
| + if (!maybe_heap_number->ToObject(&heap_number)) return maybe_heap_number;
|
| }
|
| - Counters::transcendental_cache_miss.Increment();
|
| + elements_[hash].in[0] = c.integers[0];
|
| + elements_[hash].in[1] = c.integers[1];
|
| + elements_[hash].output = heap_number;
|
| return heap_number;
|
| }
|
|
|
|
|