Bug 35716 - Allow static property getters to interact with JSCs caching
Summary: Allow static property getters to interact with JSCs caching
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other OS X 10.5
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 46423
  Show dependency treegraph
 
Reported: 2010-03-03 20:53 PST by Oliver Hunt
Modified: 2010-09-23 15:45 PDT (History)
1 user (show)

See Also:


Attachments
Patch (67.51 KB, patch)
2010-03-03 21:15 PST, Oliver Hunt
barraclough: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Oliver Hunt 2010-03-03 20:53:18 PST
Allow static property getters to interact with JSCs caching
Comment 1 Oliver Hunt 2010-03-03 21:15:32 PST
Created attachment 49982 [details]
Patch
Comment 2 WebKit Review Bot 2010-03-03 21:19:12 PST
Attachment 49982 [details] did not pass style-queue:

Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1
JavaScriptCore/interpreter/Interpreter.cpp:2248:  Missing spaces around &&  [whitespace/operators] [3]
JavaScriptCore/interpreter/Interpreter.cpp:2421:  Missing spaces around &&  [whitespace/operators] [3]
JavaScriptCore/interpreter/Interpreter.cpp:2533:  Missing spaces around &&  [whitespace/operators] [3]
Total errors found: 3 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Gavin Barraclough 2010-03-03 22:24:19 PST
Comment on attachment 49982 [details]
Patch

 2318         // Polymorphic self access caching currently only supported when JITting.
 2319         ASSERT_NOT_REACHED();
 2320         // This case of the switch must not be empty, else (op_get_by_id_self_list == op_get_by_id_chain)!
 2321         vPC += OPCODE_LENGTH(op_get_by_id_self_list);
 2322         NEXT_INSTRUCTION();
 2323     }

 2324     DEFINE_OPCODE(op_get_by_id_custom_proto_list) {
 2325         // Polymorphic prototype access caching currently only supported when JITting.
 2326         ASSERT_NOT_REACHED();
 2327         // This case of the switch must not be empty, else (op_get_by_id_proto_list == op_get_by_id_chain)!
 2328         vPC += OPCODE_LENGTH(op_get_by_id_proto_list);
 2329         NEXT_INSTRUCTION();

Probably best to remove the vPC increment in these cases.  In case of error (or maliciously bad input) it would probably be better to hang than to continue execution of invalid bytecode.

In 'op_get_by_id_custom_proto' implementation in the interpreter, comments incorrectly refer to 'op_get_by_id_getter_proto' (from copy and paste, presumably).  (ditto errors in comments in op_get_by_id_custom_self, op_get_by_id_custom_chain )

r-, you mix 'C' and 'c' in naming the prgramming language in the changelog.  r+ if you fix that. :-P
Comment 4 Oliver Hunt 2010-03-04 17:34:15 PST
Committed r55564: <http://trac.webkit.org/changeset/55564>