- 20 May, 2016 1 commit
-
-
gdeepti authored
- Lane indices are no longer required to be integers. Add index coersion for loads/stores - Give shift operators masking shift count semantics - Throw type/range errors instead of runtime asserts. BUG=v8:4963 LOG=N R=bbudge@chromium.org, bmeurer@chromium.org Review-Url: https://codereview.chromium.org/1965443003 Cr-Commit-Position: refs/heads/master@{#36402}
-
- 17 May, 2016 1 commit
-
-
bmeurer authored
This adds back the instanceof operator support in the backends and introduces a @@hasInstance protector cell on the isolate that guards the fast path for the InstanceOfStub. This way we recover the ~10% regression on Octane EarleyBoyer in Crankshaft and greatly improve TurboFan and Ignition performance of instanceof. R=ishell@chromium.org TBR=hpayer@chromium.org,rossberg@chromium.org BUG=chromium:597249, v8:4447 LOG=n Review-Url: https://codereview.chromium.org/1980483003 Cr-Commit-Position: refs/heads/master@{#36275}
-
- 16 May, 2016 1 commit
-
-
caitpotter88 authored
BUG=v8:4483 LOG=Y R=littledan@chromium.org, adamk@chromium.org Review-Url: https://codereview.chromium.org/1841543003 Cr-Commit-Position: refs/heads/master@{#36261}
-
- 10 May, 2016 1 commit
-
-
ishell authored
BUG=v8:4999, v8:4915 LOG=N Review-Url: https://codereview.chromium.org/1964603002 Cr-Commit-Position: refs/heads/master@{#36126}
-
- 09 May, 2016 1 commit
-
-
ishell authored
BUG=v8:4915 LOG=N Review-Url: https://codereview.chromium.org/1955393002 Cr-Commit-Position: refs/heads/master@{#36105}
-
- 06 May, 2016 1 commit
-
-
clemensh authored
This changes different locations to extract the reference to the wasm object and the function index from the stack trace, and make it available through all the APIs which process stack traces. The javascript CallSite object now has the new methods isWasm(), getWasmObject() and getWasmFunctionIndex(); the byte offset is available via getPosition(). Function names of wasm frames should be fully functional with this commit, position information works reliably for calls, but not for traps like unreachable or out-of-bounds accesses. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1909353002 Cr-Commit-Position: refs/heads/master@{#36067}
-
- 04 May, 2016 1 commit
-
-
ishell authored
Unlike previous implementation where the 'continue' keyword was a feature of a return statement the keyword is now recognized as a part of expression. Error reporting was significantly improved. --harmony-explicit-tailcalls option is now orthogonal to --harmony-tailcalls so we can test both modes at the same time. This CL also adds %GetExceptionDetails(exception) that fetches hidden |start_pos| and |end_pos| values from the exception object. BUG=v8:4915 LOG=N Review-Url: https://codereview.chromium.org/1928203002 Cr-Commit-Position: refs/heads/master@{#36024}
-
- 03 May, 2016 1 commit
-
-
adamk authored
Yield expressions are not allowed in formal parameter initializers of generators, but we weren't properly catching the case where the yield expression appeared in the 'extends' clause of a class expression. They also aren't allowed in arrow functions, which we were failing to catch due to not looking at the obscurely-named "FormalParameterInitializerError" bit of ExpressionClassifier. This patch passes along an ExpressionClassifier when parsing class expressions and accumulates the proper error for that case. For the arrow function case, the fix is simply to check for the "formal parameter initializer" error once we know we've parsed an arrow function. The error message used for this has also been made specific to yield expressions. Tests are added both for the error case and the non-error cases (where yield is used in such a position inside the class body). BUG=v8:4966, v8:4968, v8:4974 LOG=n Review-Url: https://codereview.chromium.org/1941823003 Cr-Commit-Position: refs/heads/master@{#35957}
-
- 28 Apr, 2016 1 commit
-
-
littledan authored
These checks ensure that a TypeError is thrown, per spec, rather than a runtime assert failure. BUG=v8:4964 R=adamk LOG=Y Review-Url: https://codereview.chromium.org/1929123002 Cr-Commit-Position: refs/heads/master@{#35885}
-
- 27 Apr, 2016 2 commits
-
-
littledan authored
The legacy function declaration locations from Annex B 3.2 and 3.4 do not apply for generator declarations. This patch cracks down on those usages, which is tested for by new incoming test262 tests. BUG=v8:4824 LOG=Y R=adamk Review-Url: https://codereview.chromium.org/1900033003 Cr-Commit-Position: refs/heads/master@{#35835}
-
ishell authored
BUG=v8:4915 LOG=Y Review URL: https://codereview.chromium.org/1914423002 Cr-Commit-Position: refs/heads/master@{#35822}
-
- 26 Apr, 2016 1 commit
-
-
ishell authored
The syntax is "return continue expr;". BUG=v8:4915 LOG=Y Review URL: https://codereview.chromium.org/1917993004 Cr-Commit-Position: refs/heads/master@{#35799}
-
- 22 Apr, 2016 1 commit
-
-
adamk authored
The feature was deprecated in M49 and flagged off in M50. This patch removes it entirely from the codebase. Review URL: https://codereview.chromium.org/1909433003 Cr-Commit-Position: refs/heads/master@{#35714}
-
- 19 Apr, 2016 2 commits
-
-
clemensh authored
This prepares a patch to throw actual errors instead of just strings on wasm traps. In order to accomplish this, the messages need to be known to the runtime, as the generated code will just pass the message id. R=mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1880493002 Cr-Commit-Position: refs/heads/master@{#35628}
-
clemensh authored
This is a bit unfortunate, but otherwise we would have to include objects.h before message.h, since for the initialization of a Handle<T>, the compiler checks that Object* can be assigned to T*. So it would need to know about the inheritance for initializing Handle<Script> and Handle<JSFunction>. R=mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1872373002 Cr-Commit-Position: refs/heads/master@{#35626}
-
- 08 Apr, 2016 1 commit
-
-
adamk authored
These were all on by default in M49 without complaint. R=littledan@chromium.org Review URL: https://codereview.chromium.org/1858943002 Cr-Commit-Position: refs/heads/master@{#35342}
-
- 25 Mar, 2016 2 commits
-
-
binji authored
BUG=v8:4737 LOG=n R=jarin@chromium.org Review URL: https://codereview.chromium.org/1676613002 Cr-Commit-Position: refs/heads/master@{#35074}
-
littledan authored
A bug in error printing meant that we failed to do proper type checks before calling into C++ code, which could lead to RUNTIME_ASSERT failures if methods are called on alternative receivers. This patch adds the right type checks. BUG=chromium:596718 LOG=Y R=adamk Review URL: https://codereview.chromium.org/1831053003 Cr-Commit-Position: refs/heads/master@{#35069}
-
- 24 Mar, 2016 2 commits
-
-
littledan authored
This patch implements ES2015 RegExp subclassing semantics, namely the hardest part where RegExp.prototype.exec and certain flag getters can be overridden in order to provide different behavior. This change is hidden behind a new flag, --harmony-regexp-exec. The flag guards the behavior by installing entirely different implementations of the methods which follow the new semantics. Preliminary performance tests show a 3-4x regression in the Octane RegExp benchmark. The new code doesn't call out into several fast paths that the old code supported, so this is expected. The patch is tested mostly by test262, where most RegExp tests are fixed, with the exception of deliberate spec violations for web compatibility, and for the 'sticky' flag, which is not dynamically read by this patch in all cases but rather statically compiled into the RegExp. The latter will require a follow-on patch to implement. A small additional set of tests verifies one particular case, mostly to check whether the flag mechanism works. R=adamk,yangguo@chromium.org LOG=Y BUG=v8:4602 Review URL: https://codereview.chromium.org/1596483005 Cr-Commit-Position: refs/heads/master@{#35068}
-
littledan authored
ES#sec-islabelledfunction specifies that labelled function declarations may not occur as the body of a control flow construct such as an if statement. This patch implements those restrictions, which also eliminates a previous case resulting in a DCHECK failure which is now a SyntaxError. BUG=chromium:595309 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1808373003 Cr-Commit-Position: refs/heads/master@{#35049}
-
- 21 Mar, 2016 2 commits
-
-
caitpotter88 authored
Enables the Scanner to provide a better error message when errors occur in escape sequences, numbers, strings, etc. BUG=v8:4829, v8:3230 LOG=N R=adamk@chromium.org, littledan@chromium.org Review URL: https://codereview.chromium.org/1793913002 Cr-Commit-Position: refs/heads/master@{#34966}
-
mstarzinger authored
This rebaselines all our internal tests for error messages thrown by the implementation of 'instanceof' to the new ES6 semantics. It also applies a minor rephrasing to the messages in question. R=rossberg@chromium.org BUG=v8:4447 LOG=n Review URL: https://codereview.chromium.org/1822663002 Cr-Commit-Position: refs/heads/master@{#34940}
-
- 18 Mar, 2016 1 commit
-
-
mvstanton authored
We need one message in case the function is not an object, and another if it was an object but not callable. R=mstarzinger@chromium.org, rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1814823002 Cr-Commit-Position: refs/heads/master@{#34883}
-
- 10 Mar, 2016 2 commits
-
-
littledan authored
This check is guaranteed by the Promise spec and tested by test262 tests. It only has to run for subclasses. This patch adds the check to the Promise code. BUG=v8:4633 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1780823003 Cr-Commit-Position: refs/heads/master@{#34693}
-
rossberg authored
R=mstarzinger@chromium.org,bmeurer@chromium.org,adamk@chromium.org BUG=v8:3956 LOG=Y Review URL: https://codereview.chromium.org/1773653002 Cr-Commit-Position: refs/heads/master@{#34669}
-
- 03 Mar, 2016 1 commit
-
-
littledan authored
ES2015 generally bans FunctionDeclarations in positions which expect a Statement, as opposed to a StatementListItem, such as a FunctionDeclaration which constitutes the body of a for loop. However, Annex B 3.2 and 3.4 make exceptions for labeled function declarations and function declarations as the body of an if statement in sloppy mode, in the latter case specifying that the semantics are as if the function declaration occurred in a block. Chrome has historically permitted further extensions, for the body of any flow control construct. This patch addresses both the syntactic and semantic mismatches between V8 and the spec. For the semantic mismatch, function declarations as the body of if statements change from unconditionally hoisting in certain cases to acquiring the sloppy mode function in block semantics (based on Annex B 3.3). For the extra syntax permitted, this patch adds a flag, --harmony-restrictive-declarations, which excludes disallowed function declaration cases. A new UseCounter, LegacyFunctionDeclaration, is added to count how often function declarations occur as the body of other constructs in sloppy mode. With this patch, the code generally follows the form of the specification with respect to parsing FunctionDeclarations, rather than allowing them in arbitrary Statement positions, and makes it more clear where our extensions occur. BUG=v8:4647 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1757543003 Cr-Commit-Position: refs/heads/master@{#34470}
-
- 02 Mar, 2016 1 commit
-
-
yangguo authored
It used to say "Unexpected token ILLEGAL", now it says "Invalid or unexpected token". R=jkummerow@chromium.org BUG=chromium:257405 LOG=N Review URL: https://codereview.chromium.org/1758663002 Cr-Commit-Position: refs/heads/master@{#34431}
-
- 01 Mar, 2016 2 commits
-
-
littledan authored
Runtime asserts are were previously a bit annoying to debug, due to the lack of a useful error message, even in debug mode. This patch prints out some more information in debug mode for runtime assert failures while preserving their exception-throwing semantics. While we're at it, it requires a semicolon after RUNTIME_ASSERT macro invocations. ``` $ rlwrap out/Debug/d8 --allow-natives-syntax V8 version 5.1.0 (candidate) d8> %ArrayBufferNeuter(1) # # Runtime error in ../../src/runtime/runtime-typedarray.cc, line 52 # # args[0]->IsJSArrayBuffer() ==== C stack trace =============================== 1: 0xf70ab5 2: 0xadeebf 3: 0xadedd4 4: 0x2ef17630693b (d8):1: illegal access %ArrayBufferNeuter(1) ^ d8> ``` Also give the other 'illegal access' case (a special SyntaxError type) a more descriptive error message for its sole usage. R=adamk Review URL: https://codereview.chromium.org/1748183002 Cr-Commit-Position: refs/heads/master@{#34401}
-
mstarzinger authored
R=bmeurer@chromium.org BUG=v8:3956 LOG=n Review URL: https://codereview.chromium.org/1731063007 Cr-Commit-Position: refs/heads/master@{#34398}
-
- 29 Feb, 2016 1 commit
-
-
neis authored
R=littledan@chromium.org BUG= Review URL: https://codereview.chromium.org/1746713002 Cr-Commit-Position: refs/heads/master@{#34366}
-
- 26 Feb, 2016 1 commit
-
-
littledan authored
ES2015 allows strict mode block scoped function declarations; weaken the error message about misuse to allow this. BUG=v8:2198 LOG=Y R=adamk Review URL: https://codereview.chromium.org/1741903002 Cr-Commit-Position: refs/heads/master@{#34339}
-
- 19 Feb, 2016 1 commit
-
-
mvstanton authored
This is a rework of the instanceof operator to support ES6 semantics (as per section 12.10.4 of the spec: https://tc39.github.io/ecma262/#sec-instanceofoperator). It's behind flag --harmony-instanceof for now, which is turned on for staging. BUG=v8:4447 LOG=N Review URL: https://codereview.chromium.org/1692713005 Cr-Commit-Position: refs/heads/master@{#34170}
-
- 18 Feb, 2016 4 commits
-
-
verwaest authored
Revert of Use displayName in Error.stack rendering if present. (patchset #1 id:1 of https://codereview.chromium.org/1706823003/ ) Reason for revert: See Domenic's comment on the V8 bug. Original issue's description: > Use displayName in Error.stack rendering if present. > > BUG=v8:4761 > LOG=y > > Committed: https://crrev.com/953874e974037e7e96ef282a7078760ccc905878 > Cr-Commit-Position: refs/heads/master@{#34105} TBR=jochen@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4761 Review URL: https://codereview.chromium.org/1713663002 Cr-Commit-Position: refs/heads/master@{#34129}
-
adamk authored
This frees up one bit in FunctionKind, which I plan to make slightly more syntactic info about functions available in SharedFunctionInfo (needed for ES2015 Function.name support). BUG=v8:3956, v8:4760 LOG=n Review URL: https://codereview.chromium.org/1704223002 Cr-Commit-Position: refs/heads/master@{#34125}
-
rossberg authored
Implements iterator finalisation by desugaring for-of loops with an additional try-finally wrapper. See comment in parser.cc for details. Also improved some AST printing facilities while there. @Ross, I had to disable the bytecode generation test for for-of, because it got completely out of hand after this change (the new bytecode has 150+ lines). See the TODO that I assigned to you. Patch set 1 is WIP patch by Georg (http://crrev.com/1695583003), patch set 2 relative changes. @Georg, FYI, I changed the following: - Moved try-finally out of the loop body, for performance, and in order to be able to handle `continue` correctly. - Fixed scope management in ParseForStatement, which was the cause for the variable allocation failure. - Fixed pre-existing zone initialisation bug in rewriter, which caused the crashes. - Enabled all tests, adjusted a few others, added a couple more. BUG=v8:2214 LOG=Y Review URL: https://codereview.chromium.org/1695393003 Cr-Commit-Position: refs/heads/master@{#34111}
-
verwaest authored
BUG=v8:4761 LOG=y Review URL: https://codereview.chromium.org/1706823003 Cr-Commit-Position: refs/heads/master@{#34105}
-
- 16 Feb, 2016 1 commit
-
-
caitpotter88 authored
BUG=v8:4756 LOG=N R=adamk@chromium.org, littledan@chromium.org, wingo@igalia.com Review URL: https://codereview.chromium.org/1700123003 Cr-Commit-Position: refs/heads/master@{#34050}
-
- 10 Feb, 2016 1 commit
-
-
yangguo authored
R=jochen@chromium.org, verwaest@chromium.org BUG=chromium:585724 LOG=N Review URL: https://codereview.chromium.org/1681513002 Cr-Commit-Position: refs/heads/master@{#33864}
-
- 04 Feb, 2016 2 commits
-
-
adamk authored
Review URL: https://codereview.chromium.org/1663773003 Cr-Commit-Position: refs/heads/master@{#33748}
-
neis authored
This CL deals with yield* by desugaring it in the parser. Hence the full-codegen implementation of it becomes obsolete and can be removed in a future CL. The only change in semantics should be that the results of the iterator's next and throw methods are checked to be objects, which didn't happen before but is required by the spec. BUG= Review URL: https://codereview.chromium.org/1643903003 Cr-Commit-Position: refs/heads/master@{#33735}
-