- 08 Sep, 2015 1 commit
-
-
bmeurer authored
The semantics of the %_CallFunction intrinsic seem to be very unclear, which resulted in a lot of bugs. Especially the combination with %IsSloppyModeFunction is always a bug, because the receiver would be wrapped in the wrong context. So the %IsSloppyModeFunction helper is gone now, and many of the buggy uses of %_CallFunction are also eliminated. If you ever need to call something with a different receiver, then %_Call is your friend now. It does what you want and implements the call sequence fully (and correct). BUG=v8:4413 LOG=n Review URL: https://codereview.chromium.org/1325573004 Cr-Commit-Position: refs/heads/master@{#30634}
-
- 02 Sep, 2015 1 commit
-
-
caitpotter88 authored
Kills the kRestParameter bailout/disabled optimization, and fixes lazily parsed arrow functions with rest parameters. Supercedes https://crrev.com/1235153006/ BUG=chromium:508074, v8:2160, v8:2700 LOG=N R=rossberg@chromium.org, adamk@chromium.org, wingo@igalia.com Review URL: https://codereview.chromium.org/1272673003 Cr-Commit-Position: refs/heads/master@{#30550}
-
- 01 Sep, 2015 1 commit
-
-
binji authored
Having both flags is tedious, and it is unlikely you'd ever want them separately. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1304163010 Cr-Commit-Position: refs/heads/master@{#30523}
-
- 31 Aug, 2015 1 commit
-
-
bmeurer authored
This way we don't need to expose JSReceiver::OrdinaryToPrimitive as runtime function, and we don't need the separate JS trampoline. This also adds tests for ToPrimitive on date objects, which are special. R=mstarzinger@chromium.org BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1324713002 Cr-Commit-Position: refs/heads/master@{#30473}
-
- 28 Aug, 2015 4 commits
-
-
littledan authored
This patch makes 'let' a contextual keyword in both strict and sloppy mode. It behaves as a keyword when used at the beginning of a StatementListItem or lexical declaration at the beginning of a for statement, if it is followed by an identifier, [ or {. Implementing this change requires an extra token look-ahead by the parser which is only invoked in certain cases (so as to avoid parsing RegExps as ECMAScript tokens). This might result in a slowdown of the scanner, but performance testing of this patch hasn't yet found much of a regression. BUG=v8:3305 LOG=Y R=adamk,vogelheim Review URL: https://codereview.chromium.org/1315673009 Cr-Commit-Position: refs/heads/master@{#30451}
-
bmeurer authored
This adds a new ToString runtime function and a fast-path ToStringStub (which is just a simple dispatcher for existing functionality), and also implements %_ToName using the ToStringStub. R=mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1319973007 Cr-Commit-Position: refs/heads/master@{#30442}
-
bmeurer authored
This adds a %ToName runtime entry that uses the previously introduced Object::ToName, which is based on the new Object::ToPrimitive method. Also removes the need to expose ToName in various way via the builtins and/or context. Drive-by-fix: Let %HasProperty do the ToName conversion implicitly as required. BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1319133002 Cr-Commit-Position: refs/heads/master@{#30435}
-
bmeurer authored
This is the first step towards a spec compliant ToPrimitive implementation (and therefore spec compliant ToNumber, ToString, ToName, and friends). It adds support for the @@toPrimitive symbol that was introduced with ES2015, and also adds the new Symbol.prototype[@@toPrimitive] and Date.prototype[@@toPrimitive] initial properties. There are now runtime functions for %ToPrimitive, %ToNumber and %ToString, which do the right thing and should be used as fallbacks instead of the hairy runtime.js implementations. I will do the same for the other conversion operations mentioned by the spec in follow up CLs. Once everything is in place we can look into optimizing things further, so that we don't always call into the runtime. Also fixed Date.prototype.toJSON to be spec compliant. R=mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:4307 LOG=y Review URL: https://codereview.chromium.org/1306303003 Cr-Commit-Position: refs/heads/master@{#30434}
-
- 26 Aug, 2015 2 commits
-
-
conradw authored
TC39 agreed to disallow "use strict" directives in function body when non-simple parameter lists are used. This is a continuation of caitp's CL https://codereview.chromium.org/1281163002/ with some refactorings removed for now. Still TODO: there is a lot of duplication between the is_simple field of FormalParametersBase and the NonSimpleParameter property ExpressionClassifier keeps track of. It should be possible to remove the former with a minor refactoring of arrow function parsing. This will be attempted in a follow-up CL. BUG= LOG=N Review URL: https://codereview.chromium.org/1300103005 Cr-Commit-Position: refs/heads/master@{#30388}
-
wingo authored
BUG=v8:4211 LOG=Y R=rossberg@chromium.org Review URL: https://codereview.chromium.org/1315823002 Cr-Commit-Position: refs/heads/master@{#30373}
-
- 25 Aug, 2015 3 commits
-
-
rossberg authored
R=littledan@chromium.org BUG= Review URL: https://codereview.chromium.org/1303013007 Cr-Commit-Position: refs/heads/master@{#30363}
-
rossberg authored
R=adamk@chromium.org BUG=v8:2160 LOG=N Review URL: https://codereview.chromium.org/1311163002 Cr-Commit-Position: refs/heads/master@{#30361}
-
bbudge authored
Adds Uint32x4, Uint16x8, and Uint8x16 types. Adds all functions in the current spec, except for loads and stores. LOG=Y BUG=v8:4124 Committed: https://crrev.com/4be6d37fd1ad0a6e0ea37da8863ae5169c2b89ba Cr-Commit-Position: refs/heads/master@{#30322} Review URL: https://codereview.chromium.org/1294513004 Cr-Commit-Position: refs/heads/master@{#30353}
-
- 24 Aug, 2015 3 commits
-
-
hablich authored
Revert of [simd.js] Update to spec version 0.8.2. (patchset #11 id:200001 of https://codereview.chromium.org/1294513004/ ) Reason for revert: Fails tests: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20deadcode/builds/5073/steps/steps/logs/stdio Original issue's description: > [simd.js] Update to spec version 0.8.2. > > Adds Uint32x4, Uint16x8, and Uint8x16 types. > Adds all functions in the current spec, except for loads and stores. > > LOG=Y > BUG=v8:4124 > > Committed: https://crrev.com/4be6d37fd1ad0a6e0ea37da8863ae5169c2b89ba > Cr-Commit-Position: refs/heads/master@{#30322} TBR=littledan@chromium.org,bbudge@google.com,bmeurer@chromium.org,hpayer@chromium.org,bbudge@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4124 Review URL: https://codereview.chromium.org/1309513005 Cr-Commit-Position: refs/heads/master@{#30323}
-
bbudge authored
Adds Uint32x4, Uint16x8, and Uint8x16 types. Adds all functions in the current spec, except for loads and stores. LOG=Y BUG=v8:4124 Review URL: https://codereview.chromium.org/1294513004 Cr-Commit-Position: refs/heads/master@{#30322}
-
yangguo authored
Revert of Parse arrow functions at proper precedence level (patchset #2 id:60001 of https://codereview.chromium.org/1286383005/ ) Reason for revert: Breaks layout test. Please change test expectation on blink first. --- /mnt/data/b/build/slave/V8-Blink_Linux_64/build/layout-test-results/inspector/sources/debugger-pause/debugger-pause-in-internal-expected.txt +++ /mnt/data/b/build/slave/V8-Blink_Linux_64/build/layout-test-results/inspector/sources/debugger-pause/debugger-pause-in-internal-actual.txt @@ -1,4 +1,4 @@ -CONSOLE ERROR: line 9: Uncaught SyntaxError: Expected () to start arrow function, but got '}' instead of '=>' +CONSOLE ERROR: line 9: Uncaught SyntaxError: Unexpected token ) Tests that pause on exception in internal script does not crash. Script source was shown. Original issue's description: > Parse arrow functions at proper precedence level > > BUG=v8:4211 > LOG=Y > R=rossberg@chromium.org > > Committed: https://crrev.com/9271b0ccf9ddb217deb1f0b9ef9b59b64dc40214 > Cr-Commit-Position: refs/heads/master@{#30298} TBR=rossberg@chromium.org,mstarzinger@chromium.org,fennyfanny655@gmail.com,machenbach@chromium.org,wingo@igalia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4211 Review URL: https://codereview.chromium.org/1315503002 Cr-Commit-Position: refs/heads/master@{#30318}
-
- 21 Aug, 2015 2 commits
-
-
wingo authored
BUG=v8:4211 LOG=Y R=rossberg@chromium.org Review URL: https://codereview.chromium.org/1286383005 Cr-Commit-Position: refs/heads/master@{#30298}
-
rossberg authored
This CL is a nightmare! For the utterly irrelevant edge case of a sloppy function with non-simple parameters and a call to direct eval, like here, let x = 1; function f(g = () => x) { var y eval("var x = 2") return g() + x // f() = 3 } we have to do all of the following, on top of the declaration block ("varblock") contexts we already introduce around the body: - Introduce the ability for varblock contexts to have both a ScopeInfo and an extension object (e.g., the body varblock in the example will contain both a static var y and a dynamic var x). No other scope needs that. Since there are no context slots left, a special new struct is introduced that pairs up scope info and extension object. - When declaring lookup slots in the runtime, this new struct is allocated in the case where an extension object has to be added to a block scope (at which point the block's extension slot still contains a plain ScopeInfo). - While at it, introduce some abstraction to access context extension slots in a more controlled manner, in order to keep special-casing to a minimum. - Make sure that even empty varblock contexts do not get optimised away when they contain a sloppy eval, so that they can host the potential extension object. - Extend dynamic search for declaration contexts (used by sloppy direct eval) to recognize varblock contexts. - In the parser, if a function has a sloppy direct eval, introduce an additional varblock scope around each non-simple (desugared) parameter, as required by the spec to contain possible dynamic var bindings. - In the pattern rewriter, add the ability to hoist the named variables the pattern declares to an outer scope. That is required because the actual destructuring has to be evaluated inside the protecting varblock scope, but the bindings that the desugaring introduces are in the outer scope. - ScopeInfos need to save the information whether a block is a varblock, to make sloppy eval calls work correctly that deserialise them as part of the scope chain. - Add the ability to materialize block scopes with extension objects in the debugger. Likewise, enable setting extension variables in block scopes via the debugger interface. - While at it, refactor and unify some respective code in the debugger. Sorry, this CL is large. I could try to split it up, but everything is rather entangled. @mstarzinger: Please review the changes to contexts. @yangguo: Please have a look at the debugger stuff. R=littledan@chromium.org, mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:811,v8:2160 LOG=N Review URL: https://codereview.chromium.org/1292753007 Cr-Commit-Position: refs/heads/master@{#30295}
-
- 17 Aug, 2015 1 commit
-
-
rossberg authored
Based on caitp's https://codereview.chromium.org/1127063003/ R=adamk@chromium.org, littledan@chromium.org BUG=v8:2160 LOG=N Review URL: https://codereview.chromium.org/1287063004 Cr-Commit-Position: refs/heads/master@{#30192}
-
- 15 Aug, 2015 1 commit
-
-
caitpotter88 authored
Second item in section 13.7.5.1 states that the error should be a SyntaxError, when previously CheckAndRewriteReferenceExpression would always emit a ReferenceError. BUG=v8:4373 R=adamk, rossberg LOG=N CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1292393002 Cr-Commit-Position: refs/heads/master@{#30184}
-
- 13 Aug, 2015 1 commit
-
-
adamk authored
In doing so, fix calls CheckAndRewriteReferenceExpression to take proper start and end positions (instead of just pointing at the first token in the LHS expression). BUG=v8:4370 LOG=n Review URL: https://codereview.chromium.org/1290013002 Cr-Commit-Position: refs/heads/master@{#30166}
-
- 12 Aug, 2015 2 commits
-
-
littledan authored
This patch strengthens testing of classes by verifying that the binding that they export externally follows block scoping, as opposed to var-style scoping. The tests are based on existing tests for let and const. R=adamk LOG=N BUG=v8:3305 Review URL: https://codereview.chromium.org/1286923002 Cr-Commit-Position: refs/heads/master@{#30140}
-
littledan authored
In an initial attempt to implement sloppy mode lexical bindings, functions were made lexically scoped in sloppy mode. However, the ES2015 spec says that they need an additional hoisted var binding, and further, it's not clear when we'll implement that behavior or whether it's web-compatible. This patch splits off function block scoping into a new, separate flag called --harmony_sloppy_function. This change will enable the possibility of testing and shipping this feature separately from other block scoping-related features which don't have the same risks. BUG=v8:4285 R=adamk LOG=N Review URL: https://codereview.chromium.org/1282093002 Cr-Commit-Position: refs/heads/master@{#30122}
-
- 11 Aug, 2015 2 commits
-
-
littledan authored
In ES6, direct eval() in sloppy mode uses the enclosing function-level ("var") scope for var-style bindings and a new lexical scope for lexical bindings like let and class. This patch implements that feature by making lexical bindings that are directly within an EVAL_SCOPE be on the local scope rather than the enclosing one. BUG=v8:4288 LOG=Y R=adamk Review URL: https://codereview.chromium.org/1274193004 Cr-Commit-Position: refs/heads/master@{#30120}
-
domenic authored
R=littledan@chromium.org, adamk@chromium.org BUG=v8:3575 LOG=Y Review URL: https://codereview.chromium.org/1283703004 Cr-Commit-Position: refs/heads/master@{#30117}
-
- 07 Aug, 2015 3 commits
-
-
rossberg authored
Fixes the use of eval calls in strict parameter lists in particular. R=adamk@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1276273002 Cr-Commit-Position: refs/heads/master@{#30074}
-
rossberg authored
Was fixed by https://chromium.googlesource.com/v8/v8/+/826f8da55fb868a365d047a4a653eb8ff2bfc14e R=mstarzinger@chromium.org BUG=517455 LOG=N Review URL: https://codereview.chromium.org/1280953002 Cr-Commit-Position: refs/heads/master@{#30069}
-
rossberg authored
Plus some renaming for consistency. R=adamk@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1278783002 Cr-Commit-Position: refs/heads/master@{#30064}
-
- 05 Aug, 2015 3 commits
-
-
adamk authored
It was shipped in V8 4.4. Review URL: https://codereview.chromium.org/1273543002 Cr-Commit-Position: refs/heads/master@{#30038}
-
adamk authored
It was shipped in V8 4.4. Review URL: https://codereview.chromium.org/1271073002 Cr-Commit-Position: refs/heads/master@{#30035}
-
rossberg authored
Previously, examples like (({a = x}, x) => {})({}, 0) did not throw a ReferenceError like they should. This CL - Splits up DeclareFormalParameters such that the formals can be recorded first and declared later. - Declaration then takes the complete parameter list into account. If it is not simple, temporaries are introduced for all parameters. - BuildParameterInitializationBlock desugars all parameters from non-simple lists into let-bindings. - Refactored Pre/ParserFormalParameters, so that the arity information is no longer duplicated in Parser. - Rest is currently handled specially, until rest-via-destructuring has landed. R=adamk@chromium.org, littledan@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1259283002 Cr-Commit-Position: refs/heads/master@{#30025}
-
- 04 Aug, 2015 2 commits
-
-
adamk authored
To avoid tanking context startup performance, only the actual installation of the JS-exposed API is flag-guarded. The remainder of the implementation still resides in the snapshot. Review URL: https://codereview.chromium.org/1257063003 Cr-Commit-Position: refs/heads/master@{#30017}
-
adamk authored
BUG=v8:3887 LOG=n Review URL: https://codereview.chromium.org/1259183005 Cr-Commit-Position: refs/heads/master@{#30010}
-
- 03 Aug, 2015 1 commit
-
-
bbudge authored
Adds Int32x4, Bool32x4, Int16x8, Bool16x8, Int8x16, Bool8x16. Adds Simd128Value base heap object class. Changes heap/factory construction pattern to use arrays. Adds replaceLane functions to facilitate testing. NOPRESUBMIT=true (presubmit checks erroneously interpret array declaration in macro definition as variable size array.) LOG=Y BUG=v8:4124 Review URL: https://codereview.chromium.org/1250733005 Cr-Commit-Position: refs/heads/master@{#29974}
-
- 25 Jul, 2015 2 commits
-
-
littledan authored
Class bindings are mutable and lexically scoped, with TDZ semantics. They may not overlap with var bindings in the same scope. This patch adds tests for those properties. R=adamk BUG=v8:3305 LOG=N Review URL: https://codereview.chromium.org/1254003004 Cr-Commit-Position: refs/heads/master@{#29856}
-
littledan authored
--harmony_sloppy includes behavior to turn on sloppy mode lexical bindings. Before this patch, it also included a way to parse let which is likely web-incompatible (let is disallowed as an identifier). This patch splits off the let parsing from the more general block scoping code, so that block scoping can be developed independently. R=adamk LOG=N BUG=v8:3305 Review URL: https://codereview.chromium.org/1255013002 Cr-Commit-Position: refs/heads/master@{#29855}
-
- 24 Jul, 2015 1 commit
-
-
rossberg authored
R=mstarzinger@chromium.org BUG=513474,513475,513611,513612 LOG=N Review URL: https://codereview.chromium.org/1250423002 Cr-Commit-Position: refs/heads/master@{#29845}
-
- 23 Jul, 2015 1 commit
-
-
rossberg authored
R=adamk@chromium.org BUG=v8:3330 LOG=N Review URL: https://codereview.chromium.org/1244423003 Cr-Commit-Position: refs/heads/master@{#29803}
-
- 22 Jul, 2015 1 commit
-
-
bbudge authored
LOG=N BUG=v8:4124 Review URL: https://codereview.chromium.org/1239423004 Cr-Commit-Position: refs/heads/master@{#29781}
-
- 20 Jul, 2015 1 commit
-
-
rossberg authored
Also, more tests for parameters containing functions or eval or both. R=adamk@chromium.org, caitpotter88@gmail.com, littledan@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1225413005 Cr-Commit-Position: refs/heads/master@{#29752}
-