- 23 Jan, 2013 1 commit
-
-
yangguo@chromium.org authored
With parallel recompilation enabled, objects made accessible by handles may have changed between graph construction and graph optimization. Therefore we must not assume that information on those objects remain the same between those two phases. To police this, we forbid handle dereferencing during graph optimization. Exceptions to this rule are: - Dereferencing the handle to obtain the raw location of the object. This is safe since parallel recompilation acquires RelocationLock - Some places that dereference the handle for a type check. These are checked to be safe on a case-by-case basis. R=jkummerow@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/12049012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jan, 2013 1 commit
-
-
yangguo@chromium.org authored
R=yangguo@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/11725006 Patch from Dan Carney <dcarney@google.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Nov, 2012 1 commit
-
-
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
-
- 16 Nov, 2012 1 commit
-
-
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
-
- 12 Nov, 2012 1 commit
-
-
jkummerow@chromium.org authored
GetScriptOrigin is used for DevTools instrumentation. If inspected call-site is inside "eval" then returned script name is "undefined". To fix this problem we can use the "nameOrSourceURL" method of script-wrapper. This is a re-upload of https://codereview.appspot.com/6811090/ for the purpose of landing. BUG=159413 Review URL: https://codereview.chromium.org/11312185 Patch from Eugene Klyuchnikov <eustas@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12929 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
-
- 12 Sep, 2012 1 commit
-
-
verwaest@chromium.org authored
This CL adds multiple things: Transition arrays do not directly point at their descriptor array anymore, but rather do so via an indirect pointer (a JSGlobalPropertyCell). An ownership bit is added to maps indicating whether it owns its own descriptor array or not. Maps owning a descriptor array can pass on ownership if a transition from that map is generated; but only if the descriptor array stays exactly the same; or if a descriptor is added. Maps that don't have ownership get ownership back if their direct child to which ownership was passed is cleared in ClearNonLiveTransitions. To detect which descriptors in an array are valid, each map knows its own NumberOfOwnDescriptors. Since the descriptors are sorted in order of addition, if we search and find a descriptor with index bigger than this number, it is not valid for the given map. We currently still build up an enumeration cache (although this may disappear). The enumeration cache is always built for the entire descriptor array, even if not all descriptors are owned by the map. Once a descriptor array has an enumeration cache for a given map; this invariant will always be true, even if the descriptor array was extended. The extended array will inherit the enumeration cache from the smaller descriptor array. If a map with more descriptors needs an enumeration cache, it's EnumLength will still be set to invalid, so it will have to recompute the enumeration cache. This new cache will also be valid for smaller maps since they have their own enumlength; and use this to loop over the cache. If the EnumLength is still invalid, but there is already a cache present that is big enough; we just initialize the EnumLength field for the map. When we apply ClearNonLiveTransitions and descriptor ownership is passed back to a parent map, the descriptor array is trimmed in-place and resorted. At the same time, the enumeration cache is trimmed in-place. Only transition arrays contain descriptor arrays. If we transition to a map and pass ownership of the descriptor array along, the child map will not store the descriptor array it owns. Rather its parent will keep the pointer. So for every leaf-map, we find the descriptor array by following the back pointer, reading out the transition array, and fetching the descriptor array from the JSGlobalPropertyCell. If a map has a transition array, we fetch it from there. If a map has undefined as its back-pointer and has no transition array; it is considered to have an empty descriptor array. When we modify properties, we cannot share the descriptor array. To accommodate this, the child map will get its own transition array; even if there are not necessarily any transitions leaving from the child map. This is necessary since it's the only way to store its own descriptor array. Review URL: https://chromiumcodereview.appspot.com/10909007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jul, 2012 1 commit
-
-
sanjoy@chromium.org authored
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10807024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Jul, 2012 1 commit
-
-
sanjoy@chromium.org authored
HandleScopeImplementer (since it isn't something specific to a particular thread executing on an Isolate). This patch ensures correct traversal of the handles when when multiple compilations are queued up. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10778036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Jul, 2012 1 commit
-
-
mstarzinger@chromium.org authored
BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10735024 Patch from Jochen Eisinger <jochen@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Jul, 2012 1 commit
-
-
sanjoy@chromium.org authored
Add a second kind of HandleScope that ties the lifetime of Handles created in its scope to the lifetime of a given CompilationInfo. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10697094 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Jun, 2012 1 commit
-
-
sanjoy@chromium.org authored
BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10698031 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jun, 2012 1 commit
-
-
sanjoy@chromium.org authored
Add a second kind of HandleScope that ties the lifetime of Handles created in its scope to the lifetime of a given CompilationInfo. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10640012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Mar, 2012 1 commit
-
-
erik.corry@gmail.com authored
Review URL: https://chromiumcodereview.appspot.com/9600009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Jan, 2012 1 commit
-
-
ulan@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/9008012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Nov, 2011 1 commit
-
-
keuchel@chromium.org authored
This CL introduces a third mode next to the non-strict (henceforth called 'classic mode') and 'strict mode' which is called 'extended mode' as in the current ES.next specification drafts. The extended mode is based on the 'strict mode' and adds new functionality to it. This means that most of the semantics of these two modes coincide. The 'extended mode' is entered instead of the 'strict mode' during parsing when using the 'strict mode' directive "use strict" and when the the harmony-scoping flag is active. This should be changed once it is fully specified how the 'extended mode' is entered. This change introduces a new 3 valued enum LanguageMode (see globals.h) corresponding to the modes which is mostly used by the frontend code. This includes the following components: * (Pre)Parser * Compiler * SharedFunctionInfo, Scope and ScopeInfo * runtime functions: StoreContextSlot, ResolvePossiblyDirectEval, InitializeVarGlobal, DeclareGlobals The old enum StrictModeFlag is still used in the backend when the distinction between the 'strict mode' and the 'extended mode' does not matter. This includes: * SetProperty runtime function, Delete builtin * StoreIC and KeyedStoreIC * StubCache Review URL: http://codereview.chromium.org/8417035 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Nov, 2011 1 commit
-
-
yurys@chromium.org authored
Review URL: http://codereview.chromium.org/8508008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Oct, 2011 1 commit
-
-
mstarzinger@chromium.org authored
This implementation extends the internal ObjectHashTable to be able to hold arbitrary objects (e.g. Smis, Strings, ...) as keys by applying specialized hashing functions to primitive types. Equality of keys is defined using the internal SameValue function. R=rossberg@chromium.org BUG=v8:1622 TEST=mjsunit/harmony/collections Review URL: http://codereview.chromium.org/8372027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Oct, 2011 1 commit
-
-
rossberg@chromium.org authored
Fix related corner case for Object.keys. Remove obsolete GET_KEYS builtin. R=ricow@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/8256015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Oct, 2011 2 commits
-
-
jkummerow@chromium.org authored
TEST=mjsunit/elements-kind Review URL: http://codereview.chromium.org/8305001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
R=ulan@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/8345038 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Oct, 2011 1 commit
-
-
ulan@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/8337008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Oct, 2011 1 commit
-
-
lrn@chromium.org authored
This reverts r9424. Review URL: http://codereview.chromium.org/8143018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Oct, 2011 1 commit
-
-
lrn@chromium.org authored
Previously, the logic using the hidden properties backing object was spread accross use sites. Now it's all contained in JSObject, with only simple accessors available. Also change the backing object to be a StringDictionary rather than a JSObject. There's still room for improvement by making a hash-table that don't store property details as well. Review URL: http://codereview.chromium.org/8050013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Sep, 2011 1 commit
-
-
lrn@chromium.org authored
Use string locking to ensure consistent representation of source string during JSON parsing. Review URL: http://codereview.chromium.org/7977001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Sep, 2011 1 commit
-
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG=v8:1543,v8:1565 TEST= Review URL: http://codereview.chromium.org/7754015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Sep, 2011 1 commit
-
-
kmillikin@chromium.org authored
We passed this flag around in a lot of places and had differenc call ICs based on it, but never did any real specialization based on its value. R=fschneider@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7869009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Jul, 2011 1 commit
-
-
mstarzinger@chromium.org authored
R=vitalyr@chromium.org TEST=cctest/test-dictionary Review URL: http://codereview.chromium.org/7385006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jul, 2011 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/7351014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jul, 2011 1 commit
-
-
yangguo@chromium.org authored
R=vegorov@chromium.org TEST=cctest/test-dictionary Review URL: http://codereview.chromium.org/7349005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jun, 2011 1 commit
-
-
kmillikin@chromium.org authored
There was a bug in Object.defineProperty when used to add an indexed property to an arguments object. When converting the elements backing store to dictionary mode, the parameter map in front of the backing store does not change. R=ager@chromium.org,karlklose@chromium.org Review URL: http://codereview.chromium.org/7289011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Jun, 2011 1 commit
-
-
lrn@chromium.org authored
TEST=mjsunit/object-define-property Review URL: http://codereview.chromium.org/7129017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 May, 2011 1 commit
-
-
rossberg@chromium.org authored
- Introduce a class JSReceiver, that is a common superclass of JSObject and JSProxy. Use JSReceiver where appropriate (probably lots of places that we still have to migrate, but we will find those later with proxy test suite). - Move appropriate methods to JSReceiver class (SetProperty, GetPropertyAttribute, Get/SetPrototype, Lookup, and so on). - Introduce new JSFunctionProxy subclass of JSProxy. Currently only a stub. - Overhaul enum InstanceType: * Introduce FIRST/LAST_SPEC_OBJECT_TYPE that ranges over all types that represent JS objects, and use that consistently to check language types. * Rename FIRST/LAST_JS_OBJECT_TYPE and FIRST/LAST_FUNCTION_CLASS_TYPE to FIRST/LAST_[NON]CALLABLE_SPEC_OBJECT_TYPE for clarity. * Eliminate the overlap over JS_REGEXP_TYPE. * Also replace FIRST_JS_OBJECT with FIRST_JS_RECEIVER, but only use it where we exclusively talk about the internal representation type. * Insert JS_PROXY and JS_FUNCTION_PROXY in the appropriate places. - Fix all checks concerning classification, especially for functions, to use the CALLABLE_SPEC_OBJECT range (that includes funciton proxies). - Handle proxies in SetProperty (that was the easiest part :) ). - A few simple test cases. R=kmillikin@chromium.org Review URL: http://codereview.chromium.org/6992072 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 May, 2011 1 commit
-
-
rossberg@chromium.org authored
TODO: reflective Object methods not handled yet. BUG= TEST= Review URL: http://codereview.chromium.org/7035007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 May, 2011 1 commit
-
-
svenpanne@chromium.org authored
header which uses BASE_EMBEDDED and/or AllStatic. Note that still only 45 out of 135 headers in src/ can be used stand-alone, but at least this is a little bit more than before... Review URL: http://codereview.chromium.org/6931031 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Apr, 2011 1 commit
-
-
antonm@chromium.org authored
Correctly process failures which can be returned by Object::GetProperty when performing GetRealNamedProperty* queries. Callback properties can produce exceptions so we need to wrap access to them into exception checks. However, despite of many other methods with exception checks, property access doesn't mandatroy go via JavaScript and hence we need to inject code to propagate exception to public API TryCatch handlers. Review URL: http://codereview.chromium.org/6685087 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Mar, 2011 1 commit
-
-
fschneider@chromium.org authored
This allows fast calls and inlining of functions like: var o = {f: function() { return "foo"; }} o.f(); Object literals that contain function literals are initially created a dictionary mode object and only transformed to fast properties once all properties are computed and added. This allows us to create constant function properties for functions declared inside the object literal. Function literals inside object literals are marked for pretenuring so that they work as contant function properties. Object literals without functions should just function as before. Review URL: http://codereview.chromium.org/6240012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Mar, 2011 3 commits
-
-
vitalyr@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/6685088 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-