Commit Graph

36918 Commits

Author SHA1 Message Date
cbruni
83d5b65ae0 Revert of [compiler] Support Object.create(null) inlining in TF (patchset #5 id:80001 of https://codereview.chromium.org/2622723003/ )
Reason for revert:
Breaks buildbot: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20avx2/builds/13399/steps/Benchmarks/logs/stdio

Original issue's description:
> [compiler] Support Object.create(null) inlining in TF
>
> In the ideal case, this will speed up Object.create(null) by ~10x.
>
> Drive-by-fix: Spread usage of new IsSpecialReceiverMap() and
>               IsSpecialReceiverInstanceType(InstanceType) helpers.
>
> BUG=v8:5788
>
> Review-Url: https://codereview.chromium.org/2622723003
> Cr-Commit-Position: refs/heads/master@{#42321}
> Committed: ff7063c7d5

TBR=jarin@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5788

Review-Url: https://codereview.chromium.org/2636493003
Cr-Commit-Position: refs/heads/master@{#42326}
2017-01-13 12:56:03 +00:00
neis
9eb8714262 [modules] Remove dead code.
TBR=adamk@chromium.org
BUG=v8:1569

Review-Url: https://codereview.chromium.org/2621413009
Cr-Commit-Position: refs/heads/master@{#42325}
2017-01-13 12:23:06 +00:00
mstarzinger
4408f8f1d9 [runtime] Change MessageLocation::function to SFI.
This changes the {MessageLocation} structure to no longer contain a
concrete {JSFunction} object but rather a {SharedFunctionInfo}. It is
much easier by now to determine, and also the concrete closure is never
actually being used.

R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2628973005
Cr-Commit-Position: refs/heads/master@{#42324}
2017-01-13 12:14:56 +00:00
bmeurer
1ff4a8178e [turbofan] Add support for (deferred) instance migration.
Fix a deoptimization loop in TurboFan, where we'd constantly fail the
same map check due to not trying instance migration, when there are
migration targets in the map check list. This deoptimization loop
showed up on the React test in Speedometer.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2621423006
Cr-Commit-Position: refs/heads/master@{#42323}
2017-01-13 12:09:52 +00:00
cbruni
124fbe55ec [debugging] Add %Verify() helper and check verify a HeapObject has a Map.
R=jkummerow@chromium.org

Review-Url: https://codereview.chromium.org/2625053006
Cr-Commit-Position: refs/heads/master@{#42322}
2017-01-13 12:05:44 +00:00
cbruni
ff7063c7d5 [compiler] Support Object.create(null) inlining in TF
In the ideal case, this will speed up Object.create(null) by ~10x.

Drive-by-fix: Spread usage of new IsSpecialReceiverMap() and
              IsSpecialReceiverInstanceType(InstanceType) helpers.

BUG=v8:5788

Review-Url: https://codereview.chromium.org/2622723003
Cr-Commit-Position: refs/heads/master@{#42321}
2017-01-13 12:04:35 +00:00
bbudge
497a7e4254 [ARM] Add tolerance to vrecpe, vrsqrte instruction tests.
The simulator implements these exactly, but on ARM hardware,
the estimates are not exact, so CHECK_EQ will fail. This CL adds
a tolerance to the checks.

LOG=N
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2628153003
Cr-Commit-Position: refs/heads/master@{#42320}
2017-01-13 12:03:23 +00:00
ishell
93aca16937 Temporarily skip debugger/debug/es8/async-function-debug-scopes test.
BUG=v8:5837
NOTRY=true

Review-Url: https://codereview.chromium.org/2636473002
Cr-Commit-Position: refs/heads/master@{#42319}
2017-01-13 11:49:21 +00:00
zhengxing.li
6c67cd1886 Fix gcc error for static_cast the parameters of DCHECK_GT macro to unsigned in list.h.
The CL #42279 (https://codereview.chromium.org/2619353006 ) caused a gcc error (-Werror=strict-overflow).

  Here is the error message:
  In file included from .././src/globals.h:15:0,
                   from .././src/allocation.h:9,
                   from .././src/profiler/profile-generator.h:9,
                   from ../src/profiler/profile-generator.cc:5:
  .././src/base/logging.h: In member function ‘void v8::internal::ProfileTree::TraverseDepthFirst(Callback*) [with Callback = v8::internal::DeleteNodesCallback]’:
  .././src/base/logging.h:179:70: error: assuming signed overflow does not occur when assuming that (X - c) > X is always false [-Werror=strict-overflow]
                             : MakeCheckOpString<Lhs, Rhs>(lhs, rhs, msg);        \
                                                                            ^
  .././src/base/logging.h:191:1: note: in expansion of macro ‘DEFINE_CHECK_OP_IMPL’
   DEFINE_CHECK_OP_IMPL(GT, > )
   ^
    CXX(target) /home/zxli/work/google-v8/v8/out/x87.optdebug/obj.target/v8_base/src/regexp/regexp-macro-assembler.o
  cc1plus: all warnings being treated as errors

  This CL fix it.

BUG=

Review-Url: https://codereview.chromium.org/2632633002
Cr-Commit-Position: refs/heads/master@{#42318}
2017-01-13 11:35:32 +00:00
titzer
3badb2369d Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #6 id:100001 of https://codereview.chromium.org/2630553002/ )
Reason for revert:
Still breaks Win64 clang build.

Original issue's description:
> [wasm] Enforce that function bodies end with the \"end\" opcode.
>
> R=rossberg@chromium.org
> BUG=chromium:575167
>
> Review-Url: https://codereview.chromium.org/2630553002
> Cr-Original-Commit-Position: refs/heads/master@{#42286}
> Committed: fcc6e85ec6
> Review-Url: https://codereview.chromium.org/2630553002
> Cr-Commit-Position: refs/heads/master@{#42315}
> Committed: 74a2f9b7d3

TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:575167

Review-Url: https://codereview.chromium.org/2636463002
Cr-Commit-Position: refs/heads/master@{#42317}
2017-01-13 11:32:17 +00:00
jgruber
b26cba7815 Ensure runtime call stats show up for microtasks
Prior to this, traces recorded through chrome://tracing would not
include time spent in RunMicrotasks.

BUG=v8:5382

Review-Url: https://codereview.chromium.org/2592793003
Cr-Commit-Position: refs/heads/master@{#42316}
2017-01-13 10:58:21 +00:00
titzer
74a2f9b7d3 [wasm] Enforce that function bodies end with the \"end\" opcode.
R=rossberg@chromium.org
BUG=chromium:575167

Review-Url: https://codereview.chromium.org/2630553002
Cr-Original-Commit-Position: refs/heads/master@{#42286}
Committed: fcc6e85ec6
Review-Url: https://codereview.chromium.org/2630553002
Cr-Commit-Position: refs/heads/master@{#42315}
2017-01-13 10:50:06 +00:00
mstarzinger
52d05e1218 [runtime] Change JavaScriptFrame::GetFunctions interface.
This adapts the aformentioned interface to no longer return a list of
{JSFunction} objects, but {SharedFunctionInfo} objects instead. Since
deoptimization data only contains the latter as literals, this by now
represents the fast path. All call sites requiring the former can use
the slow path via {JavaScriptFrame::Summarize} instead.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2626213002
Cr-Original-Commit-Position: refs/heads/master@{#42311}
Committed: 25a9364f25
Review-Url: https://codereview.chromium.org/2626213002
Cr-Commit-Position: refs/heads/master@{#42314}
2017-01-13 10:29:13 +00:00
clemensh
79df3f049e Make clemensh owner (wasm, asmjs and general)
R=titzer@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2635463002
Cr-Commit-Position: refs/heads/master@{#42313}
2017-01-13 10:20:44 +00:00
mstarzinger
dcddcc1383 Revert of [runtime] Change JavaScriptFrame::GetFunctions interface. (patchset #2 id:20001 of https://codereview.chromium.org/2626213002/ )
Reason for revert:
Breaks compilation.

Original issue's description:
> [runtime] Change JavaScriptFrame::GetFunctions interface.
>
> This adapts the aformentioned interface to no longer return a list of
> {JSFunction} objects, but {SharedFunctionInfo} objects instead. Since
> deoptimization data only contains the latter as literals, this by now
> represents the fast path. All call sites requiring the former can use
> the slow path via {JavaScriptFrame::Summarize} instead.
>
> R=jarin@chromium.org
>
> Review-Url: https://codereview.chromium.org/2626213002
> Cr-Commit-Position: refs/heads/master@{#42311}
> Committed: 25a9364f25

TBR=jarin@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/2629113004
Cr-Commit-Position: refs/heads/master@{#42312}
2017-01-13 09:25:01 +00:00
mstarzinger
25a9364f25 [runtime] Change JavaScriptFrame::GetFunctions interface.
This adapts the aformentioned interface to no longer return a list of
{JSFunction} objects, but {SharedFunctionInfo} objects instead. Since
deoptimization data only contains the latter as literals, this by now
represents the fast path. All call sites requiring the former can use
the slow path via {JavaScriptFrame::Summarize} instead.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2626213002
Cr-Commit-Position: refs/heads/master@{#42311}
2017-01-13 09:16:29 +00:00
vogelheim
369e5c8cce [build] Have one build target for all v8 fuzzers.
R=machenbach@chromium.org, ahaas@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2632493002
Cr-Commit-Position: refs/heads/master@{#42310}
2017-01-13 09:09:26 +00:00
clemensh
eb04a25f1f [wasm] Instantiate the interpreter on demand
If a breakpoint is set on a wasm function, compile an interpreter entry
stub for it, and replace all calls to the original function by calls to
this interpreter entry.
Also, instantiate a wasm interpreter object on demand and set the
breakpoint there.

R=titzer@chromium.org
BUG=v8:5822

Review-Url: https://codereview.chromium.org/2625093004
Cr-Commit-Position: refs/heads/master@{#42309}
2017-01-13 09:04:00 +00:00
yangguo
865b5e5795 String.prototype.anchor and others should not cause side effects.
R=jgruber@chromium.org
BUG=v8::5836

Review-Url: https://codereview.chromium.org/2628963005
Cr-Commit-Position: refs/heads/master@{#42308}
2017-01-13 08:38:23 +00:00
ishell
831994603b [runtime] Mark maps created as a result of field type or representation generalization as migration targets.
BUG=v8:5444

Review-Url: https://codereview.chromium.org/2379633002
Cr-Commit-Position: refs/heads/master@{#42307}
2017-01-13 08:17:09 +00:00
machenbach
baf5a21751 [foozzie] Fix failure state for non-existing source output
BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,mbarbella@chromium.org

Review-Url: https://codereview.chromium.org/2632623002
Cr-Commit-Position: refs/heads/master@{#42306}
2017-01-13 08:15:32 +00:00
machenbach
00e98a39e3 [foozzie] Improve failure state deduplication
The fuzz test cases now print the original test paths during execution.
This exploits this extra information and reports a hash of only one
original source file from the section that caused a difference.

The hash size is now limited to 3 to avoid possible duplicate
explosion, in case this doesn't work out as expected.

This prepares for patch 3 of:
https://chromereviews.googleplex.com/550337016/

BUG=chromium:673246
NOTRY=true
TBR=tandrii@chromium.org,mbarbella@chromium.org

Review-Url: https://codereview.chromium.org/2620343005
Cr-Commit-Position: refs/heads/master@{#42305}
2017-01-13 06:31:54 +00:00
bjaideep
d730551edc Revert of PPC/s390: Internalize strings in-place (reland) (patchset #1 id:1 of https://codereview.chromium.org/2628643002/ )
Reason for revert:
Original CL https://codereview.chromium.org/2626893005 got reverted.

Original issue's description:
> PPC/s390: Internalize strings in-place (reland)
>
> Port 4c699e349a
>
> Original Commit Message:
>
>     using newly introduced ThinStrings, which store a pointer to the actual,
>     internalized string they represent.
>
>     (Previously landed as #42168 / af51befe69.
>
> R=jkummerow@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
> BUG=v8:4520
> LOG=N
>
> Review-Url: https://codereview.chromium.org/2628643002
> Cr-Commit-Position: refs/heads/master@{#42202}
> Committed: aa0cb2eaf8

TBR=jkummerow@chromium.org,joransiu@ca.ibm.com,jyan@ca.ibm.com,michael_dawson@ca.ibm.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=v8:4520

Review-Url: https://codereview.chromium.org/2628923004
Cr-Commit-Position: refs/heads/master@{#42304}
2017-01-13 05:30:09 +00:00
bradnelson
87311b5cba [wasm][asm.js] Make asm.js -> wasm message allocations predictable.
We allocate console timing messages for now,
as previously skipping this tickled unrelated flake.
Use a fixed message to make them consistent in predictable mode.

BUG=v8:4203
TBR=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2628173003
Cr-Commit-Position: refs/heads/master@{#42303}
2017-01-13 04:51:55 +00:00
v8-autoroll
d5be8cf83e Update V8 DEPS.
Rolling v8/build: 9c22ce7..15635a4

Rolling v8/third_party/catapult: ed0540f..fe8a3c8

Rolling v8/tools/clang: c30c6ff..0147ef9

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Review-Url: https://codereview.chromium.org/2633463005
Cr-Commit-Position: refs/heads/master@{#42302}
2017-01-13 04:27:46 +00:00
bradnelson
7d86a478d2 [wasm][asm.js] Don't squish error location because module end not reached.
We recently started emitting an error because a module's validation
doesn't reach the end (due to lack of exports).
This contained a mistake that prevents many most other types
of errors from actually getting out.

Ensuring export errors (or not reaching then end) doesn't clobber
other errors.

TODO(bradnelson): Figure out a way to structure tests so this gets
caught.

BUG=v8:4203
R=gdeepti@chromium.org

Review-Url: https://codereview.chromium.org/2632593002
Cr-Commit-Position: refs/heads/master@{#42301}
2017-01-13 03:38:45 +00:00
bradnelson
f692908482 [wasm][asm.js] Enable --validate-asm by default.
This directs all asm.js traffic via the Wasm backend.
Make asm.js console output less noisy.

R=titzer@chromium.org,aseemgarg@chromium.org
BUG=v8:4203

Review-Url: https://codereview.chromium.org/2624813002
Cr-Original-Original-Commit-Position: refs/heads/master@{#42194}
Committed: 946cc371ed
Review-Url: https://codereview.chromium.org/2624813002
Cr-Original-Commit-Position: refs/heads/master@{#42244}
Committed: 3169fb94c9
Review-Url: https://codereview.chromium.org/2624813002
Cr-Commit-Position: refs/heads/master@{#42300}
2017-01-13 02:26:07 +00:00
bradnelson
f488a41296 Adding missing include to fix interpreted regexp build.
BUG=None
LOG=None
R=mtrofin@chromium.org

Review-Url: https://codereview.chromium.org/2621373005
Cr-Commit-Position: refs/heads/master@{#42299}
2017-01-13 00:23:28 +00:00
littledan
77f80d0f96 Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #1 id:1 of https://codereview.chromium.org/2628203003/ )
Reason for revert:
OK, the failure really does seem to be due to this patch: It triggers Clang to crash

FAILED: obj/test/unittests/unittests/function-body-decoder-unittest.obj
E:\b\build\slave\cache\cipd\goma/gomacc.exe ../../third_party/llvm-build/Release+Asserts/bin/clang-cl.exe /nologo /showIncludes /FC @obj/test/unittests/unittests/function-body-decoder-unittest.obj.rsp /c ../../test/unittests/wasm/function-body-decoder-unittest.cc /Foobj/test/unittests/unittests/function-body-decoder-unittest.obj /Fd"obj/test/unittests/unittests_cc.pdb"
Assertion failed: (NumGaps == 0 || Bias < MaxDefRange) && "large ranges should not have gaps", file E:\b\build\slave\win_upload_clang\build\src\third_party\llvm\lib\MC\MCCodeView.cpp, line 531
Wrote crash dump file "C:\Users\CHROME~2\AppData\Local\Temp\goma_temp.5068\clang-cl.exe-563144.dmp"

Let's leave it out for now.

Original issue's description:
> Reland of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #1 id:1 of https://codereview.chromium.org/2628883006/ )
>
> Reason for revert:
> Try a reland; this might not have been the source of tree-closing.
>
> Original issue's description:
> > Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #3 id:40001 of https://codereview.chromium.org/2630553002/ )
> >
> > Reason for revert:
> > Caused tree to close by failing compilation:
> >
> > https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/4451
> >
> > Original issue's description:
> > > [wasm] Enforce that function bodies end with the \"end\" opcode.
> > >
> > > R=rossberg@chromium.org
> > > BUG=chromium:575167
> > >
> > > Review-Url: https://codereview.chromium.org/2630553002
> > > Cr-Commit-Position: refs/heads/master@{#42286}
> > > Committed: fcc6e85ec6
> >
> > TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=chromium:575167
> >
> > Review-Url: https://codereview.chromium.org/2628883006
> > Cr-Commit-Position: refs/heads/master@{#42287}
> > Committed: 1d32a3989b
>
> TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:575167
>
> Review-Url: https://codereview.chromium.org/2628203003
> Cr-Commit-Position: refs/heads/master@{#42296}
> Committed: e539bd8e0e

TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:575167

Review-Url: https://codereview.chromium.org/2633583002
Cr-Commit-Position: refs/heads/master@{#42298}
2017-01-12 23:12:12 +00:00
jyan
0c3cc68fba s390: optimize TF to use tmll and fix tmll sim
R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2622073006
Cr-Commit-Position: refs/heads/master@{#42297}
2017-01-12 22:48:14 +00:00
littledan
e539bd8e0e Reland of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #1 id:1 of https://codereview.chromium.org/2628883006/ )
Reason for revert:
Try a reland; this might not have been the source of tree-closing.

Original issue's description:
> Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #3 id:40001 of https://codereview.chromium.org/2630553002/ )
>
> Reason for revert:
> Caused tree to close by failing compilation:
>
> https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/4451
>
> Original issue's description:
> > [wasm] Enforce that function bodies end with the \"end\" opcode.
> >
> > R=rossberg@chromium.org
> > BUG=chromium:575167
> >
> > Review-Url: https://codereview.chromium.org/2630553002
> > Cr-Commit-Position: refs/heads/master@{#42286}
> > Committed: fcc6e85ec6
>
> TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:575167
>
> Review-Url: https://codereview.chromium.org/2628883006
> Cr-Commit-Position: refs/heads/master@{#42287}
> Committed: 1d32a3989b

TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:575167

Review-Url: https://codereview.chromium.org/2628203003
Cr-Commit-Position: refs/heads/master@{#42296}
2017-01-12 22:27:38 +00:00
gsathya
687b60c874 [promisehook] Pass deferred promise to Before/After callback
Before, in `var p1 = p.then(() => {}) we would trigger the
before/after callbacks with p as the associated promise, but we must
call it with p1.

Also removes promise from PromiseReactionJobInfo.

Review-Url: https://codereview.chromium.org/2633443002
Cr-Commit-Position: refs/heads/master@{#42295}
2017-01-12 22:06:55 +00:00
ishell
aee244b0e1 [modules] Define @@toStringTag on namespace object as a field.
The constant field tracking implies data constants to be stored
in fields instead of descriptor arrays. This CL does necessary
modifications to the JSModuleNamespace map setup.

BUG=v8:1569, v8:5495

Review-Url: https://codereview.chromium.org/2625093005
Cr-Commit-Position: refs/heads/master@{#42294}
2017-01-12 21:40:04 +00:00
mtrofin
7c7434085e [wasm] JS-APIs: more WebAssembly.compile tests
enabled TODO-ed compile tests

BUG=v8:5833

Review-Url: https://codereview.chromium.org/2628053004
Cr-Commit-Position: refs/heads/master@{#42293}
2017-01-12 21:30:39 +00:00
bjaideep
8194ff053f PPC/s390: [debugger] infrastructure for side-effect-free debug-evaluate.
Port aa75904e3c

R=yangguo@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:5821
LOG=N

Review-Url: https://codereview.chromium.org/2632513002
Cr-Commit-Position: refs/heads/master@{#42292}
2017-01-12 21:27:20 +00:00
ishell
5d85e8ccf9 [printing] Remove duplicate code that prints property details.
BUG=

Review-Url: https://codereview.chromium.org/2627003005
Cr-Commit-Position: refs/heads/master@{#42291}
2017-01-12 21:22:48 +00:00
v8-autoroll
40f9b0d722 Update V8 DEPS.
Rolling v8/build: 497761f..9c22ce7

Rolling v8/third_party/catapult: d71b471..ed0540f

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Review-Url: https://codereview.chromium.org/2623403003
Cr-Commit-Position: refs/heads/master@{#42290}
2017-01-12 20:53:57 +00:00
scottmg
ffc0931f87 Pull define for version out into v8-version-string.h and separate build target
This is part of removing the dependency of the Chromium browser DLL on
Windows on V8.

R=jochen@chromium.org
BUG=chromium:581766

Review-Url: https://codereview.chromium.org/2621983002
Cr-Original-Commit-Position: refs/heads/master@{#42243}
Committed: 4593845417
Review-Url: https://codereview.chromium.org/2621983002
Cr-Commit-Position: refs/heads/master@{#42289}
2017-01-12 20:51:37 +00:00
rossberg
022635bf0d Implement Instance instances correctly; fix a few error cases
R=titzer@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2620263003
Cr-Commit-Position: refs/heads/master@{#42288}
2017-01-12 20:32:27 +00:00
littledan
1d32a3989b Revert of [wasm] Enforce that function bodies end with the \"end\" opcode. (patchset #3 id:40001 of https://codereview.chromium.org/2630553002/ )
Reason for revert:
Caused tree to close by failing compilation:

https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/4451

Original issue's description:
> [wasm] Enforce that function bodies end with the \"end\" opcode.
>
> R=rossberg@chromium.org
> BUG=chromium:575167
>
> Review-Url: https://codereview.chromium.org/2630553002
> Cr-Commit-Position: refs/heads/master@{#42286}
> Committed: fcc6e85ec6

TBR=mtrofin@chromium.org,rossberg@chromium.org,jbroman@chromium.org,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:575167

Review-Url: https://codereview.chromium.org/2628883006
Cr-Commit-Position: refs/heads/master@{#42287}
2017-01-12 20:01:06 +00:00
titzer
fcc6e85ec6 [wasm] Enforce that function bodies end with the \"end\" opcode.
R=rossberg@chromium.org
BUG=chromium:575167

Review-Url: https://codereview.chromium.org/2630553002
Cr-Commit-Position: refs/heads/master@{#42286}
2017-01-12 19:46:25 +00:00
clemensh
723aeeaba2 [wasm] Skip whole function linking phase
As functions are relinked at instantiation anyway, we can just
completely skip the LinkFunctions pass at wasm compile time.
This way, we also don't need to create one placeholder per wasm
function, but we just use one placeholder everywhere. The function
index which was stored in the placeholder before is now retrieved from
the wire bytes anyway.

R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2624383003
Cr-Commit-Position: refs/heads/master@{#42285}
2017-01-12 19:29:53 +00:00
adamk
a0e3a8ee89 [promises] Remove unneeded PromiseCreate function from promise.js
This function was only needed for extrasUtils. Since it was simply
calling a builtin function, just expose that builtin instead. This
requires an arguments adapter frame for the builtin. As a drive-by
fix, also added an arguments adapter for the extrasUtils.resolvePromise
(and a regression test).

Other cleanup: removed unused native context slot for PROMISE_SET_AND_CREATE.

R=gsathya@chromium.org
BUG=v8:5343

Review-Url: https://codereview.chromium.org/2626793003
Cr-Commit-Position: refs/heads/master@{#42284}
2017-01-12 18:57:48 +00:00
clemensh
166ed96901 [debug] Untangle BreakLocation and DebugInfo
... because we want to use BreakLocation also for wasm, but we don't
instantiate a DebugInfo for wasm.

R=yangguo@chromium.org, titzer@chromium.org
BUG=v8:5822

Review-Url: https://codereview.chromium.org/2621953002
Cr-Commit-Position: refs/heads/master@{#42283}
2017-01-12 18:31:28 +00:00
clemensh
ddbfbefc0b [wasm] Patch the native context embedded in compiled code
R=titzer@chromium.org
BUG=chromium:673297

Review-Url: https://codereview.chromium.org/2623203003
Cr-Commit-Position: refs/heads/master@{#42282}
2017-01-12 18:30:17 +00:00
littledan
db13ed1d4c [intl] Remove indirection in Intl objects
With the new initialization semantics, the V8 ECMA 402 (Intl)
implementation does not need to indirect through a symbol to
get at the underlying object. This patch removes that indirection,
simplifying the implementation.

R=yangguo@chromium.org
BUG=v8:5751
CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng

Review-Url: https://codereview.chromium.org/2601833002
Cr-Commit-Position: refs/heads/master@{#42281}
2017-01-12 17:58:19 +00:00
bjaideep
be781e51f5 PPC/s390: [TypeFeedbackVector] Root literal arrays in function literals slots
Port b8294aaa97

Original Commit Message:

    Literal arrays and feedback vectors for a function can be garbage
    collected if we don't have a rooted closure for the function, which
    happens often. It's expensive to come back from this (recreating
    boilerplates and gathering feedback again), and the cost is
    disproportionate if the function was inlined into optimized code.

    To guard against losing these arrays when we need them, we'll now
    create literal arrays when creating the feedback vector for the outer
    closure, and root them strongly in that vector.

R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:5456
LOG=N

Review-Url: https://codereview.chromium.org/2626263002
Cr-Commit-Position: refs/heads/master@{#42280}
2017-01-12 17:57:01 +00:00
clemensh
df5417ae76 Refactor FrameSummary for JS and Wasm frames
Wasm frames can be either compiled or interpreted. For interpreted wasm
frames, there is only one physical stack frame representing an
arbitrary stack of interpreted functions. Hence the physical stack
frame needs to provide a summary of the underlying functions.
Summaries were tailored for JavaScript frames before. Now they are
universal.

The refactored FrameSummaries are now also used in the FrameInspector,
and from the StackFrame objects themselves, to avoid code duplication.

All dispatch is implemented "manually", making the FrameSummary still
stack-allocatable.

BUG=v8:5822
R=yangguo@chromium.org, titzer@chromium.org

Review-Url: https://codereview.chromium.org/2619353006
Cr-Commit-Position: refs/heads/master@{#42279}
2017-01-12 16:54:26 +00:00
mtrofin
53137df89a [wasm] JS APIs & memory
- updated WebAssembly.Instance ctor uses in our tests to match spec
- disallowing mem section *and* mem import, as per spec

BUG=v8:5824

Review-Url: https://codereview.chromium.org/2627763002
Cr-Commit-Position: refs/heads/master@{#42278}
2017-01-12 16:48:09 +00:00
ishell
d3d57ebaf6 [runtime] Use PropertyKind/PropertyLocation instead of PropertyType.
This is a necessary cleanup before introducing PropertyConstness bit.

BUG=v8:5495

Review-Url: https://codereview.chromium.org/2624903003
Cr-Commit-Position: refs/heads/master@{#42277}
2017-01-12 16:37:12 +00:00