- 25 Nov, 2015 2 commits
-
-
bmeurer authored
ES6 section 12.2.8.1 states that flags for regular expression literals must be checked during parsing and invalid flags are early errors. This change adapts the Scanner and (Pre)Parser to act according to the spec. This is also a prerequisite to unify the handling of literal creation (for Objects, Arrays, Regexps, and at some point Classes). R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1472323002 Cr-Commit-Position: refs/heads/master@{#32273}
-
bmeurer authored
This is the initial step towards refactoring the regexp literation creation code to make it less obscure and more similar to the mechanism we use to create array and object literals. There's now a new runtime entry %CreateRegExpLiteral with the same interface as the entries for array and object literals, except that we still pass the flags as string. Instead of embedding the hand written native to clone JSRegExp instances we now have a FastCloneRegExpStub, which behaves similar to the other FastCloneShallowArrayStub and FastCloneShallowObjectStub that we already had. R=mlippautz@chromium.org, yangguo@chromium.org Review URL: https://codereview.chromium.org/1475823003 Cr-Commit-Position: refs/heads/master@{#32255}
-
- 24 Nov, 2015 2 commits
-
-
mbrandy authored
Port 1b1db135 Original commit message: Change the runtime entries and their associated code stubs for object and array literal creation to take the closure instead of the raw literals pointer. This is way easier to deal with (and cleaner) in TurboFan. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1471823005 Cr-Commit-Position: refs/heads/master@{#32233}
-
mbrandy authored
Port 9846f386 Original commit message: The literal index is being pushed onto the stack while evaluating the non-constant subexpressions, but never used in fullcodegen (and hence not used in the optimizing compilers). R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1468273005 Cr-Commit-Position: refs/heads/master@{#32229}
-
- 23 Nov, 2015 1 commit
-
-
mbrandy authored
Port 374b6ea2 Original commit message: There's no point in collecting feedback for super constructor calls, because in all (interesting) cases we can gather (better) feedback from other sources (i.e. via inlining or via using a LOAD_IC to get to the [[Prototype]] of the target). So CallConstructStub is now only used for new Foo(...args) sites where we want to collect feedback in the baseline compiler. The optimizing compilers, Reflect.construct and super constructor calls use the Construct builtin directly, which allows us to remove some weird code from the CallConstructStub (and opens the possibility for more code sharing with the CallICStub, maybe even going for a ConstructICStub). Also remove the 100% redundant HCallNew instruction, which is just a wrapper for the Construct builtin anyway (indirectly via the CallConstructStub). Drive-by-fix: Drop unused has_function_cache bit on Code objects. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:4413, v8:4430 LOG=n Review URL: https://codereview.chromium.org/1471623005 Cr-Commit-Position: refs/heads/master@{#32186}
-
- 17 Nov, 2015 3 commits
-
-
mbrandy authored
Port 14ec485c R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1455563005 Cr-Commit-Position: refs/heads/master@{#32060}
-
mbrandy authored
Port e75e6254 R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1448403002 Cr-Commit-Position: refs/heads/master@{#32058}
-
mbrandy authored
Port 07c1d181 R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1452213003 Cr-Commit-Position: refs/heads/master@{#32055}
-
- 16 Nov, 2015 1 commit
-
-
adamk authored
All uses of Token::INIT also have access to the relevant VariableMode, so there's no reason to have more than one token representing an initializing assignment. Review URL: https://codereview.chromium.org/1431873006 Cr-Commit-Position: refs/heads/master@{#32016}
-
- 13 Nov, 2015 1 commit
-
-
mstarzinger authored
This aligns the naming of "new target" with the spec text throughout TurboFan and the stack frame walker. The goal is to avoid unnecessary confusion for people familiar with the spec. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1442643002 Cr-Commit-Position: refs/heads/master@{#31978}
-
- 09 Nov, 2015 3 commits
-
-
mbrandy authored
Port 7c3396d0 Original commit message: Introduce receiver conversion mode specialization for the Call and CallFunction builtins, so we can specialize the builtin functionality (actually an optimization only) based on static information from the callsite (this is basically a superset of the optimizations that were available with the CallFunctionStub and CallICStub, except that these optimizations are correct now). This fixes a regression introduced by the removal of CallFunctionStub, for programs that call a lot. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG=chromium:552244 LOG=n Review URL: https://codereview.chromium.org/1425083004 Cr-Commit-Position: refs/heads/master@{#31905}
-
mbrandy authored
Port 4ab1b05d Original commit message: Depends on https://codereview.chromium.org/1407373007/ After that CL, all receiver conversion is handled by the call builtin. R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1412803014 Cr-Commit-Position: refs/heads/master@{#31902}
-
mbrandy authored
Port 44c44521 Original commit message: This fixes receiver conversion since the Call builtin does it correctly. R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG=v8:4526 LOG=n Review URL: https://codereview.chromium.org/1423973006 Cr-Commit-Position: refs/heads/master@{#31901}
-
- 05 Nov, 2015 2 commits
-
-
bmeurer authored
The %_StringAdd intrinsic is not used anymore, so no need to keep the code around. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1420283019 Cr-Commit-Position: refs/heads/master@{#31822}
-
bmeurer authored
The %_CallFunction doesn't implement the call sequence properly, it doesn't do the receiver wrapping, nor does it check for classConstructor. Also the eager deoptimization for %_CallFunction was seriously b0rked (we must have been lucky with TurboFan so far). R=yangguo@chromium.org BUG=v8:4413 LOG=n Review URL: https://codereview.chromium.org/1419813010 Cr-Commit-Position: refs/heads/master@{#31821}
-
- 02 Nov, 2015 1 commit
-
-
yangguo authored
R=jkummerow@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1406113007 Cr-Commit-Position: refs/heads/master@{#31714}
-
- 30 Oct, 2015 2 commits
-
-
mstarzinger authored
This makes FullCodeGenerator::VisitCall be independent of the target architecture. Only the EmitPossiblyEvalCall case was dependent and is hoisted into an emitter method. R=rossberg@chromium.org Review URL: https://codereview.chromium.org/1428953002 Cr-Commit-Position: refs/heads/master@{#31693}
-
bmeurer authored
In order to properly (lazy) bailout when converting the receiver for sloppy mode functions (using the newly added JSConvertReceiver operator), we need to have a bailout location right before every call (also right before every %_Call and %_CallFunction), otherwise if the JSConvertReceiver just reuses the lazy bailout frame state from the JSCallFunction node, it will skip the whole function in case of lazy bailout. Note it should be impossible to trigger this currently because we do not yet support AllocationSite code dependencies in TurboFan, which can trigger this kind of lazy bailout; therefore it's not possible to write a regression test (yet). R=yangguo@chromium.org BUG=v8:4493 LOG=n Review URL: https://codereview.chromium.org/1425883004 Cr-Commit-Position: refs/heads/master@{#31668}
-
- 29 Oct, 2015 1 commit
-
-
mstarzinger authored
Most use sites of Call::GetCallType already distinguish the property call case (i.e. formerly known as Call::PROPERTY_CALL) further. This introduces this distinction to simplify use sites. R=rossberg@chromium.org Review URL: https://codereview.chromium.org/1414413004 Cr-Commit-Position: refs/heads/master@{#31663}
-
- 27 Oct, 2015 2 commits
-
-
jkummerow authored
Full-codegen prepared for the bailout in the wrong place, causing side effects to be replayed when they shouldn't. Crankshaft and Turbofan are in agreement about where the deopt should jump to. TEST=mjsunit/for-in-opt R=jarin@chromium.org BUG=v8:4381 LOG=y Review URL: https://codereview.chromium.org/1413923005 Cr-Commit-Position: refs/heads/master@{#31607}
-
bmeurer authored
Change CompareNilIC to return true/false instead of 1/0, and use the CompareNilICStub in TurboFan for abstract equality with null/undefined. This way we don't always run into the %Equals runtime fallback when comparing objects with null/undefined. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1417503008 Cr-Commit-Position: refs/heads/master@{#31596}
-
- 26 Oct, 2015 1 commit
-
-
mbrandy authored
R=hpayer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG=chromium:542823 LOG=n Review URL: https://codereview.chromium.org/1415143004 Cr-Commit-Position: refs/heads/master@{#31579}
-
- 22 Oct, 2015 1 commit
-
-
ishell authored
Remove support for "loads and stores to global vars through property cell shortcuts installed into parent script context" from all compilers. The plan is to implement the same idea using vector IC machinery. Stubs implementations and scopes modifications are left untouched for now. Review URL: https://codereview.chromium.org/1419823003 Cr-Commit-Position: refs/heads/master@{#31458}
-
- 20 Oct, 2015 1 commit
-
-
mstarzinger authored
This fixes the bailout point used by JSCreateScriptContext nodes for top-level code. The bailout point differs from the Crankshaft one as parameter slots have not been copied and the context chain was not extended yet in TurboFan. Hence a new bailout id is required. R=ishell@chromium.org TEST=cctest/test-decls/CrossScript --turbo-inlining Review URL: https://codereview.chromium.org/1413933005 Cr-Commit-Position: refs/heads/master@{#31399}
-
- 19 Oct, 2015 1 commit
-
-
jarin authored
Review URL: https://codereview.chromium.org/1412153002 Cr-Commit-Position: refs/heads/master@{#31372}
-
- 14 Oct, 2015 2 commits
-
-
mbrandy authored
Port f2f46aff Original commit message: The lack of a vector slot for the keyed store operation in filling in non-constant array literal properties led to undesirable contortions in compilers downwind of full-codegen. The use of a single slot to initialize all the array elements is sufficient. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1390353006 Cr-Commit-Position: refs/heads/master@{#31261}
-
hpayer authored
BUG=chromium:542823 LOG=n Review URL: https://codereview.chromium.org/1391373004 Cr-Commit-Position: refs/heads/master@{#31257}
-
- 12 Oct, 2015 2 commits
-
-
mbrandy authored
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1390953004 Cr-Commit-Position: refs/heads/master@{#31221}
-
littledan authored
Previously, name conflicts between var and let declarations were only made into exceptions if they were visible at parse-time. This patch adds runtime checks so that sloppy-mode direct eval can't introduce conflicting var declarations. The change is implemented by traversing the scope chain when a direct eval introduces a var declaration to look for conflicting let declarations, up to the function boundary. BUG=v8:4454 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1382513003 Cr-Commit-Position: refs/heads/master@{#31211}
-
- 01 Oct, 2015 3 commits
-
-
alph authored
It was supposed to be used by the CPU profiler. But as long as these ranges are not built when profiler is not running, once the profiler is started there're no ranges for already compiled functions. So basically this code never worked. As long as now CPU profiler uses another approach this code is no longer needed. Review URL: https://codereview.chromium.org/1376333003 Cr-Commit-Position: refs/heads/master@{#31056}
-
bmeurer authored
Introduce %_ToNumber intrinsic, which just calls to the existing ToNumberStub, and remove all uses of our custom JavaScript plus intrinsics based ToNumber and friends. Also replace the TO_NUMBER_INLINE macro with TO_NUMBER, which is currently a wrapper for %_ToNumber. Newly written JS code should use TO_NUMBER (similar to TO_STRING, TO_INT32, and friends). Also finally remove the DefaultString/DefaultNumber builtins, which are basically the ES5 version of ToPrimitive. Now all code uses the ES6 version, which is implemented in Object::ToPrimitive and JSReceiver::ToPrimitive in C++. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg R=jarin@chromium.org BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1384443002 Cr-Commit-Position: refs/heads/master@{#31054}
-
ishell authored
This CL also allows to use arbitrary number of feedback vector elements for particular slot kind. Review URL: https://codereview.chromium.org/1370303004 Cr-Commit-Position: refs/heads/master@{#31050}
-
- 30 Sep, 2015 4 commits
-
-
mbrandy authored
Port c90c60ba Original commit message: Make sure to always reference it indirectly. This allows us to make the vector native-context dependent should we wish. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1381803002 Cr-Commit-Position: refs/heads/master@{#31036}
-
mbrandy authored
Port d8cdd695 Original commit message: The LiteralsArray will soon hold a type feedback vector. Code treats it as an ordinary fixed array, and needs to stop that. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1373823003 Cr-Commit-Position: refs/heads/master@{#31035}
-
mbrandy authored
Port 09626525 R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1377133005 Cr-Commit-Position: refs/heads/master@{#31034}
-
mbrandy authored
Port 9b12ec9a Original commit message: This lowers JSCreateArgument nodes to call the ArgumentsAccessStub for help with materializing arguments objects when possible. Along the way this changes the calling convention of said stub to take parameters in registers instead of on the stack. R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1376303002 Cr-Commit-Position: refs/heads/master@{#31033}
-
- 29 Sep, 2015 1 commit
-
-
bmeurer authored
This adds ES6 compliant Object::ToInteger, Object::ToInt32, Object::ToUint32 and Object::ToLength, and replaces the old Execution wrappers of those abstract operations (which were not using the correct ToPrimitive). This also introduces proper %ToInteger and %ToLength runtime entries, with a fast path %_ToInteger supported in fullcodegen and Crankshaft (for now). Internal JavaScript code should use TO_INTEGER and TO_LENGTH respectively. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1378533002 Cr-Commit-Position: refs/heads/master@{#30993}
-
- 22 Sep, 2015 1 commit
-
-
mbrandy authored
Port 1dfac69f Original commit message: Introduce new builtins Construct and ConstructFunction (in line with the Call and CallFunction builtins that we already have) as proper bottleneck for Construct and [[Construct]] on JSFunctions. Use these builtins to support passing NewTarget from C++ to JavaScript land. Long-term we want the CallConstructStub to be used for gathering feedback on entry to construction chain (i.e. the initial new Foo), and use the Construct builtins to do the actual work inside the construction chain (i.e. calling into super and stuff). R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG=v8:4430 LOG=n Review URL: https://codereview.chromium.org/1358203002 Cr-Commit-Position: refs/heads/master@{#30872}
-
- 17 Sep, 2015 1 commit
-
-
mbrandy authored
Port b5588f48 Original commit message: There isn't a plan to turn it on soon, so we'll take it out in favor of cleaner code. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1347253003 Cr-Commit-Position: refs/heads/master@{#30807}
-
- 14 Sep, 2015 1 commit
-
-
bmeurer authored
These builtins present an optimization for the general addition case, where one side is already known to be a string. Unfortunately this optimization is wrong in the presence of @@toPrimitive (there are some ideas how to implement a similar optimization using the prototype backpointer mechanism that jkummerow@ introduced earlier). So this also removes the broken %_IsStringWrapperSafeForDefaultValueOf, which is the key part of the optimization mentioned above. R=mstarzinger@chromium.org BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1336273002 Cr-Commit-Position: refs/heads/master@{#30707}
-