- 22 Nov, 2012 2 commits
-
-
verwaest@chromium.org authored
- Initialize the result array with holes if we concat a double array into an object array, since it may cause a marking step while boxing a double. - Ensure we go holey if we are concatting any holey array. Review URL: https://chromiumcodereview.appspot.com/11413142 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Modules now have their own local scope, represented by their own context. Module instance objects have an accessor for every export that forwards access to the respective slot from the module's context. (Exports that are modules themselves, however, are simple data properties.) All modules have a _hosting_ scope/context, which (currently) is the (innermost) enclosing global scope. To deal with recursion, nested modules are hosted by the same scope as global ones. For every (global or nested) module literal, the hosting context has an internal slot that points directly to the respective module context. This enables quick access to (statically resolved) module members by 2-dimensional access through the hosting context. For example, module A { let x; module B { let y; } } module C { let z; } allocates contexts as follows: [header| .A | .B | .C | A | C ] (global) | | | | | +-- [header| z ] (module) | | | +------- [header| y ] (module) | +------------ [header| x | B ] (module) Here, .A, .B, .C are the internal slots pointing to the hosted module contexts, whereas A, B, C hold the actual instance objects (note that every module context also points to the respective instance object through its extension slot in the header). To deal with arbitrary recursion and aliases between modules, they are created and initialized in several stages. Each stage applies to all modules in the hosting global scope, including nested ones. 1. Allocate: for each module _literal_, allocate the module contexts and respective instance object and wire them up. This happens in the PushModuleContext runtime function, as generated by AllocateModules (invoked by VisitDeclarations in the hosting scope). 2. Bind: for each module _declaration_ (i.e. literals as well as aliases), assign the respective instance object to respective local variables. This happens in VisitModuleDeclaration, and uses the instance objects created in the previous stage. For each module _literal_, this phase also constructs a module descriptor for the next stage. This happens in VisitModuleLiteral. 3. Populate: invoke the DeclareModules runtime function to populate each _instance_ object with accessors for it exports. This is generated by DeclareModules (invoked by VisitDeclarations in the hosting scope again), and uses the descriptors generated in the previous stage. 4. Initialize: execute the module bodies (and other code) in sequence. This happens by the separate statements generated for module bodies. To reenter the module scopes properly, the parser inserted ModuleStatements. R=mstarzinger@chromium.org,svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/11093074 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Nov, 2012 1 commit
-
-
yangguo@chromium.org authored
This is a straight rename: IsAsciiRepresentation -> IsOneByteRepresentation IsAsciiRepresentationUnderneath -> IsOneByteRepresentationUnderneath AllocateRawAsciiString -> AllocateRawOneByteString AllocateStringFromAscii -> AllocateStringFromOneByte R=yangguo@chromium.org, BUG= Review URL: https://chromiumcodereview.appspot.com/11308066 Patch from Dan Carney <dcarney@google.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Nov, 2012 1 commit
-
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/11413068 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Nov, 2012 2 commits
-
-
rossberg@chromium.org authored
Eliminates substantial amounts of fragile code duplication and special casing. Also fixes "a".propertyIsEnumerable(0) to correctly return true. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/11420011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
For Octane, the number of calls go down from 7341629 to 1947880, i.e. they are reduced by more than 73%. TLS access is not especially cheap, so this exercise seems worthwhile. Review URL: https://codereview.chromium.org/11412007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Nov, 2012 2 commits
-
-
yangguo@chromium.org authored
This is a straight rename: NewRawAsciiString -> NewRawOneByteString SeqAscii -> SeqOneByte SeqOneByteString cannot yet take non-ascii data. R=yangguo@chromium.org, BUG= Review URL: https://chromiumcodereview.appspot.com/11411005 Patch from Dan Carney <dcarney@google.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Extended ElementAccessor interface to allow querying PropertyType and AccessorPair. Also added respective functionality to JSObject. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/11358234 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Nov, 2012 2 commits
-
-
rossberg@chromium.org authored
The previous implementation in Accessors::ArraySetLength failed when array length was set through StoreIC_ArrayLength. But that stub and the accessor both delegate to JSArray::SetElementsLength, so moving the code there allows notifications to be sent in both cases. Review URL: https://codereview.chromium.org/11275292 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
Lattice-based representation inference, powered by left/right specific type feedback for BinaryOps and comparisons Review URL: https://chromiumcodereview.appspot.com/10837165 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Nov, 2012 2 commits
-
-
rossberg@chromium.org authored
Wins back ~1500 points on Octane/Gameboy that we lost with https://codereview.chromium.org/11365111 (CL 12900), presumably by lowering register pressure and/or handlification overhead. Hopefully benefits other regressions as well. R=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/11275283 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mmassi@chromium.org authored
BUG= Review URL: https://chromiumcodereview.appspot.com/11365221 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Nov, 2012 2 commits
-
-
svenpanne@chromium.org authored
Review URL: https://codereview.chromium.org/11364177 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/11365175 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Nov, 2012 3 commits
-
-
svenpanne@chromium.org authored
Review URL: https://codereview.chromium.org/11362182 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Review URL: https://codereview.chromium.org/11369135 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
The name in question is not necessarily a symbol, so we have to use Equals instead of ==. BUG=http://www.playescapegoat.com/ Review URL: https://codereview.chromium.org/11368141 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Nov, 2012 7 commits
-
-
rossberg@chromium.org authored
Also handles notification of deleted properties when an array is truncated by setting length. Review URL: https://codereview.chromium.org/11338048 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
This CL has two parts: the first is the logic itself, whereby each observer callback is assigned a "priority" number the first time it's passed as an observer to Object.observe(), and that priority is used to determine the order of delivery. The second part invokes the above logic as part of the API, when the JS stack winds down to zero. Added several tests via the API, as the delivery logic isn't testable from a JS test (it runs after such a test would exit). Review URL: https://codereview.chromium.org/11266011 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/11358122 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Details: - Extend ElementAccessors with GetAttributes method. - Add HasLocalElement, Get[Local]ElementAttribute methods to JSReceiver/JSObject. - Otherwise, mirror implementation for named properties. Cannot correctly handle the cases yet where an accessor is redefined or deleted. Also fixed handling of object info table. (Based on CL https://codereview.chromium.org/11362115/) R=verwaest@chromium.org,mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/11365111 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
When code objects in the heap for FUNCTIONs and OPTIMIZED_FUNCTIONs are marked by the GC, their prologue is patched with a call to a stub that removes the patch. This allows the collector to quickly identify code objects that haven't been executed since the last full collection (they are the ones that sill contain the patch). The functionality is currently disabled, but can be activated by specifying the "--age-code". R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/10837037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
This is just a rename. After commit, I'll begin with the semantic changes. Until those are complete, kOneByteStringTag will have the same meaning as kAsciiStringTag. BUG= Review URL: https://chromiumcodereview.appspot.com/11293168 Patch from Dan Carney <dcarney@google.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
This fixes a corner case when the instance prototype of a function is changed while inobject slack tracking is still in progress. This caused the intial map to be unrelated for functions with the same shared info and hence the shared construct stub is no longer generic enough to work for all those functions. R=danno@chromium.org BUG=chromium:157019 TEST=mjsunit/regress/regress-crbug-157019 Review URL: https://codereview.chromium.org/11293059 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Nov, 2012 1 commit
-
-
rossberg@chromium.org authored
plus more accurate distinction of different change types. Required handlifying more code. Also fixed a handlification bug in JSProxy::GetElementAttributeWithHandler. R=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/11362115 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Nov, 2012 1 commit
-
-
rossberg@chromium.org authored
In more detail: - Set observation bit for observed objects (and make NormalizedMapCache respect it). - Mutation of observed objects is always delegated from ICs to runtime. - Introduce JS runtime function for notifying generated changes. - Invoke this function in the appropriate places (including some local refactoring). - Inclusion of oldValue field is not yet implemented, nor element properties. Also, shortened flag to --harmony-observation. R=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/11347037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Nov, 2012 2 commits
-
-
verwaest@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/11359055 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/11367093 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Oct, 2012 1 commit
-
-
mstarzinger@chromium.org authored
R=yangguo@chromium.org BUG=v8:1490 Review URL: https://codereview.chromium.org/11271020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Oct, 2012 2 commits
-
-
mstarzinger@chromium.org authored
R=yangguo@chromium.org BUG=chromium:157124 TEST=cctest/test-api/Regress157124 Review URL: https://codereview.chromium.org/11233033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
R=verwaest@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/11228004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Oct, 2012 2 commits
-
-
verwaest@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/11184006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/11188031 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Oct, 2012 2 commits
-
-
mstarzinger@chromium.org authored
The delete operator always return true in case of indexed property. It should return false if an indexed property can't be deleted (eg. DontDelete attribute is set or a string object is the holder). Contributed by Peter Varga <pvarga@inf.u-szeged.hu> BUG=none TEST=mjsunit/delete-non-configurable Review URL: https://codereview.chromium.org/11094021 Patch from Peter Varga <pvarga@inf.u-szeged.hu>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/11145017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Oct, 2012 2 commits
-
-
mvstanton@chromium.org authored
R=mstarzinger@chromium.org BUG=v8:2120 Review URL: https://codereview.chromium.org/11118018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/11048051 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Oct, 2012 2 commits
-
-
verwaest@chromium.org authored
Don't clear EnumLength but rather copy the enum cache. Added regression test for crashes from chromecrash. Review URL: https://chromiumcodereview.appspot.com/11103036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
Secondary changes: - don't transfer ownership back on CNLT - turned debugging checks back into ASSERT Review URL: https://chromiumcodereview.appspot.com/11099064 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Oct, 2012 1 commit
-
-
verwaest@chromium.org authored
BUG= Review URL: https://chromiumcodereview.appspot.com/11091044 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-