v8/src
kmillikin@chromium.org e1041c9f9c Introduce 'trivial' expressions, use them for this property assignments.
Add a (currently) syntactic predicate to AST expression nodes telling
whether they are 'trivial'.  Trivial expressions have no side effects,
do not require storage to be allocated for them, and can be evaluated
out of order (because their value does not change between when they
are visited by the code generator as expressions in the AST and when
it is consumed).

Mark 'this' and literals as trivial.  Allow them to be pushed on the
virtual frame.  Make use of them to push 'this' more lazily in this
property assignments.

Review URL: http://codereview.chromium.org/647018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-19 09:01:31 +00:00
..
arm Make setting length on arrays faster. 2010-02-18 17:30:32 +00:00
ia32 Introduce 'trivial' expressions, use them for this property assignments. 2010-02-19 09:01:31 +00:00
mips MIPS port initial commit 2010-02-04 20:36:58 +00:00
third_party Apply patch by Timur Iskhodzhanov to add valgrind notifications on 2009-10-26 17:53:34 +00:00
x64 Make setting length on arrays faster. 2010-02-18 17:30:32 +00:00
accessors.cc Refactor prototype setting code and expose SetPrototype to public V8 API. 2010-02-10 14:44:15 +00:00
accessors.h Remove the last context dependent reference from the Script object 2009-12-01 14:36:45 +00:00
allocation.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
allocation.h Change the signature for StrNDup to match the implementation. This 2009-11-20 13:08:44 +00:00
api.cc Remove the LookupResult IsValid method because it is confusing. 2010-02-18 15:10:35 +00:00
api.h Reverting 3174. Aka reapplying 3150, 3151 and 3159. Aka api accessor 2009-11-04 08:51:48 +00:00
apinatives.js Convert object to fast mode after creation. That enables more optimizations. 2009-07-13 10:10:28 +00:00
apiutils.h Api inlining. Made some core functionality available in the api and 2009-08-26 10:33:11 +00:00
arguments.h Fix some style issues in the ARM code. 2009-11-12 13:55:21 +00:00
array.js Introduce Array.splice builtin. 2010-02-17 10:54:49 +00:00
assembler.cc Review URL: http://codereview.chromium.org/561049 2010-02-08 13:44:49 +00:00
assembler.h Review URL: http://codereview.chromium.org/561049 2010-02-08 13:44:49 +00:00
ast.cc Added validating JSON parser mode to parser. 2010-02-01 10:31:55 +00:00
ast.h Introduce 'trivial' expressions, use them for this property assignments. 2010-02-19 09:01:31 +00:00
bootstrapper.cc Remove the LookupResult IsValid method because it is confusing. 2010-02-18 15:10:35 +00:00
bootstrapper.h Always load the JavaScript builtins code entry from the JavaScript 2010-02-11 08:05:33 +00:00
builtins.cc Make setting length on arrays faster. 2010-02-18 17:30:32 +00:00
builtins.h Make setting length on arrays faster. 2010-02-18 17:30:32 +00:00
bytecodes-irregexp.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
char-predicates-inl.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
char-predicates.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
checks.cc * Remove old snapshot implementation 2009-11-16 12:08:40 +00:00
checks.h Implement tagging of profiler log event blocks. 2010-02-17 13:23:46 +00:00
code-stubs.cc Always load the JavaScript builtins code entry from the JavaScript 2010-02-11 08:05:33 +00:00
code-stubs.h Inline NumberToString 2010-02-16 09:41:11 +00:00
code.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
codegen-inl.h Move class declaration of Comment from codegen-inl.h to codegen.h 2010-02-08 08:54:27 +00:00
codegen.cc Add central bridge for liveedit support 2010-02-17 20:37:08 +00:00
codegen.h Pass the complete number type information into the GenericBinaryOpStub. 2010-02-16 13:03:16 +00:00
compilation-cache.cc Add comment to compilation-cache.cc explaining choice of 5 generations. 2009-10-14 15:01:25 +00:00
compilation-cache.h Refactor the handling of generations in the compilation cache. 2009-06-22 11:12:51 +00:00
compiler.cc Add central bridge for liveedit support 2010-02-17 20:37:08 +00:00
compiler.h Enable passing of script data via script creation methods. 2010-02-16 15:15:31 +00:00
contexts.cc The number of heap slots stored in a scope includes the 2009-12-21 10:24:11 +00:00
contexts.h Remove caching of ToBoolean on the global context. This was used for 2010-02-16 09:24:14 +00:00
conversions-inl.h X64/Win64: Alternative implementation of fmod in general. 2009-10-23 09:18:19 +00:00
conversions.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
conversions.h X64/Win64: Alternative implementation of fmod in general. 2009-10-23 09:18:19 +00:00
counters.cc Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
counters.h - Record cache hit rates at different levels in the compilation cache 2009-05-26 08:10:04 +00:00
cpu.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
d8-debug.cc
d8-debug.h
d8-posix.cc A follow-up to r3009: add parentheses around one more anonymous function. 2009-10-13 15:17:24 +00:00
d8-readline.cc Making lint happy. 2010-02-10 11:48:53 +00:00
d8-windows.cc
d8.cc Check return code from fwrite 2009-12-03 08:48:32 +00:00
d8.h Add a readline() command to d8. This reads a single line, stripping 2009-08-13 07:07:41 +00:00
d8.js Added new scope type ScopeIterator::ScopeTypeCatch for with generated from catch blocks. 2009-09-08 10:20:28 +00:00
data-flow.cc Add last use data flow information to the fast code generator. 2010-02-12 10:16:30 +00:00
data-flow.h Add last use data flow information to the fast code generator. 2010-02-12 10:16:30 +00:00
date-delay.js Fix Date.prototype.toISOString for NaN dates and add milliseconds for 2010-01-14 08:55:15 +00:00
dateparser-inl.h Untangle some #include dependencies. 2009-10-15 15:01:36 +00:00
dateparser.cc RFC: Try to be much more careful with where we skip the write barrier by: 2010-01-29 11:46:55 +00:00
dateparser.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
debug-agent.cc Add diagnostic print to debug agent if it fails to open port 2010-01-15 18:11:12 +00:00
debug-agent.h Fixed some cctest flakiness on mac. 2009-09-25 10:36:00 +00:00
debug-delay.js Implement tagging of profiler log event blocks. 2010-02-17 13:23:46 +00:00
debug.cc Fix the build after previous commit. 2010-02-16 15:29:35 +00:00
debug.h Removing redundant stub for runtime native calls. 2010-01-29 12:41:11 +00:00
disasm.h
disassembler.cc Fix test failures in debug mode w/snapshots. It turns out that not 2010-02-05 13:07:00 +00:00
disassembler.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
dtoa-config.c Land patch to add Solaris platform support. 2010-01-25 12:37:31 +00:00
execution.cc Introduce builtin for Array.slice function. 2010-02-16 12:14:23 +00:00
execution.h Implement issue 554 Add "ProcessDebuggerRequests" call to Debug Agent API 2010-01-15 21:14:56 +00:00
factory.cc Fix GC bug 2010-01-18 14:13:58 +00:00
factory.h Fix GC bug 2010-01-18 14:13:58 +00:00
fast-codegen.cc Remove the LookupResult IsValid method because it is confusing. 2010-02-18 15:10:35 +00:00
fast-codegen.h Simple type tracking in the fast code generator. 2010-02-11 08:41:19 +00:00
flag-definitions.h ARMv7 ubfx support 2010-02-05 08:46:41 +00:00
flags.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
flags.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
frame-element.cc Pass the complete number type information into the GenericBinaryOpStub. 2010-02-16 13:03:16 +00:00
frame-element.h Pass the complete number type information into the GenericBinaryOpStub. 2010-02-16 13:03:16 +00:00
frames-inl.h MIPS port initial commit 2010-02-04 20:36:58 +00:00
frames.cc Review URL: http://codereview.chromium.org/561049 2010-02-08 13:44:49 +00:00
frames.h Show user script source line that caused exception intead of a line in a native script. When an error is reported as one happened in a native script it's hard to track the original cause. See chromium issue: http://crbug.com/25305 2010-02-01 10:34:57 +00:00
full-codegen.cc Fix error in compound assignment to keyed load by making platform-independent full compiler code platform dependent, add test of compound assignments. 2010-02-18 12:59:41 +00:00
full-codegen.h Fix presubmit errors. 2010-02-04 15:21:05 +00:00
func-name-inferrer.cc Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
func-name-inferrer.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
global-handles.cc External string table. 2009-12-09 14:32:45 +00:00
global-handles.h Added recording of heap and global handle stats in a stack-allocated 2009-12-03 10:16:37 +00:00
globals.h ARMv7 ubfx support 2010-02-05 08:46:41 +00:00
handles-inl.h Fix strict aliasing crash on x64. 2009-08-14 17:19:51 +00:00
handles.cc Fix the build after previous commit. 2010-02-16 15:29:35 +00:00
handles.h Refactor prototype setting code and expose SetPrototype to public V8 API. 2010-02-10 14:44:15 +00:00
hashmap.cc Fix some defects identifies by Coverity Prevent. All are false 2009-07-22 11:29:38 +00:00
hashmap.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
heap-inl.h Strengthen a few assertions and add zapping of allocated 2010-01-28 08:46:56 +00:00
heap-profiler.cc Merge ObjectIterator::has_next and ObjectIterator::next methods. 2010-01-25 22:53:18 +00:00
heap-profiler.h Don't bother callling into the ProducerHeapProfile methods 2009-12-17 09:16:44 +00:00
heap.cc Refactor the check for generating inline constructors 2010-02-18 09:07:03 +00:00
heap.h Review URL: http://codereview.chromium.org/561049 2010-02-08 13:44:49 +00:00
ic-inl.h Rename a constant to kCallTargetAddressOffset 2009-09-11 12:41:27 +00:00
ic.cc Make setting length on arrays faster. 2010-02-18 17:30:32 +00:00
ic.h Make setting length on arrays faster. 2010-02-18 17:30:32 +00:00
interpreter-irregexp.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
interpreter-irregexp.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
json-delay.js Updated JSON.stringify to newest version of ES5. 2010-02-03 13:17:39 +00:00
jsregexp.cc Fix bug in character-set merging. Add test case. 2010-01-25 12:56:49 +00:00
jsregexp.h Attempt to make \b\w+ faster. Slight performance increase on, e.g., string unpacking. 2010-01-07 19:01:23 +00:00
jump-target-inl.h Introduce number type information in the virtual frame. 2010-02-15 14:24:38 +00:00
jump-target.cc Introduce number type information in the virtual frame. 2010-02-15 14:24:38 +00:00
jump-target.h Optimize implementation of Math.floor a little by special casing 2009-12-21 15:04:00 +00:00
list-inl.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
list.h Implement inline string compare on ARM. 2010-01-21 12:10:56 +00:00
liveedit.cc Fix lint errors 2010-02-17 20:57:05 +00:00
liveedit.h Fix lint errors 2010-02-17 20:57:05 +00:00
log-inl.h Store API callback entry address prior to entering a callback. 2009-11-23 14:43:00 +00:00
log-utils.cc Kill some unused code. 2010-02-18 12:47:17 +00:00
log-utils.h Kill some unused code. 2010-02-18 12:47:17 +00:00
log.cc Kill some unused code. 2010-02-18 12:47:17 +00:00
log.h Kill some unused code. 2010-02-18 12:47:17 +00:00
macro-assembler.h ia32: Fuse map and type checks in call ICs for API functions. 2010-02-09 16:14:14 +00:00
macros.py Fix some usage of "this" in builtins 2010-01-19 14:15:47 +00:00
mark-compact.cc Merge ObjectIterator::has_next and ObjectIterator::next methods. 2010-01-25 22:53:18 +00:00
mark-compact.h Fix issue 553: function frame is skipped in profile when compare stub is called. 2010-01-21 16:42:41 +00:00
math.js Remove duplicate function from runtime. 2010-02-17 11:26:00 +00:00
memory.h Add near calls (32-bit displacement) to Code objects on X64 platform. 2009-10-06 13:11:05 +00:00
messages.cc Add support for forceful termination of JavaScript execution. 2009-08-19 15:14:11 +00:00
messages.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
messages.js Added Object.defineProperty + needed internal functionality: 2010-02-03 13:10:03 +00:00
mirror-delay.js Land 598061(Process //@ scriptURL=url comment for scripts that don't have name set) 2010-02-12 17:17:13 +00:00
mksnapshot.cc Another step on the way to context snapshots. We can now refer to 2010-01-27 08:25:48 +00:00
natives.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
number-info.h Enable passing of script data via script creation methods. 2010-02-16 15:15:31 +00:00
objects-debug.cc Add class name into FunctionTemplateInfo debug printing. 2010-02-17 07:14:43 +00:00
objects-inl.h Make setting length on arrays faster. 2010-02-18 17:30:32 +00:00
objects.cc Make setting length on arrays faster. 2010-02-18 17:30:32 +00:00
objects.h Make setting length on arrays faster. 2010-02-18 17:30:32 +00:00
oprofile-agent.cc Added utility scripts for running oprofile in tools/oprofile. 2009-06-16 12:08:59 +00:00
oprofile-agent.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
parser.cc Make sure that the inline_new flag guards all the optimizations for 2010-02-16 15:14:34 +00:00
parser.h Added validating JSON parser mode to parser. 2010-02-01 10:31:55 +00:00
platform-freebsd.cc Land patch to add Solaris platform support. 2010-01-25 12:37:31 +00:00
platform-linux.cc ARMv7 ubfx support 2010-02-05 08:46:41 +00:00
platform-macos.cc Land patch to add Solaris platform support. 2010-01-25 12:37:31 +00:00
platform-nullos.cc Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
platform-openbsd.cc Land patch to add Solaris platform support. 2010-01-25 12:37:31 +00:00
platform-posix.cc Land patch to add Solaris platform support. 2010-01-25 12:37:31 +00:00
platform-solaris.cc Actually land the platform-solaris.cc file for solaris support. 2010-01-25 16:48:53 +00:00
platform-win32.cc Fix issue 553: function frame is skipped in profile when compare stub is called. 2010-01-21 16:42:41 +00:00
platform.h Land patch to add Solaris platform support. 2010-01-25 12:37:31 +00:00
prettyprinter.cc Add a pass for the fast compiler to label expression nodes. 2010-01-29 09:42:13 +00:00
prettyprinter.h Add a pass for the fast compiler to label expression nodes. 2010-01-29 09:42:13 +00:00
property.cc Remove the LookupResult IsValid method because it is confusing. 2010-02-18 15:10:35 +00:00
property.h Remove the LookupResult IsValid method because it is confusing. 2010-02-18 15:10:35 +00:00
regexp-delay.js Direct call to native RegExp code from JavaScript. 2010-01-06 11:09:30 +00:00
regexp-macro-assembler-irregexp-inl.h ARM native regexps. 2009-08-31 12:40:37 +00:00
regexp-macro-assembler-irregexp.cc ARM native regexps. 2009-08-31 12:40:37 +00:00
regexp-macro-assembler-irregexp.h ARM native regexps. 2009-08-31 12:40:37 +00:00
regexp-macro-assembler-tracer.cc Attempt to make \b\w+ faster. Slight performance increase on, e.g., string unpacking. 2010-01-07 19:01:23 +00:00
regexp-macro-assembler-tracer.h Attempt to make \b\w+ faster. Slight performance increase on, e.g., string unpacking. 2010-01-07 19:01:23 +00:00
regexp-macro-assembler.cc Don't pass the "at start" parameter to native RegExp 2010-01-26 11:08:42 +00:00
regexp-macro-assembler.h Don't pass the "at start" parameter to native RegExp 2010-01-26 11:08:42 +00:00
regexp-stack.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
regexp-stack.h Direct call to native RegExp code from JavaScript. 2010-01-06 11:09:30 +00:00
register-allocator-inl.h Eliminate unnecessary depencencies in some header files. 2010-02-08 14:33:34 +00:00
register-allocator.cc Introduce number type information in the virtual frame. 2010-02-15 14:24:38 +00:00
register-allocator.h Introduce number type information in the virtual frame. 2010-02-15 14:24:38 +00:00
rewriter.cc - Undo unfortunate renaming of StaticType. 2009-12-17 06:21:50 +00:00
rewriter.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
runtime.cc Remove the LookupResult IsValid method because it is confusing. 2010-02-18 15:10:35 +00:00
runtime.h Implement tagging of profiler log event blocks. 2010-02-17 13:23:46 +00:00
runtime.js Fix stack corruption when calling non-function. 2010-02-17 08:26:50 +00:00
scanner.cc Added validating JSON parser mode to parser. 2010-02-01 10:31:55 +00:00
scanner.h Added validating JSON parser mode to parser. 2010-02-01 10:31:55 +00:00
SConscript Add central bridge for liveedit support 2010-02-17 20:37:08 +00:00
scopeinfo.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
scopeinfo.h Implemented a ContextSlotCache for compiled code. 2009-06-22 08:09:57 +00:00
scopes.cc Make the ResolvePossiblyDirectEval faster by avoiding the 2010-01-05 09:38:02 +00:00
scopes.h Fix for issue 545: don't reuse this VariableProxy. 2009-12-08 09:43:51 +00:00
serialize.cc Remove unsafe and unneeded logging during deserialization. 2010-01-28 13:05:29 +00:00
serialize.h Another step on the way to context snapshots. We can now refer to 2010-01-27 08:25:48 +00:00
shell.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
simulator.h MIPS port initial commit 2010-02-04 20:36:58 +00:00
smart-pointer.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
snapshot-common.cc Another step on the way to context snapshots. We can now refer to 2010-01-27 08:25:48 +00:00
snapshot-empty.cc Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
snapshot.h * Remove old snapshot implementation 2009-11-16 12:08:40 +00:00
spaces-inl.h Merge ObjectIterator::has_next and ObjectIterator::next methods. 2010-01-25 22:53:18 +00:00
spaces.cc Strengthen a few assertions and add zapping of allocated 2010-01-28 08:46:56 +00:00
spaces.h Strengthen a few assertions and add zapping of allocated 2010-01-28 08:46:56 +00:00
string-stream.cc Remove the different length string types 2009-11-24 14:10:06 +00:00
string-stream.h Add initial version of retainers heap profile. 2009-09-16 13:41:24 +00:00
string.js Optimize concat for one argument (two if you count 'this'). 2010-02-08 14:00:50 +00:00
stub-cache.cc Remove the LookupResult IsValid method because it is confusing. 2010-02-18 15:10:35 +00:00
stub-cache.h Change the interface of CallStubCompiler::CompileCallInterceptor. 2010-02-15 13:20:49 +00:00
token.cc Give the binary op stubs better names to make profiles more informative. 2009-12-11 10:40:01 +00:00
token.h Adding compound assignments to the top-level compiler. 2009-12-11 16:09:16 +00:00
top.cc ia32: Fuse map and type checks in call ICs for API functions. 2010-02-09 16:14:14 +00:00
top.h ia32: Fuse map and type checks in call ICs for API functions. 2010-02-09 16:14:14 +00:00
unicode-inl.h
unicode.cc Small cleanup to Utf8::CalculateValue: 2009-07-13 11:17:51 +00:00
unicode.h
uri.js * Remove non-Open Source code from Douglas Crockford. 2009-09-23 12:32:24 +00:00
usage-analyzer.cc Split the AST LoopStatement type into separate types for do/while, 2009-10-12 13:14:06 +00:00
usage-analyzer.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
utils.cc Kill some unused code. 2010-02-18 12:47:17 +00:00
utils.h Kill some unused code. 2010-02-18 12:47:17 +00:00
v8-counters.cc Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
v8-counters.h Inline NumberToString 2010-02-16 09:41:11 +00:00
v8.cc Fix issue 597: builtins and stubs are missing in profiler log when using snapshots. 2010-02-04 21:34:03 +00:00
v8.h * Remove old snapshot implementation 2009-11-16 12:08:40 +00:00
v8natives.js Remove duplicate function from runtime. 2010-02-17 11:26:00 +00:00
v8threads.cc Ensure V8 is initialized before locking and unlocking threads. 2009-10-02 11:39:56 +00:00
v8threads.h * Fix memory leaks caused by thread local data being lost. 2009-09-28 12:25:21 +00:00
variables.cc - Undo unfortunate renaming of StaticType. 2009-12-17 06:21:50 +00:00
variables.h - Undo unfortunate renaming of StaticType. 2009-12-17 06:21:50 +00:00
version.cc Prepare push to trunk. Now working on version 2.1.2. 2010-02-19 08:19:20 +00:00
version.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
virtual-frame.cc Introduce number type information in the virtual frame. 2010-02-15 14:24:38 +00:00
virtual-frame.h MIPS port initial commit 2010-02-04 20:36:58 +00:00
zone-inl.h Eliminate recursion in ZoneSplayTree traversal. 2009-09-21 07:12:38 +00:00
zone.cc Fix some defects identifies by Coverity Prevent. All are false 2009-07-22 11:29:38 +00:00
zone.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00