- 26 Feb, 2016 10 commits
-
-
bmeurer authored
The %TailCall runtime entry and the %_TailCall intrinsic is not used, and will never be used (because %TailCall doesn't actually do a tail call). We will soon have proper ES6 tail calls, which are correct and properly tested. The %Apply runtime entry is basically a super-slow, less correct version of Reflect.apply, so we can as well just use Reflect.apply, which is exposed to builtins via %reflect_apply. R=ishell@chromium.org Review URL: https://codereview.chromium.org/1739233002 Cr-Commit-Position: refs/heads/master@{#34317}
-
bmeurer authored
The %_Call intrinsic (if supported by the compiler) is lowered directly to the Call builtin and thus throws a TypeError if the target is not callable. The %Call runtime function also eventually calls into the Call builtin, but had an early abort if the target is not a JSReceiver, which is unnecessary and leads to various test failures for Ignition. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1727833006 Cr-Commit-Position: refs/heads/master@{#34316}
-
bmeurer authored
The treatment of different undetectable objects was inconsistent after the latest changes to the undetectable bit in the maps. Given two different undetectable JSObjects a and b, a monomorphic CompareIC would say false for a == b, while the rest of the system (including the generic case for the CompareIC) would say true. The fix is rather straight-forward: We just go generic on a CompareIC once we see an undetectable JSObject. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1735863004 Cr-Commit-Position: refs/heads/master@{#34315}
-
littledan authored
Revert of Make Intl install properties more like how other builtins do (patchset #1 id:1 of https://codereview.chromium.org/1733293003/ ) Reason for revert: Breaks a bot: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/6812 Original issue's description: > Make Intl install properties more like how other builtins do > > Intl has been somewhat of an oddball for how it integrates with V8. > One aspect is that it largely didn't use utils to install itself > into the snapshot, which led to some missing names, which new > test262 tests check for, and duplicated code. This patch brings > Intl a bit closer to how the rest of the builtins do things, though > not entirely as it is currently structured to do unusual things, > such as creating new constructors from JavaScript rather than C++. > New test262 tests check for some of the names that are added in > this patch. > > R=adamk > CC=jshin > BUG=v8:4778 > LOG=Y > > Committed: https://crrev.com/a40830577d80f699282dd83864619656b7a7966c > Cr-Commit-Position: refs/heads/master@{#34311} TBR=adamk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4778 Review URL: https://codereview.chromium.org/1737873003 Cr-Commit-Position: refs/heads/master@{#34314}
-
littledan authored
Revert of Test262 roll, 2016-2-23 (patchset #2 id:20001 of https://codereview.chromium.org/1738033002/ ) Reason for revert: An Intl change that this depends on breaks a bot Original issue's description: > Test262 roll, 2016-2-23 > > R=adamk > > Committed: https://crrev.com/34492040fbfb04fead21416245c8696b9847e751 > Cr-Commit-Position: refs/heads/master@{#34312} TBR=adamk@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1736223002 Cr-Commit-Position: refs/heads/master@{#34313}
-
littledan authored
R=adamk Review URL: https://codereview.chromium.org/1738033002 Cr-Commit-Position: refs/heads/master@{#34312}
-
littledan authored
Intl has been somewhat of an oddball for how it integrates with V8. One aspect is that it largely didn't use utils to install itself into the snapshot, which led to some missing names, which new test262 tests check for, and duplicated code. This patch brings Intl a bit closer to how the rest of the builtins do things, though not entirely as it is currently structured to do unusual things, such as creating new constructors from JavaScript rather than C++. New test262 tests check for some of the names that are added in this patch. R=adamk CC=jshin BUG=v8:4778 LOG=Y Review URL: https://codereview.chromium.org/1733293003 Cr-Commit-Position: refs/heads/master@{#34311}
-
littledan authored
BUG=v8:4315 R=adamk LOG=Y Review URL: https://codereview.chromium.org/1734223004 Cr-Commit-Position: refs/heads/master@{#34310}
-
v8-autoroll authored
Rolling v8/base/trace_event/common to 81b7b6f531ad2375140b2a5f4d3a803e5ba2514c Rolling v8/buildtools to 14288a03a92856fe1fc296d39e6a25c2d83cd6cf Rolling v8/tools/swarming_client to a72f46e42dba1335e8001499b4621acad2d26728 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1737243003 Cr-Commit-Position: refs/heads/master@{#34309}
-
adamk authored
Revert of [compiler] Drop the CompareNilIC. (patchset #4 id:60001 of https://codereview.chromium.org/1722193002/ ) Reason for revert: Speculative revert in attempt to fix #2 crasher on canary. Original issue's description: > [compiler] Drop the CompareNilIC. > > Since both null and undefined are also marked as undetectable now, we > can just test that bit instead of having the CompareNilIC try to collect > feedback to speed up the general case (without the undetectable bit > being used). > > Drive-by-fix: Update the type system to match the new handling of > undetectable in the runtime. > > R=danno@chromium.org > > Committed: https://crrev.com/666aec0348c8793e61c8633dee7ad29a514239ba > Cr-Commit-Position: refs/heads/master@{#34237} TBR=danno@chromium.org,verwaest@chromium.org,bmeurer@chromium.org LOG=y BUG=chromium:589897 NOTRY=true Review URL: https://codereview.chromium.org/1743433002 Cr-Commit-Position: refs/heads/master@{#34308}
-
- 25 Feb, 2016 30 commits
-
-
littledan authored
This patch moves iterator finalization (calling .return() when a for-of loop exits early) to shipping. The only part of this feature which is currently known to be missing is destructuring--.return() should be also be called when destructuring with an array which does not end in a rest pattern, but it currently does not. The rest of this feature, including calling .return() from certain builtins, is implemented. R=adamk BUG=v8:3566 LOG=Y Review URL: https://codereview.chromium.org/1738463003 Cr-Commit-Position: refs/heads/master@{#34307}
-
mbrandy authored
Port 55b4df73 Original commit message: Only use one set of %StrictEquals/%StrictNotEquals and %Equals/%NotEquals runtime entries for both the interpreter and the old-style CompareICStub. The long-term plan is to update the CompareICStub to also return boolean values, and even allow some more code sharing with the interpreter there. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1737853002 Cr-Commit-Position: refs/heads/master@{#34306}
-
dgozman authored
This calback is run after an attempt to run microtasks. BUG=chromium:585949 LOG=Y Review URL: https://codereview.chromium.org/1731773005 Cr-Commit-Position: refs/heads/master@{#34305}
-
ulan authored
BUG=v8:4781 LOG=NO Review URL: https://codereview.chromium.org/1740533004 Cr-Commit-Position: refs/heads/master@{#34304}
-
bmeurer authored
Only use one set of %StrictEquals/%StrictNotEquals and %Equals/%NotEquals runtime entries for both the interpreter and the old-style CompareICStub. The long-term plan is to update the CompareICStub to also return boolean values, and even allow some more code sharing with the interpreter there. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1738883002 Cr-Commit-Position: refs/heads/master@{#34303}
-
ulan authored
Reland "Replace slots buffer with remembered set. (patchset #14 id:250001 of https://codereview.chromium.org/1703823002/ )" This reverts commit 9146bc5e. This contains a fix for the following crash: 1. We record slots for a fixed array. 2. We trim the fixed array, so that some recorded slots are now in free space. 3. During mark-compact we sweep the page with the fixed array. Now free list items contain memory with recorded slots. 4. We evacuate a byte array using the new free list items. 5. We iterate slots that are now inside the byte array and crash. BUG=chromium:589413,chromium:578883 LOG=NO Review URL: https://codereview.chromium.org/1735523002 Cr-Commit-Position: refs/heads/master@{#34302}
-
alan.li authored
operators.' Port c129aa4d Original commit message: These macro operators represent a conditional eager deoptimization exit without explicit branching, which greatly reduces overhead of both scheduling and register allocation, and thereby greatly reduces overall compilation time, esp. when there are a lot of eager deoptimization exits. BUG= TEST=mjsunit/asm/embenchen/fasta Review URL: https://codereview.chromium.org/1736653003 Cr-Commit-Position: refs/heads/master@{#34301}
-
alan.li authored
Port 1f5b84e4 TEST=test-run-machops/RunInt64SubWithOverflowImm, test-run-machops/RunInt64AddWithOverflowImm BUG= Review URL: https://codereview.chromium.org/1714283002 Cr-Commit-Position: refs/heads/master@{#34300}
-
mstarzinger authored
R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1733363002 Cr-Commit-Position: refs/heads/master@{#34299}
-
mattloring authored
It is possible for JS objects to be allocated while we are retrieving the profile. These JS objects can in turn end up getting sampled by the profiler. Adding these to the profile data structures invalidates the iterators that are presently in flight. This change prevents such concurrent modifications from affecting the retrieve operation. BUG= Review URL: https://codereview.chromium.org/1735733002 Cr-Commit-Position: refs/heads/master@{#34298}
-
mstarzinger authored
This adds explicit setters for the SharedFunctionInfo::function_data field. Such setters are safer because they allow for explicit checking of which values are allowed, and they improve readability because the intended semantics become clear for each call-site. Also fix a cctest case along the way. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1730853005 Cr-Commit-Position: refs/heads/master@{#34297}
-
mtrofin authored
We should prefer hints from operands in non-deferred blocks, else we risk sideways moves on the hot path, just to accommodate the register allocator's choice of register assignment in the deferred block. BUG= Review URL: https://codereview.chromium.org/1718223002 Cr-Commit-Position: refs/heads/master@{#34296}
-
ulan authored
BUG=chromium:589413 LOG=NO Review URL: https://codereview.chromium.org/1733333002 Cr-Commit-Position: refs/heads/master@{#34295}
-
jochen authored
BUG= R=littledan@chromium.org Review URL: https://codereview.chromium.org/1735033002 Cr-Commit-Position: refs/heads/master@{#34294}
-
mstarzinger authored
By now the deprecation of strong mode is far enough along that the support present in the interpreter matches the support in the other compilers. Special expectations aren't needed anymore. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1738653003 Cr-Commit-Position: refs/heads/master@{#34293}
-
bmeurer authored
No need to go to the runtime to create a RegExp literal in Ignition, the stub can handle everything. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1737633002 Cr-Commit-Position: refs/heads/master@{#34292}
-
yangguo authored
We otherwise would print the \n from the last line. R=vogelheim@chromium.org Review URL: https://codereview.chromium.org/1738723003 Cr-Commit-Position: refs/heads/master@{#34291}
-
machenbach authored
The steps are slow on dev workstations. Having them run by the bots should be enough. The bots pass the mode explicitly. BUG=chromium:535160 LOG=n TBR=tandrii@chromium.org, kjellander@chromium.org Review URL: https://codereview.chromium.org/1738833002 Cr-Commit-Position: refs/heads/master@{#34290}
-
bmeurer authored
The ForInStep bytecode is essentially a (guaranteed) Smi increment operation. We can do not need to go to the runtime for this operation. R=oth@chromium.org Review URL: https://codereview.chromium.org/1738823002 Cr-Commit-Position: refs/heads/master@{#34289}
-
bmeurer authored
We already have stubs for ToName, ToObject and ToNumber, so we can just use them for Ignition instead of the generic runtime calls. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1736643003 Cr-Commit-Position: refs/heads/master@{#34288}
-
ahaas authored
Comparison operators are lowered using to a lexicographic ordering, e.g. (a,b) <= (c,d) <<>> (a < c) | (a == c) & (b <= d). R=titzer@chromium.org Review URL: https://codereview.chromium.org/1729263002 Cr-Commit-Position: refs/heads/master@{#34287}
-
mstarzinger authored
R=bmeurer@chromium.org BUG=v8:3956 LOG=n Review URL: https://codereview.chromium.org/1736963002 Cr-Commit-Position: refs/heads/master@{#34286}
-
ssanfilippo authored
Bytecode expectations have been moved to external (.golden) files, one per test. Each test in the suite builds a representation of the the compiled bytecode using BytecodeExpectationsPrinter. The output is then compared to the golden file. If the comparision fails, a textual diff can be used to identify the discrepancies. Only the test snippets are left in the cc file, which also allows to make it more compact and meaningful. Leaving the snippets in the cc file was a deliberate choice to allow keeping the "truth" about the tests in the cc file, which will rarely change, as opposed to golden files. Golden files can be generated and kept up to date using generate-bytecode-expectations, which also means that the test suite can be batch updated whenever the bytecode or golden format changes. The golden format has been slightly amended (no more comments about `void*`, add size of the bytecode array) following the consideration made while converting the tests. There is also a fix: BytecodeExpectationsPrinter::top_level_ was left uninitialized, leading to undefined behaviour. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1717293002 Cr-Commit-Position: refs/heads/master@{#34285}
-
yangguo authored
This is to help debugging missing break locations. R=vogelheim@chromium.org Review URL: https://codereview.chromium.org/1732253002 Cr-Commit-Position: refs/heads/master@{#34284}
-
bmeurer authored
We already have a code stub that implements Typeof, so we don't need a special runtime entry here to implement the TypeOf handler. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1732273002 Cr-Commit-Position: refs/heads/master@{#34283}
-
mythria authored
Handles stack overflow in interpreter. 1. When visiting function literal, if the shared function info cannot be found we should return a stack overflow. 2. When visiting the ast graph, if stack overflow happens then all the ast nodes are not visited, so we need to have appropriate handling in the AccumulatorResultScope and RegisterResultScope. 3. MakeBytecode should not return a suceess unconditionally. If there is a stack overflow, it should return false, so RangeError can be thrown. BUG=v8:4280,v8:4680 LOG=N Review URL: https://codereview.chromium.org/1721983005 Cr-Commit-Position: refs/heads/master@{#34282}
-
machenbach authored
Follow up after: https://codereview.chromium.org/1713993002/ BUG=chromium:535160 LOG=n TBR=tandrii@chromium.org, jkummerow@chromium.org Review URL: https://codereview.chromium.org/1733273002 Cr-Commit-Position: refs/heads/master@{#34281}
-
machenbach authored
BUG=v8:4779 LOG=n NOTRY=true TBR=bmeurer@chromium.org, ulan@chromium.org Review URL: https://codereview.chromium.org/1729263006 Cr-Commit-Position: refs/heads/master@{#34280}
-
ahaas authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1724193003 Cr-Commit-Position: refs/heads/master@{#34279}
-
ahaas authored
I turn the test off for now. The problem is that mips does not deal with signalling NaNs as expected. @v8-mips-ports: Could it be that the mips simulator deals differently with signalling NaNs than the actual hardware? The implementation that is tested in these tests assumes that sNaN * 1.0 = qNaN, where the bits of sNaN and qNaN are equal except for the most significant mantissa bit. This assumption holds for the simulator, but seems not to hold for actual mips hardware. Do you know more about that? R=mstarzinger@chromium.org, titzer@chromium.org, v8-mips-ports@googlegroups.com Review URL: https://codereview.chromium.org/1735673003 Cr-Commit-Position: refs/heads/master@{#34278}
-