- 08 Mar, 2016 2 commits
-
-
mstarzinger authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1773593002 Cr-Commit-Position: refs/heads/master@{#34572}
-
danno authored
Before this CL, various code stubs used different techniques for marking their frames to enable stack-crawling and other access to data in the frame. All of them were based on a abuse of the "standard" frame representation, e.g. storing the a context pointer immediately below the frame's fp, and a function pointer after that. Although functional, this approach tends to make stubs and builtins do an awkward, unnecessary dance to appear like standard frames, even if they have nothing to do with JavaScript execution. This CL attempts to improve this by: * Ensuring that there are only two fundamentally different types of frames, a "standard" frame and a "typed" frame. Standard frames, as before, contain both a context and function pointer. Typed frames contain only a minimum of a smi marker in the position immediately below the fp where the context is in standard frames. * Only interpreted, full codegen, and optimized Crankshaft and TurboFan JavaScript frames use the "standard" format. All other frames use the type frame format with an explicit marker. * Typed frames can contain one or more values below the type marker. There is new magic macro machinery in frames.h that simplifies defining the offsets of these fields in typed frames. * A new flag in the CallDescriptor enables specifying whether a frame is a standard frame or a typed frame. Secondary register location spilling is now only enabled for standard frames. * A zillion places in the code have been updated to deal with the fact that most code stubs and internal frames use the typed frame format. This includes changes in the deoptimizer, debugger, and liveedit. * StandardFrameConstants::kMarkerOffset is deprecated, (CommonFrameConstants::kContextOrFrameTypeOffset and StandardFrameConstants::kFrameOffset are now used in its stead). LOG=N Review URL: https://codereview.chromium.org/1696043002 Cr-Commit-Position: refs/heads/master@{#34571}
-
- 07 Mar, 2016 1 commit
-
-
ishell authored
HInvokeFunction and HApplyArguments instructions now support tail calling. Inlining of calls at tail position is not supported yet and therefore still disabled. The tail-call-megatest was modified so that the usages of "arguments" object do not disable Crankshaft. TBR=bmeurer@chromium.org BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1760253003 Cr-Commit-Position: refs/heads/master@{#34542}
-
- 03 Mar, 2016 1 commit
-
-
caitpotter88 authored
Per ProxyCreate() (https://tc39.github.io/ecma262/#sec-proxycreate), a Proxy is only given a [[Call]] slot if the target has a [[Call]] slot as well. This was previously implemented correctly for [[Construct]], but not for [[Call]]. BUG=v8:4797, v8:4796, v8:1543 LOG=N R=cbruni@chromium.org, neis@chromium.org, adamk@chromium.org, littledan@chromium.org Review URL: https://codereview.chromium.org/1752133004 Cr-Commit-Position: refs/heads/master@{#34461}
-
- 24 Feb, 2016 2 commits
-
-
mythria authored
Revert of [Interpreter] Implements calls through CallICStub in the interpreter. (patchset #15 id:270001 of https://codereview.chromium.org/1688283003/ ) Reason for revert: It is not a good idea to call CallICStub from the builtin. It might be sensitive to the frame structure. Constructing a internal frame might cause problems. It is much better to inline the code related to the type feedback vector into the builtin. Original issue's description: > [Interpreter] Implements calls through CallICStub in the interpreter. > > Calls are implemented through CallICStub to collect type feedback. Adds > a new builtin called InterpreterPushArgsAndCallIC that pushes the > arguments onto stack and calls CallICStub. > > Also adds two new bytecodes CallIC and CallICWide to indicate calls have to > go through CallICStub. > > MIPS port contributed by balazs.kilvady. > > BUG=v8:4280, v8:4680 > LOG=N > > Committed: https://crrev.com/20362a2214c11a0f2ea5141b6a79e09458939cec > Cr-Commit-Position: refs/heads/master@{#34244} TBR=rmcilroy@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280, v8:4680 Review URL: https://codereview.chromium.org/1731253003 Cr-Commit-Position: refs/heads/master@{#34252}
-
mythria authored
Calls are implemented through CallICStub to collect type feedback. Adds a new builtin called InterpreterPushArgsAndCallIC that pushes the arguments onto stack and calls CallICStub. Also adds two new bytecodes CallIC and CallICWide to indicate calls have to go through CallICStub. MIPS port contributed by balazs.kilvady. BUG=v8:4280, v8:4680 LOG=N Review URL: https://codereview.chromium.org/1688283003 Cr-Commit-Position: refs/heads/master@{#34244}
-
- 22 Feb, 2016 1 commit
-
-
yangguo authored
R=mstarzinger@chromium.org, rmcilroy@chromium.org BUG=v8:4690 LOG=N Review URL: https://codereview.chromium.org/1703453002 Cr-Commit-Position: refs/heads/master@{#34190}
-
- 19 Feb, 2016 2 commits
-
-
rmcilroy authored
Adds a profiling counter to each BytecodeArray object, and adds code to Jump and Return bytecode handlers to update this counter by the size of the jump or the distance from the return to the start of the function. This is more accurate than fullcodegen's approach since it takes forward jumps into account as well as back-edges. Modifies RuntimeProfiler to track ticks for interpreted frames. Currently we use the SharedFunctionInfo::profiler_ticks() instead of adding another to tick field to avoid adding another field to BytecodeArray since SharedFunctionInfo::profiler_ticks() is only used by Crankshaft otherwise so we shouldn't need both for BUG=v8:4689 LOG=N Review URL: https://codereview.chromium.org/1707693003 Cr-Commit-Position: refs/heads/master@{#34166}
-
bmeurer authored
Move the already existing fast case for %NewObject into a dedicated FastNewObjectStub that we can utilize in places where we would otherwise fallback to %NewObject immediately, which is rather expensive. Also use FastNewObjectStub as the generic implementation of JSCreate, which should make constructor inlining based on SharedFunctionInfo (w/o specializing to a concrete closure) viable soon. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1708313002 Cr-Commit-Position: refs/heads/master@{#34136}
-
- 18 Feb, 2016 1 commit
-
-
rmcilroy authored
Moves the accumulator value on-heap to be restored in the InterpreterNotifyDeopt handler rather than explicitly setting the accumulator register. This allows it to be materialized correctly if required. BUG=v8:4678 LOG=N Review URL: https://codereview.chromium.org/1707133003 Cr-Commit-Position: refs/heads/master@{#34113}
-
- 17 Feb, 2016 1 commit
-
-
ishell authored
This CL introduces two new bytecodes TailCall and TailCallWide. BUG=v8:4698,v8:4687 LOG=N Review URL: https://codereview.chromium.org/1698273003 Cr-Commit-Position: refs/heads/master@{#34083}
-
- 16 Feb, 2016 1 commit
-
-
rmcilroy authored
Replaces the push of the dispatch table on the interpreted stack frame with a push of the bytecode array. This enables the debugger to replace the bytecode array with a patched version containing breakpoints. BUG=v8:4690 LOG=N Review URL: https://codereview.chromium.org/1699013002 Cr-Commit-Position: refs/heads/master@{#34032}
-
- 12 Feb, 2016 1 commit
-
-
bmeurer authored
The FastNewStrictArgumentsStub is very similar to the recently added FastNewRestParameterStub, it's actually almost a copy of it, except that it doesn't have the fast case we have for the empty rest parameter. This patch improves strict arguments in TurboFan and fullcodegen by up to 10x compared to the previous version. Also introduce proper JSSloppyArgumentsObject and JSStrictArgumentsObject for the in-object properties instead of having them as constants in the Heap class. Drive-by-fix: Use this stub and the FastNewRestParameterStub in the interpreter to avoid the runtime call overhead for strict arguments and rest parameter creation. R=jarin@chromium.org TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1693513002 Cr-Commit-Position: refs/heads/master@{#33925}
-
- 11 Feb, 2016 1 commit
-
-
rmcilroy authored
Saves and restores the dispatch pointer during calls to enable the debugger to switch the dispatch table used by a function during it's execution. Also moves the accumulator and context nodes to be Variables so that they will be properly merged across branches. BUG=v8:4280,v8:4690 LOG=N Review URL: https://codereview.chromium.org/1684073002 Cr-Commit-Position: refs/heads/master@{#33894}
-
- 10 Feb, 2016 1 commit
-
-
mvstanton authored
Calls use registers for target, new_target and argument count. We don't always respect argument count. It didn't bite us in the past because the code paths where we clobbered it never used it, though in future it could be an issue. BUG= R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1683593003 Cr-Commit-Position: refs/heads/master@{#33865}
-
- 08 Feb, 2016 2 commits
-
-
mstarzinger authored
The flag in question is a debug-only flag supported by full-codegen and Crankshaft only. In it's current form there are some unresolved issues: - The flag is defeated by inlining in Crankshaft. - The flag is not supported by TurboFan. - The flag is not supported by Ignition. Instead of addressing the above issues and increasing maintenance cost for all backends and also given the "slim" test coverage, this CL fully removes the support from all backends. R=bmeurer@chromium.org,jkummerow@chromium.org Review URL: https://codereview.chromium.org/1676263002 Cr-Commit-Position: refs/heads/master@{#33817}
-
verwaest authored
Generally we only care whether the next object is a hidden prototype. It's simpler to check whether the current object has a hidden prototype instead of walking to the next prototype and checking its map. BUG= Review URL: https://codereview.chromium.org/1675223002 Cr-Commit-Position: refs/heads/master@{#33816}
-
- 06 Feb, 2016 1 commit
-
-
ishell authored
[api] Make ObjectTemplate::SetNativeDataProperty() work even if the ObjectTemplate does not have a constructor. Previously ObjectTemplate::New() logic relied on the fact that all the accessor properties are already installed in the initial map of the function object of the constructor FunctionTemplate. When the FunctionTemplate were instantiated the accessors of the instance templates from the whole inheritance chain were accumulated and added to the initial map. ObjectTemplate::SetSetAccessor() used to explicitly ensure that the ObjectTemplate has a constructor and therefore an initial map to add all accessors to. The new approach is to add all the accessors and data properties to the object exactly when the ObjectTemplate is instantiated. In order to keep it fast we now cache the object boilerplates in the Isolate::template_instantiations_cache (the former function_cache), so the object creation turns to be a deep copying of the boilerplate object. BUG=chromium:579009 LOG=Y Committed: https://crrev.com/6a118774244d087b5979e9291d628a994f21d59d Cr-Commit-Position: refs/heads/master@{#33674} Review URL: https://codereview.chromium.org/1642223003 Cr-Commit-Position: refs/heads/master@{#33798}
-
- 05 Feb, 2016 2 commits
-
-
yangguo authored
This makes the dispatch table similar to the builtins code list and makes sure that the dispatch table does not move. R=mstarzinger@chromium.org, rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1671813003 Cr-Commit-Position: refs/heads/master@{#33781}
-
mvstanton authored
Revert of Type Feedback Vector lives in the closure (patchset #2 id:40001 of https://codereview.chromium.org/1668103002/ ) Reason for revert: Must revert for now due to chromium api natives issues. Original issue's description: > Type Feedback Vector lives in the closure > > (RELAND: the problem before was a missing write barrier for adding the code > entry to the new closure. It's been addressed with a new macro instruction > and test. The only change to this CL is the addition of two calls to > __ RecordWriteCodeEntryField() in the platform CompileLazy builtin.) > > We get less "pollution" of type feedback if we have one vector per native > context, rather than one for the whole system. This CL moves the vector > appropriately. > > We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The > vector actually lives in the first slot of the literals array (indeed there is > great commonality between those arrays, they can be thought of as the same > thing). So we make greater effort to ensure there is a valid literals array > after compilation. > > This meant, for performance reasons, that we needed to extend > FastNewClosureStub to support creating closures with literals. And ultimately, > it drove us to move the optimized code map lookup out of FastNewClosureStub > and into the compile lazy builtin. > > The heap change is trivial so I TBR Hannes for it... > Also, Yang has had a look at the debugger changes already and approved 'em. So he is TBR style too. > And Benedikt reviewed it as well. > > TBR=hpayer@chromium.org, yangguo@chromium.org, bmeurer@chromium.org > > BUG= > > Committed: https://crrev.com/bb31db3ad6de16f86a61f6c7bbfd3274e3d957b5 > Cr-Commit-Position: refs/heads/master@{#33741} TBR=bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1670813005 Cr-Commit-Position: refs/heads/master@{#33766}
-
- 04 Feb, 2016 2 commits
-
-
mvstanton authored
(RELAND: the problem before was a missing write barrier for adding the code entry to the new closure. It's been addressed with a new macro instruction and test. The only change to this CL is the addition of two calls to __ RecordWriteCodeEntryField() in the platform CompileLazy builtin.) We get less "pollution" of type feedback if we have one vector per native context, rather than one for the whole system. This CL moves the vector appropriately. We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The vector actually lives in the first slot of the literals array (indeed there is great commonality between those arrays, they can be thought of as the same thing). So we make greater effort to ensure there is a valid literals array after compilation. This meant, for performance reasons, that we needed to extend FastNewClosureStub to support creating closures with literals. And ultimately, it drove us to move the optimized code map lookup out of FastNewClosureStub and into the compile lazy builtin. The heap change is trivial so I TBR Hannes for it... Also, Yang has had a look at the debugger changes already and approved 'em. So he is TBR style too. And Benedikt reviewed it as well. TBR=hpayer@chromium.org, yangguo@chromium.org, bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1668103002 Cr-Commit-Position: refs/heads/master@{#33741}
-
rmcilroy authored
Moves the stack check from the function entry trampoline to instead be after function activation using an explicit StackCheck bytecode. Also add stack checks on back edges of loops. BUG=v8:4280,v8:4678 LOG=N Review URL: https://codereview.chromium.org/1665853002 Cr-Commit-Position: refs/heads/master@{#33730}
-
- 03 Feb, 2016 1 commit
-
-
hablich authored
Revert of [api] Make ObjectTemplate::SetNativeDataProperty() work even if the ObjectTemplate does not have a … (patchset #3 id:80001 of https://codereview.chromium.org/1642223003/ ) Reason for revert: Fails a lot of layout tests and blocks the roll. Can be easily reproduced with a local Chromium checkout. Reference: https://codereview.chromium.org/1652413003/ Original issue's description: > [api] Make ObjectTemplate::SetNativeDataProperty() work even if the ObjectTemplate does not have a constructor. > > Previously ObjectTemplate::New() logic relied on the fact that all the accessor properties are already installed in the initial map of the function object of the constructor FunctionTemplate. > When the FunctionTemplate were instantiated the accessors of the instance templates from the whole inheritance chain were accumulated and added to the initial map. > ObjectTemplate::SetSetAccessor() used to explicitly ensure that the ObjectTemplate has a constructor and therefore an initial map to add all accessors to. > > The new approach is to add all the accessors and data properties to the object exactly when the ObjectTemplate is instantiated. In order to keep it fast we now cache the object boilerplates in the Isolate::template_instantiations_cache (the former function_cache), so the object creation turns to be a deep copying of the boilerplate object. > > This CL also prohibits non-primitive properties in ObjectTemplate to avoid potential cross-context leaks. > > BUG=chromium:579009 > LOG=Y > > Committed: https://crrev.com/6a118774244d087b5979e9291d628a994f21d59d > Cr-Commit-Position: refs/heads/master@{#33674} TBR=verwaest@chromium.org,ishell@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:579009 Review URL: https://codereview.chromium.org/1660263003 Cr-Commit-Position: refs/heads/master@{#33698}
-
- 02 Feb, 2016 1 commit
-
-
ishell authored
[api] Make ObjectTemplate::SetNativeDataProperty() work even if the ObjectTemplate does not have a constructor. Previously ObjectTemplate::New() logic relied on the fact that all the accessor properties are already installed in the initial map of the function object of the constructor FunctionTemplate. When the FunctionTemplate were instantiated the accessors of the instance templates from the whole inheritance chain were accumulated and added to the initial map. ObjectTemplate::SetSetAccessor() used to explicitly ensure that the ObjectTemplate has a constructor and therefore an initial map to add all accessors to. The new approach is to add all the accessors and data properties to the object exactly when the ObjectTemplate is instantiated. In order to keep it fast we now cache the object boilerplates in the Isolate::template_instantiations_cache (the former function_cache), so the object creation turns to be a deep copying of the boilerplate object. This CL also prohibits non-primitive properties in ObjectTemplate to avoid potential cross-context leaks. BUG=chromium:579009 LOG=Y Review URL: https://codereview.chromium.org/1642223003 Cr-Commit-Position: refs/heads/master@{#33674}
-
- 28 Jan, 2016 2 commits
-
-
mstarzinger authored
This adds debug code to the interpreter entry trampoline to ensure that the called bytecode handler will never return, but instead tear down the frame with a proper exit trampoline eventually. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1642063002 Cr-Commit-Position: refs/heads/master@{#33585}
-
bmeurer authored
The previous versions of Math.max and Math.min made it difficult to optimize those (that's why we already have custom code in Crankshaft), and due to lack of ideas what to do about the variable number of arguments, we will probably need to stick in special code in TurboFan as well; so inlining those builtins is off the table, hence there's no real advantage in having them around as "not quite JS" with extra work necessary in the optimizing compilers to still make those builtins somewhat fast in cases where we cannot inline them (also there's a tricky deopt loop in Crankshaft related to Math.min and Math.max, but that will be dealt with later). So to sum up: Instead of trying to make Math.max and Math.min semi-fast in the optimizing compilers with weird work-arounds support %_Arguments %_ArgumentsLength, we do provide the optimal code as native builtins instead and call it a day (which gives a nice performance boost on some benchmarks). R=jarin@chromium.org Review URL: https://codereview.chromium.org/1641083003 Cr-Commit-Position: refs/heads/master@{#33582}
-
- 27 Jan, 2016 2 commits
-
-
mvstanton authored
Revert of Type Feedback Vector lives in the closure (patchset #2 id:20001 of https://codereview.chromium.org/1642613002/ ) Reason for revert: Bug: failing to use write barrier when writing code entry into closure. Original issue's description: > Reland of Type Feedback Vector lives in the closure > > (Fixed a bug found by nosnap builds.) > > We get less "pollution" of type feedback if we have one vector per native > context, rather than one for the whole system. This CL moves the vector > appropriately. > > We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The > vector actually lives in the first slot of the literals array (indeed there is > great commonality between those arrays, they can be thought of as the same > thing). So we make greater effort to ensure there is a valid literals array > after compilation. > > This meant, for performance reasons, that we needed to extend > FastNewClosureStub to support creating closures with literals. And ultimately, > it drove us to move the optimized code map lookup out of FastNewClosureStub > and into the compile lazy builtin. > > The heap change is trivial so I TBR Hannes for it... > > TBR=hpayer@chromium.org > BUG= > > Committed: https://crrev.com/d984b3b0ce91e55800f5323b4bb32a06f8a5aab1 > Cr-Commit-Position: refs/heads/master@{#33548} TBR=bmeurer@chromium.org,yangguo@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1643533003 Cr-Commit-Position: refs/heads/master@{#33556}
-
mvstanton authored
(Fixed a bug found by nosnap builds.) We get less "pollution" of type feedback if we have one vector per native context, rather than one for the whole system. This CL moves the vector appropriately. We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The vector actually lives in the first slot of the literals array (indeed there is great commonality between those arrays, they can be thought of as the same thing). So we make greater effort to ensure there is a valid literals array after compilation. This meant, for performance reasons, that we needed to extend FastNewClosureStub to support creating closures with literals. And ultimately, it drove us to move the optimized code map lookup out of FastNewClosureStub and into the compile lazy builtin. The heap change is trivial so I TBR Hannes for it... TBR=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/1642613002 Cr-Commit-Position: refs/heads/master@{#33548}
-
- 26 Jan, 2016 4 commits
-
-
mvstanton authored
Revert of Type Feedback Vector lives in the closure (patchset #12 id:260001 of https://codereview.chromium.org/1563213002/ ) Reason for revert: FAilure on win32 bot, need to investigate webkit failures. Original issue's description: > Type Feedback Vector lives in the closure > > We get less "pollution" of type feedback if we have one vector per native > context, rather than one for the whole system. This CL moves the vector > appropriately. > > We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The > vector actually lives in the first slot of the literals array (indeed there is > great commonality between those arrays, they can be thought of as the same > thing). So we make greater effort to ensure there is a valid literals array > after compilation. > > This meant, for performance reasons, that we needed to extend > FastNewClosureStub to support creating closures with literals. And ultimately, > it drove us to move the optimized code map lookup out of FastNewClosureStub > and into the compile lazy builtin. > > The heap change is trivial so I TBR Hannes for it... > > TBR=hpayer@chromium.org > > BUG= > > Committed: https://crrev.com/a5200f7ed4d11c6b882fa667da7a1864226544b4 > Cr-Commit-Position: refs/heads/master@{#33518} TBR=bmeurer@chromium.org,akos.palfi@imgtec.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1632993003 Cr-Commit-Position: refs/heads/master@{#33520}
-
mvstanton authored
We get less "pollution" of type feedback if we have one vector per native context, rather than one for the whole system. This CL moves the vector appropriately. We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The vector actually lives in the first slot of the literals array (indeed there is great commonality between those arrays, they can be thought of as the same thing). So we make greater effort to ensure there is a valid literals array after compilation. This meant, for performance reasons, that we needed to extend FastNewClosureStub to support creating closures with literals. And ultimately, it drove us to move the optimized code map lookup out of FastNewClosureStub and into the compile lazy builtin. The heap change is trivial so I TBR Hannes for it... TBR=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/1563213002 Cr-Commit-Position: refs/heads/master@{#33518}
-
rmcilroy authored
Rename IntepreterExceptionEntryHandler builtin to InterpreterEnterBytecodeDispatch and use it as the return address when building interpreter frames during deopt. This ensures that we restart execution of the outer frame at the correct bytecode. BUG=v8:4280,v8:4678 LOG=N Review URL: https://codereview.chromium.org/1633633002 Cr-Commit-Position: refs/heads/master@{#33512}
-
ishell authored
This CL implements PrepareForTailCall() mentioned in ES6 spec for full codegen, Crankshaft and Turbofan. When debugger is active tail calls are disabled. Tail calling can be enabled by --harmony-tailcalls flag. BUG=v8:4698 LOG=Y TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/1609893003 Cr-Commit-Position: refs/heads/master@{#33509}
-
- 23 Jan, 2016 1 commit
-
-
rmcilroy authored
Change the interpreter to always store the current context in the frame's context slot instead of the function context. This makes it possible to restore the correct context during deopt. BUG=v8:4678,v8:4280 LOG=N Review URL: https://codereview.chromium.org/1604923002 Cr-Commit-Position: refs/heads/master@{#33477}
-
- 22 Jan, 2016 1 commit
-
-
mstarzinger authored
This fixes the broken return address when the exception handler within interpreted bytecode is being entered via stack unwinding. The address in question will never actually be taken, but our stack walker uses this address to determine whether a frame is interpreted. R=rmcilroy@chromium.org TEST=cctest/test-interpreter/InterpreterTryCatch BUG=v8:4674 LOG=n Review URL: https://codereview.chromium.org/1615063002 Cr-Commit-Position: refs/heads/master@{#33463}
-
- 20 Jan, 2016 1 commit
-
-
mstarzinger authored
This implements a first prototype of stack unwinding for interpreted frames. The unwinding machinery performs a range-based lookup in the given handler table and potentially continues dispatching at the handler offset. Note that this does not yet correctly restore the context to the correct value when the handler is being entered. R=rmcilroy@chromium.org,oth@chromium.org BUG=v8:4674 LOG=n Review URL: https://codereview.chromium.org/1605633003 Cr-Commit-Position: refs/heads/master@{#33414}
-
- 15 Jan, 2016 1 commit
-
-
cbruni authored
When derived constructors return a non-object (or not undefined) we currently throw an exception directly in the callee context. This was achieved by desugaring the return statement for derived classes. To be spec compliamnt a separate ConstructStubForDerived is introduced. Instead of trowing directly, the desugared return statement inside a derived constructor only returns an integer to indicate an incompatible result. BUG=v8:4509 LOG=n Review URL: https://codereview.chromium.org/1593553002 Cr-Commit-Position: refs/heads/master@{#33336}
-
- 14 Jan, 2016 1 commit
-
-
epertoso authored
CompatibleReceiverCheck used by the HandleFastApiCall builtin was terminating with failure upon encountering a hidden prototype. It should actually stop iterating on the first non-hidden prototype. BUG= Review URL: https://codereview.chromium.org/1576423003 Cr-Commit-Position: refs/heads/master@{#33294}
-
- 13 Jan, 2016 2 commits
-
-
bmeurer authored
Also migrate the Number constructor to a native builtin, using the same mechanism already used by the String constructor. Otherwise just parsing and compiling the Number constructor to optimized code already eats 2ms on desktop for no good reason, and the resulting optimized code is not even close to awesome. Drive-by-fix: Use correct context for the [[Construct]] case of the String constructor as well, and share some code with it. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1573243009 Cr-Commit-Position: refs/heads/master@{#33265}
-
bmeurer authored
The API functions are always in sloppy mode, so receiver is always a JSReceiver once the actual call trampoline runs, no need to check again in various places. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1575973006 Cr-Commit-Position: refs/heads/master@{#33258}
-
- 08 Jan, 2016 1 commit
-
-
bmeurer authored
There's no reason to have JavaScript wrappers for those accessors, since the meat is already in hand-written native code (via %_DateField). First step now to put them into native builtins. Next step will be to completely remove %_DateField. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1567353002 Cr-Commit-Position: refs/heads/master@{#33172}
-