| Index: src/stub-cache.h
|
| diff --git a/src/stub-cache.h b/src/stub-cache.h
|
| index 38bc7a3c3a6fff69ccaddde91bdca75cf019bb49..c481cc684fea20c44115317adf97fede89066112 100644
|
| --- a/src/stub-cache.h
|
| +++ b/src/stub-cache.h
|
| @@ -434,6 +434,18 @@ class StubCompiler BASE_EMBEDDED {
|
| int index,
|
| Register prototype);
|
|
|
| + // Helper function used to check that the dictionary doesn't contain
|
| + // the property. This function may return false negatives, so miss_label
|
| + // must always call a backup property check that is complete.
|
| + // This function is safe to call if the receiver has fast properties.
|
| + // Name must be unique and receiver must be a heap object.
|
| + static void GenerateDictionaryNegativeLookup(MacroAssembler* masm,
|
| + Label* miss_label,
|
| + Register receiver,
|
| + Handle<Name> name,
|
| + Register r0,
|
| + Register r1);
|
| +
|
| // Generates prototype loading code that uses the objects from the
|
| // context we were in when this function was called. If the context
|
| // has changed, a jump to miss is performed. This ties the generated
|
| @@ -469,6 +481,24 @@ class StubCompiler BASE_EMBEDDED {
|
| Register scratch2,
|
| Label* miss_label);
|
|
|
| + // Generate code to check that a global property cell is empty. Create
|
| + // the property cell at compilation time if no cell exists for the
|
| + // property.
|
| + static void GenerateCheckPropertyCell(MacroAssembler* masm,
|
| + Handle<GlobalObject> global,
|
| + Handle<Name> name,
|
| + Register scratch,
|
| + Label* miss);
|
| +
|
| + // Calls GenerateCheckPropertyCell for each global object in the prototype
|
| + // chain from object to (but not including) holder.
|
| + static void GenerateCheckPropertyCells(MacroAssembler* masm,
|
| + Handle<JSObject> object,
|
| + Handle<JSObject> holder,
|
| + Handle<Name> name,
|
| + Register scratch,
|
| + Label* miss);
|
| +
|
| static void TailCallBuiltin(MacroAssembler* masm, Builtins::Name name);
|
|
|
| // Generates code that verifies that the property holder has not changed
|
|
|