Ignore:
Timestamp:
Sep 2, 2012, 2:27:23 PM (13 years ago)
Author:
[email protected]
Message:

Refactored scope chain opcodes to support optimization for named function expressions
https://bugs.webkit.org/show_bug.cgi?id=95658

Reviewed by Sam Weinig.

Renamed

push_scope => push_with_scope
push_new_scope => push_name_scope

to clarify the difference between them.

Changed push_with_scope and push_name_scope not to save the new scope in
a temporary register, since doing so made optimization harder.

(The old behavior was a hold-over from when the scope chain wasn't
a GC object, and wouldn't be marked otherwise. Now, the scope chain is
marked because it is a GC object pointed to by the call frame.)

Changed push_name_scope to accept an operand specifying the attributes
for the named property, instead of assuming DontDelete, because a named
function expression needs ReadOnly|DontDelete.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::highestUsedRegister): Removed this function,
which used to be related to preserving saved scope object temporaries,
because it had no callers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.h

    r127333 r127393  
    203203LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_get_pnames);
    204204LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_next_pname);
    205 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_push_scope);
     205LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_push_with_scope);
    206206LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_pop_scope);
    207 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_push_new_scope);
     207LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_push_name_scope);
    208208LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_throw);
    209209LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_throw_reference_error);
Note: See TracChangeset for help on using the changeset viewer.