- 04 Feb, 2013 1 commit
-
-
adamk@chromium.org authored
Review URL: https://codereview.chromium.org/12041084 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jan, 2013 1 commit
-
-
adamk@chromium.org authored
When a data property has its attributes changed but its value remains the same, don't emit an oldValue. This makes the API more consistent by only emitting oldValue when the value of a property has actually changed (or been removed, in the case of a reconfiguration as an accessor property or a deletion). Review URL: https://codereview.chromium.org/11820004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Dec, 2012 2 commits
-
-
rossberg@chromium.org authored
R=svenpanne@chromium.org BUG=v8:2409 Review URL: https://codereview.chromium.org/11642042 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=danno@chromium.org BUG= Review URL: https://codereview.chromium.org/11646004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Dec, 2012 1 commit
-
-
rossberg@chromium.org authored
Added test for recursive change generation. R=yangguo@chromium.org BUG=v8:2409 Review URL: https://codereview.chromium.org/11593028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Dec, 2012 1 commit
-
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG=v8:2409 Review URL: https://codereview.chromium.org/11566027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Dec, 2012 1 commit
-
-
rossberg@chromium.org authored
Also, disable TestFastElementsLength test for now, since it flakes on buildbots for yet unknown reasons. R=mstarzinger@chromium.org BUG=v8:2409 Review URL: https://codereview.chromium.org/11554019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Dec, 2012 1 commit
-
-
rossberg@chromium.org authored
This is necessary because polymorphic stores generally do not perform a map check but only an instance type check, which misses out on changes in the observation status. Unfortunately, there currently is no efficient way in V8 to maintain that optimisation in the presence of Object.observe. R=mstarzinger@chromium.org BUG=v8:2409 Review URL: https://codereview.chromium.org/11477006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Dec, 2012 1 commit
-
-
rossberg@chromium.org authored
BUG=v8:2409 Review URL: https://codereview.chromium.org/11416353 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Dec, 2012 2 commits
-
-
rossberg@chromium.org authored
The approach in this change is to handle the unwrapping/wrapping of the global object transparently with respect to the JS implementation of Object.observe. An alternate approach would be to add a runtime method like %IsJSGlobalProxy and %UnwrapJSGlobalProxy, but it seems ugly to give JS (even implementation JS) access to the unwrapped global. BUG=v8:2409 Review URL: https://codereview.chromium.org/11414094 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
BUG=v8:2409 Review URL: https://codereview.chromium.org/11299260 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Dec, 2012 1 commit
-
-
rossberg@chromium.org authored
BUG=v8:2409 Review URL: https://codereview.chromium.org/11414177 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Nov, 2012 1 commit
-
-
rossberg@chromium.org authored
R=adamk@chromium.org,rafaelw@chromium.org BUG= Review URL: https://codereview.chromium.org/11348193 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Nov, 2012 2 commits
-
-
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
-
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
-
-
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
-
- 20 Nov, 2012 2 commits
-
-
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
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
-
- 16 Nov, 2012 1 commit
-
-
rossberg@chromium.org authored
Note: The test here requires https://codereview.chromium.org/11364237/ to land in order to pass because Object.freeze calls Object.getOwnPropertyNames(). BUG=v8:2411 Review URL: https://codereview.chromium.org/11377171 Patch from Rafael Weinstein <rafaelw@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Nov, 2012 1 commit
-
-
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 1 commit
-
-
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
-
- 13 Nov, 2012 1 commit
-
-
rossberg@chromium.org authored
Review URL: https://codereview.chromium.org/11293248 Patch from Rafael Weinstein <rafaelw@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Nov, 2012 6 commits
-
-
rossberg@chromium.org authored
Updated all tests to use getNotifier or actual object mutation instead of notify, and added tests for new behavior of getNotifier. Review URL: https://codereview.chromium.org/11369154 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Bail out of any special-casing in array methods. Further optimization is possible, but can be left for later. Review URL: https://codereview.chromium.org/11369151 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Covers truncation of holey arrays and defineProperty('length'). Review URL: https://codereview.chromium.org/11369150 Patch from Adam Klein <adamk@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12915 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
-
mstarzinger@chromium.org authored
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts, section 15.14.5.3 and 15.14.5.2 BUG=v8:2400 Review URL: https://codereview.chromium.org/11409002 Patch from Erik Arvidsson <arv@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/11368142 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Nov, 2012 3 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
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
-
- 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 2 commits
-
-
mstarzinger@chromium.org authored
Section 15.14.5.10 and 15.16.5.7 in the October 26, 2012 ES6 draft, http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts This adds a getter for "size" to Set.prototype and Map.prototype which reflects the number of elements in the Set and Map respectively. BUG=v8:2395 Review URL: https://codereview.chromium.org/11360089 Patch from Erik Arvidsson <arv@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
-
yangguo@chromium.org authored
R=verwaest@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/11363078 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
BUG= Review URL: https://chromiumcodereview.appspot.com/11312063 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Oct, 2012 1 commit
-
-
rossberg@chromium.org authored
Initial JS stub implementation of Object.observe. Adds support for .object/.unobserve/.notify/.deliverChangeRecords. No delivery mechanism is implemented for end-of-microtask. Review URL: https://codereview.chromium.org/11225058 Patch from Rafael Weinstein <rafaelw@google.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Oct, 2012 2 commits
-
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG=v8:2322 Review URL: https://codereview.chromium.org/11035054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG=150628 Review URL: https://codereview.chromium.org/11033025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Aug, 2012 1 commit
-
-
rossberg@chromium.org authored
- The global object has a reference to the current global scope chain. Running a script adds to the chain if it contains global lexical declarations. - Scripts are executed relative to a global, not a native context. - Harmony let and const bindings are allocated to the innermost global context; var and function still live on the global object. (Lexical bindings are not reflected on the global object at all, but that will probably change later using accessors, as for modules.) - Compilation of scripts now needs a (global) context (previously only eval did). - The global scope chain represents one logical scope, so collision tests take the chain into account. R=svenpanne@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/10872084 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-