- 01 Sep, 2016 2 commits
-
-
mtrofin authored
This unblocks avoiding the separate code template. In the upcoming CL doing away with code templates, We need to track instances through the module object, which needs to be separate from the compiled module data, which is then shared with the first instance. This CL ensures we have the object available in the asm.js scenario, too. Note that this CL also unifies the error messaging when module decoding fails. BUG=v8:5316 Review-Url: https://codereview.chromium.org/2299873002 Cr-Commit-Position: refs/heads/master@{#39097}
-
jochen authored
The plan is to also use it for With and Catch scopes, so all kinds of contexts have a pointer back to their ScopeInfo R=neis@chromium.org,marja@chromium.org BUG=v8:5215 Review-Url: https://codereview.chromium.org/2301913002 Cr-Commit-Position: refs/heads/master@{#39092}
-
- 31 Aug, 2016 1 commit
-
-
marja authored
This way, many files which only need CompilationInfo but not compiler.h and its dependencies can include just compilation-info.h. BUG= Review-Url: https://codereview.chromium.org/2284313003 Cr-Commit-Position: refs/heads/master@{#39038}
-
- 30 Aug, 2016 1 commit
-
-
ahaas authored
If the input of grow-memory was not representable as a SMI, then the input was not passed correctly to the runtime, which caused a crash. With this CL the input of grow-memory is checked before the runtime is called. R=titzer@chromium.org, gdeepti@chromium.org TEST=mjsunit/wasm/grow-memory.js:testGrowMemoryTrapsWithNonSmiInput() Review-Url: https://codereview.chromium.org/2288773002 Cr-Commit-Position: refs/heads/master@{#39022}
-
- 29 Aug, 2016 3 commits
-
-
mtrofin authored
This unblocks moving off having to hold on to a compiled module template. Once we don't have the template, when we have a single instance, the instance and wasm module share the same compiled code. We will want to clear that code off instance-specific stuff, when the instance is unreferenced and should be GC-ed (stuff like the instance heap, for instance). However, the deopt data will maintain a strong reference, blocking the GC: the module object strongly references the compiled code, which strongly references the instance object through the deopt data. This change addresses that by making that last reference weak. BUG=v8:5316 Review-Url: https://codereview.chromium.org/2284683005 Cr-Commit-Position: refs/heads/master@{#38990}
-
verwaest authored
This additionally gets rid of old approach to global shortcuts. BUG=v8:5209 Review-Url: https://codereview.chromium.org/2287173002 Cr-Commit-Position: refs/heads/master@{#38980}
-
bmeurer authored
These JavaScript operators were special hacks to ensure that we always operate on Smis for the magic for-in index variable, but this never really worked in the OSR case, because the OsrValue for the index variable didn't have the proper information (that we have for the JSForInPrepare in the non-OSR case). Now that we have loop induction variable analysis and binary operation hints, we can just use JSLessThan and JSAdd instead with appropriate Smi hints, which handle the OSR case by inserting Smi checks (that are always true). Thanks to OSR deconstruction and loop peeling these Smi checks will be hoisted so they don't hurt the OSR case too much. Drive-by-change: Rename the ForInDone bytecode to ForInContinue, since we have to lower it to JSLessThan to get the loop induction variable goodness. R=epertoso@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2289613002 Cr-Commit-Position: refs/heads/master@{#38968}
-
- 25 Aug, 2016 1 commit
-
-
jkummerow authored
Unlike Crankshaft, Turbofan does not provide a context when trying to grow elements. Depending on the code path we might end up updating transitioning elements kinds in allocation sites for which we need access to the current context. Unlike GrowCapacityAndConvert, the newly introduced GrowCapacity simply returns false in cases where map transitions are involved. BUG=chromium:637279 Patch by Camillo Bruni <cbruni@chromium.org>, originally reviewed at https://codereview.chromium.org/2244983004/ Review-Url: https://codereview.chromium.org/2252393002 Cr-Commit-Position: refs/heads/master@{#38901}
-
- 24 Aug, 2016 2 commits
-
-
jgruber authored
A FrameArray encodes information about a set of stack frames into a fixed array. This commit is a pure refactoring to make the structure of fixed array-encoded frames explicit. BUG= Review-Url: https://codereview.chromium.org/2270783002 Cr-Commit-Position: refs/heads/master@{#38852}
-
littledan authored
To make async/await catch prediction work well, this patch regularizes the exception events sent to DevTools from various places in the Promise lifecycle. The core is that there should be an exception event when the rejection first starts, rather than when it is propagated. - Several cases within Promise code which propagate errors are modified to not trigger a new ExceptionEvent in that case, such as .then on a rejected Promise and returning a rejected Promise from .then, as well as Promise.race and Promise.all. - Make Promise.reject() create an ExceptionEvent, subject to catch prediction based on the Promise stack. This is important so that, e.g., if "await Promise.reject()" will trigger a new throw (rather than a silent rethrow of something that never triggered an event in the first place). BUG=v8:5167 Review-Url: https://codereview.chromium.org/2244003003 Cr-Commit-Position: refs/heads/master@{#38847}
-
- 23 Aug, 2016 1 commit
-
-
bradnelson authored
Make use of %IsAsmWasmCode in place of Wasm.instantiateModuleFromAsm, in order to reduce the surface area of the Wasm object, and to focus on testing asm.js coming in via the parser. Ignore extra CONST_LEGACY assignment introduced by the parser when modules have the form: (function Foo(a, b, c) {..}); This requires both a validator and AsmWasmBuilder change. Move stdlib use collection to import time, to reject modules that import a function, even if not used. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 LOG=N R=jpp@chromium.org,titzer@chromium.org Review-Url: https://codereview.chromium.org/2264913002 Cr-Commit-Position: refs/heads/master@{#38806}
-
- 22 Aug, 2016 3 commits
-
-
mattloring authored
Includes fast paths in the runtime for DictionaryElementsAccessor, FastSmiOrObjectElementsAccessor, FastDoubleElementsAccessor, TypedElementsAccessor, and SloppyArgumentsElementsAccessor. BUG= Review-Url: https://codereview.chromium.org/2232063002 Cr-Commit-Position: refs/heads/master@{#38800}
-
jgruber authored
CallPrinter currently has only a single use, namely to print the call site when throwing CalledNonCallable (ConstructedNonConstructable) errors. This ensures that unicode call sites such as "あいう"() are printed correctly by using an IncrementalStringBuilder internally. BUG=637167 Review-Url: https://codereview.chromium.org/2265073002 Cr-Commit-Position: refs/heads/master@{#38790}
-
marja authored
This makes us able to get rid of dependencies to parser.h from places which only need the ParseInfo, and also gets rid of the curious Parser <-> Compiler circular dependency. Also IWYUd where necessary. BUG= Review-Url: https://codereview.chromium.org/2268513002 Cr-Commit-Position: refs/heads/master@{#38777}
-
- 19 Aug, 2016 2 commits
-
-
bradnelson authored
Record which asm.js stdlib members are used and add a check that NaN is actually correctly set. Other stdlib members to be added in a later change. Also add a stdlib argument to Wasm.instantiateModuleFromAsm, in preparation for that function to be replaced by normal asm.js instantiation. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 LOG=N R=jpp@chromium.org,titzer@chromium.org Review-Url: https://codereview.chromium.org/2251433002 Cr-Commit-Position: refs/heads/master@{#38760}
-
marja authored
Rebuilding (after touching certain files) is crazy slow because includes are out of control. Fixing it: - Don't include stuff in headers unless necessary. - Include the stuff you need, not some other stuff that happens to include the stuff you need. BUG=v8:5294 Review-Url: https://codereview.chromium.org/2260483002 Cr-Commit-Position: refs/heads/master@{#38740}
-
- 18 Aug, 2016 10 commits
-
-
jshin authored
Also add a test for the return object of getCanonicalLocaleList(). See https://github.com/tc39/test262/issues/745 for more details. BUG=v8:5012 TEST=test262/intl402/Intl/getCanonicalLocales/* TEST=intl/general/getCanonicalLocales Review-Url: https://codereview.chromium.org/2239523002 Cr-Commit-Position: refs/heads/master@{#38733}
-
verwaest authored
Use bool is_strict_ to encode language_mode in scopes using a single bit. BUG= Review-Url: https://codereview.chromium.org/2261463002 Cr-Commit-Position: refs/heads/master@{#38724}
-
ahaas authored
As required by the spec, ToJS now throws a TypeError fit I64 values instead of truncating the I64 value to I32. To throw a TypeError I introduced a new runtime function because the existing Runtime::kThrowWasmError does not throw a TypeError. Since we have calls to two runtime functions now, and an additional one is needed for stack checks, I extracted the call to runtime functions into a helper function. R=titzer@chromium.org TEST=mjsunit/wasm/ffi-error.js:I64InSignatureThrows Review-Url: https://codereview.chromium.org/2254803002 Cr-Commit-Position: refs/heads/master@{#38718}
-
hablich authored
Revert of There are only 2 language modes, not 3 (patchset #4 id:60001 of https://codereview.chromium.org/2250703003/ ) Reason for revert: Breaks ARM and MIPS builds e.g. https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20debug%20builder/builds/2479/steps/compile/logs/stdio Original issue's description: > There are only 2 language modes, not 3 > > BUG= > > Committed: https://crrev.com/39764ba293412adde99a77a66d0750695312e006 > Cr-Commit-Position: refs/heads/master@{#38704} TBR=neis@chromium.org,marja@chromium.org,verwaest@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/2257133002 Cr-Commit-Position: refs/heads/master@{#38714}
-
hablich authored
Revert of Replace LANGUAGE_END with LAST_LANGUAGE_MODE (patchset #1 id:1 of https://codereview.chromium.org/2257703003/ ) Reason for revert: Needed to land revert https://codereview.chromium.org/2257133002/ Original issue's description: > Replace LANGUAGE_END with LAST_LANGUAGE_MODE > > BUG= > > Committed: https://crrev.com/9324efca85710ebb14f21ef8476447e21cbe3f35 > Cr-Commit-Position: refs/heads/master@{#38707} TBR=neis@chromium.org,marja@chromium.org,verwaest@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/2259853002 Cr-Commit-Position: refs/heads/master@{#38713}
-
marja authored
Rebuilding (after touching certain files) is crazy slow because includes are out of control. Fixing it: - Don't include stuff in headers unless necessary. - Include the stuff you need, not some other stuff that happens to include the stuff you need. BUG=v8:5294 Review-Url: https://codereview.chromium.org/2246203005 Cr-Commit-Position: refs/heads/master@{#38708}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2257703003 Cr-Commit-Position: refs/heads/master@{#38707}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2250703003 Cr-Commit-Position: refs/heads/master@{#38704}
-
jgruber authored
Revert of Use a custom Struct for stack trace storage (patchset #4 id:60001 of https://codereview.chromium.org/2230953002/ ) Reason for revert: Performance regressions in Gameboy, Life, CodeLoad and others. See crbug.com/638210. Original issue's description: > Refactor data structures for simple stack traces > > Simple stack traces are captured through Isolate::CaptureSimpleStackTrace. > Captured frames are stored in a FixedArray, which in turn is stored as a > property (using a private symbol) on the error object itself. Actual formatting > of the textual stack trace is done lazily when the user reads the stack > property of the error object. > > This would involve many conversions back and forth between index-encoded raw > data (receiver, function, offset and code), JS CallSite objects, and C++ > CallSite objects. > > This commit refactors the C++ CallSite class into a Struct class called > StackTraceFrame, which is the new single point of truth frame information. > Isolate::CaptureSimpleStackTrace stores an array of StackTraceFrames, and JS > CallSite objects (now created only when the user specifies custom stack trace > formatting through Error.prepareStackTrace) internally only store a reference > to a StackTraceFrame. > > BUG= > > Committed: https://crrev.com/b4c1aefb9c369f1a33a6ca94a5de9b06ea4bf5c4 > Cr-Commit-Position: refs/heads/master@{#38645} TBR=yangguo@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= Review-Url: https://codereview.chromium.org/2252783007 Cr-Commit-Position: refs/heads/master@{#38700}
-
mstarzinger authored
This fixes the case where a module is instantiated twice via the same closure when in the meantime another closure has destroyed and removed the WASM data attached to the SharedFunctionInfo. R=bradnelson@chromium.org TEST=mjsunit/asm/asm-validation BUG=v8:4203 Review-Url: https://codereview.chromium.org/2253613004 Cr-Commit-Position: refs/heads/master@{#38696}
-
- 17 Aug, 2016 1 commit
-
-
bradnelson authored
Our previous per-arch instantiation thunks for asm.js didn't support modules that had or were called with anything other than 3 arguments. Adding support for this. Addding a runtime test method to check if asm validation succeeded. Adding a test of validation with different argument count combinations. R=mstarzinger@chromium.org TEST=mjsunit/asm/asm-validator.js BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 Review-Url: https://codereview.chromium.org/2229723002 Cr-Commit-Position: refs/heads/master@{#38688}
-
- 16 Aug, 2016 1 commit
-
-
jgruber authored
Simple stack traces are captured through Isolate::CaptureSimpleStackTrace. Captured frames are stored in a FixedArray, which in turn is stored as a property (using a private symbol) on the error object itself. Actual formatting of the textual stack trace is done lazily when the user reads the stack property of the error object. This would involve many conversions back and forth between index-encoded raw data (receiver, function, offset and code), JS CallSite objects, and C++ CallSite objects. This commit refactors the C++ CallSite class into a Struct class called StackTraceFrame, which is the new single point of truth frame information. Isolate::CaptureSimpleStackTrace stores an array of StackTraceFrames, and JS CallSite objects (now created only when the user specifies custom stack trace formatting through Error.prepareStackTrace) internally only store a reference to a StackTraceFrame. BUG= Review-Url: https://codereview.chromium.org/2230953002 Cr-Commit-Position: refs/heads/master@{#38645}
-
- 12 Aug, 2016 4 commits
-
-
jshin authored
Throw 'Range Error: invalid string length' when the result of case mapping is longer than the max string length (kMaxLength in objects.h = 1 << 28 - 16). This is for case mapping with ICU. A new test (case-mapping-slow.js) is added with PASS,SLOW. It's configured to skip unless arch=x64 and mode=release and not on simulator. This is a reattempt to land https://codereview.chromium.org/2236593002 that was reverted. BUG=v8:5271 TEST=intl/general/case-mapping-slow.js with --icu_case_mapping Review-Url: https://codereview.chromium.org/2236963003 Cr-Commit-Position: refs/heads/master@{#38626}
-
jkummerow authored
The hand-written KeyedLoadIC_Megamorphic stub didn't care about JSArray lengths, which made it lenient towards said lengths being wrong, but it will soon fix that bug and thereby become more strict. LiveEdit: factory->NewJSArray(capacity) doesn't set a length, so set it manually. RegExp: to avoid having to take care of array length updating in the RegExpExecStub, just use a JSObject instead. Review-Url: https://codereview.chromium.org/2244673002 Cr-Commit-Position: refs/heads/master@{#38624}
-
yangguo authored
R=jgruber@chromium.org, mstarzinger@chromium.org BUG=v8:5265 Review-Url: https://codereview.chromium.org/2246483002 Cr-Commit-Position: refs/heads/master@{#38621}
-
jgruber authored
This bug was triggered by a very specific combination: * A context-allocated variable at script scope. * OSR optimization. * A scheduled breakpoint, which triggers at stack checks. Stack checks differ from other possible breakpoint locations in that the context (among other things) may be in a register and not on the stack, making it impossible to recover during deoptimization. The frame_inspector then returns undefined when asked for the context. In GetFrameDetails, handle this case by omitting all context-allocated variables. BUG=v8:5279 Review-Url: https://codereview.chromium.org/2245603002 Cr-Commit-Position: refs/heads/master@{#38611}
-
- 11 Aug, 2016 2 commits
-
-
machenbach authored
Revert of Throw when case mapping result > max string length (patchset #3 id:40001 of https://codereview.chromium.org/2236593002/ ) Reason for revert: The test is very flaky and made it on many configurations into the top 10 of the slowest tests: https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm/builds/845 https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/15418 https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/12369/steps/Check/logs/durations Original issue's description: > Throw when case mapping result > max string length > > Throw 'Range Error: invalid string length' when the result of > case mapping is longer than the max string length (kMaxLength in > objects.h = 1 << 28 - 16). > > This is for case mapping with ICU. > > BUG=v8:5271 > TEST=intl/general/case-mapping.js with --icu_case_mapping > > Committed: https://crrev.com/c7a2046670468b900b9dbbb4ce45beb5e0e717fd > Cr-Commit-Position: refs/heads/master@{#38565} TBR=littledan@chromium.org,jshin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5271 Review-Url: https://codereview.chromium.org/2236393002 Cr-Commit-Position: refs/heads/master@{#38582}
-
ahaas authored
With this CL all kinds of Callable can imported into wasm. Please take a special look at the context that is used now in the WasmToJSWrapper. BUG=633895 TEST=mjsunit/wasm/ffi.js Review-Url: https://codereview.chromium.org/2208703002 Cr-Commit-Position: refs/heads/master@{#38569}
-
- 10 Aug, 2016 6 commits
-
-
jshin authored
Throw 'Range Error: invalid string length' when the result of case mapping is longer than the max string length (kMaxLength in objects.h = 1 << 28 - 16). This is for case mapping with ICU. BUG=v8:5271 TEST=intl/general/case-mapping.js with --icu_case_mapping Review-Url: https://codereview.chromium.org/2236593002 Cr-Commit-Position: refs/heads/master@{#38565}
-
ishell authored
... and let the stub ask the IC whether it should throw or not when the property was not found. This CL undoes ast-numbering changes made here: https://codereview.chromium.org/2219303002/ BUG=chromium:634467 TBR=verwaest@chromium.org Review-Url: https://codereview.chromium.org/2220203002 Cr-Commit-Position: refs/heads/master@{#38549}
-
mstarzinger authored
This switches the interface of the runtime profiler to use frames as opposed to functions for performing on-stack replacement. Requests for such replacements need to target a specific frame. This will enable us to activate bytecode as well as baseline code for the same function. The existing %OptimizeOsr runtime function also had to adapted and now takes an optional stack depth to target a specific stack frame. R=bmeurer@chromium.org BUG=v8:4764 Review-Url: https://codereview.chromium.org/2230783004 Cr-Commit-Position: refs/heads/master@{#38548}
-
mstarzinger authored
This adds assertions to generator support functions that distinguish between old-style and new-style generators which make sure only one of those styles is actually used. Even though normal functions can soon be mixed (bytecode and baseline code at the same time), generator functions are still exclusively in only one tier. R=neis@chromium.org BUG=v8:5265 Review-Url: https://codereview.chromium.org/2233863002 Cr-Commit-Position: refs/heads/master@{#38541}
-
mstarzinger authored
This adds the --ignition-preserve-bytecode flag which will preserve any existing bytecode, even if a tier-up to baseline code is performed. This is preparatory work in order to allow mixed stacks where bytecode and baseline code can be active at the same time. It also adds a {HasBaselineCode} predicate symmetric to the existing {HasBytecodeArray} predicate. Both predicates are independent and any combination of answers is valid. Further adaptation of the rest of the runtime will be done step-wise in follow-up changes. R=yangguo@chromium.org BUG=v8:5265 Review-Url: https://codereview.chromium.org/2224923003 Cr-Commit-Position: refs/heads/master@{#38540}
-
jgruber authored
The scopes of suspended generators can now be accessed through GeneratorMirror (similar to FrameMirror). BUG=v8:5235 Review-Url: https://codereview.chromium.org/2228393002 Cr-Commit-Position: refs/heads/master@{#38530}
-