- 22 Nov, 2012 8 commits
-
-
yangguo@chromium.org authored
BUG= Review URL: https://chromiumcodereview.appspot.com/11412125 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=adamk@chromium.org,rafaelw@chromium.org BUG= Review URL: https://codereview.chromium.org/11280118 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
This removed a lot of copy-n-paste code and is very handy for some upcoming changes (regarding predictable code size). Review URL: https://codereview.chromium.org/11416133 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13034 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
-
mvstanton@chromium.org authored
This is nice when looking at hydrogen graphs, to see the real key offset. R=mmassi@chromium.org BUG= Review URL: https://codereview.chromium.org/11348176 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/11416135 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
Thread the Isolate through FindCodeInCache, FindCodeInSpecialCache and SetProperty. Reduced the number of TLS accesses while running the Octane benchmark down to 19% compared to the beginning of the cleanups. Review URL: https://codereview.chromium.org/11411033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
hpayer@chromium.org authored
BUG= Review URL: https://codereview.chromium.org/11412096 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Nov, 2012 9 commits
-
-
mvstanton@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/11412129 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
These were erroneously disabled because they were expecting indexed properties to be of Number type when appearing as the "name" in change records. But the "name" property will always be a string. Fixed assertRecordsEqual() to enforce this in expectations. BUG=v8:2409 Review URL: https://codereview.chromium.org/11280105 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mmassi@chromium.org authored
BUG= Review URL: https://chromiumcodereview.appspot.com/11419115 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mmassi@chromium.org authored
BUG= Review URL: https://chromiumcodereview.appspot.com/11299004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
In addition, use a more common style in the preprocessor condition, making e.g. '-DV8_ENABLE_DEPRECATIONS=0' do the expected thing. Removed a useles Review URL: https://codereview.chromium.org/11413113 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
verwaest@chromium.org authored
MIPS: Support all fast elements kinds in the major array operations. Currently missing support for unshift. Port r12969 (b10320d7) BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/11412120 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Port r12966 (ec963fe0) BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/11316091 Patch from Akos Palfi <palfia@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
This corrects r13011. R=mstarzinger@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/11415093 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Nov, 2012 11 commits
-
-
jkummerow@chromium.org authored
BUG=v8:2416 Review URL: https://codereview.chromium.org/11413087 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
This also reduces the number of TLS accesses, so it is a double-win. We have 230k less TLS accesses while running Octane now, so we are down to 23% now compared to the start of these TLS-related CLs. To get things right in the presence of multiple Isolates, we have to thread the correct Isolate through several layers. This threading wasn't that bad after all, it keeps one honest about the real depdencies. The only ugly thing is that in ExternalArrayWeakCallback we have to conjure up the current Isolate from the TLS, but this is a know API deficiency. Introduced a tiny helper function for throwing on the way. Review URL: https://codereview.chromium.org/11418088 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ulan@chromium.org authored
Instead of generating the following for "100 - x": mov r1, #100 subs r0, r1, r0 this patch makes Crankshaft generate this: rsbs r0, r0, #100 thus saving a register and a mov. BUG= Review URL: https://chromiumcodereview.appspot.com/11308040 Patch from Hans Wennborg <hans@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Things not working yet are currently blacklisted in the test (see TODOs). R=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/11377157 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/11316104 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
MIPS: Lattice-based representation inference, powered by left/right specific type feedback for BinaryOps and comparisons Port r12961 (96c0e493) BUG= TEST= Review URL: https://codereview.chromium.org/11280080 Patch from Akos Palfi <palfia@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
Review URL: https://codereview.chromium.org/11416068 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
yangguo@chromium.org authored
BUG= Review URL: https://chromiumcodereview.appspot.com/11299100 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=yangguo@chromium.org TEST=cctest/test-dictionary Review URL: https://codereview.chromium.org/11299098 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
BUG=v8:2418 Review URL: https://codereview.chromium.org/11419078 Patch from Rafael Weinstein <rafaelw@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Nov, 2012 9 commits
-
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/11418062 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=hpayer@chromium.org Review URL: https://codereview.chromium.org/11416072 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
hpayer@chromium.org authored
BUG= Review URL: https://codereview.chromium.org/11418032 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/11348071 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
verwaest@chromium.org authored
Ensure CopyElementsImpl is always executed so it fills in holes even if from_size is 0. Allow FixedDoubleArray::cast to also support FixedArray with size 0. Review URL: https://chromiumcodereview.appspot.com/11280054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
This reverts commit 2fc4424b00296cc06d6f7eb4bf31ec9c3d6be68a. Even symbols shouldn't be shared across Isolates. The CL has to be reworked to use a (Isolate,C-string)->v8-symbol mapping. Slowly approaching Chrome... :-/ Review URL: https://codereview.chromium.org/11419067 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Timing happens in a scope. Since crankshaft has been chopped up into three methods, this approach is wrong. BUG= Review URL: https://chromiumcodereview.appspot.com/11411065 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
The last call to GetOwnPropertyImplementation() was removed in r12990. Review URL: https://codereview.chromium.org/11411038 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/11308090 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Nov, 2012 3 commits
-
-
yangguo@chromium.org authored
R=jkummerow@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/11316047 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
R=jkummerow@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/11414030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
This also reduces the number of TLS accesses, so it is a double-win. We have 230k less TLS accesses while running Octane now, so we are down to 23% now compared to the start of these TLS-related CLs. Introduced a tiny helper function for throwing on the way. Review URL: https://codereview.chromium.org/11417029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-