Skip to content

Commit

Permalink
deps: patch V8 to 7.8.279.17
Browse files Browse the repository at this point in the history
Refs: v8/v8@7.8.279.15...7.8.279.17

PR-URL: #29928
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
  • Loading branch information
targos committed Oct 13, 2019
1 parent 53ca0b9 commit 7de5a55
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 6 deletions.
2 changes: 1 addition & 1 deletion deps/v8/include/v8-version.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 7
#define V8_MINOR_VERSION 8
#define V8_BUILD_NUMBER 279
#define V8_PATCH_LEVEL 15
#define V8_PATCH_LEVEL 17

// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
Expand Down
7 changes: 6 additions & 1 deletion deps/v8/src/execution/isolate.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1680,8 +1680,13 @@ Object Isolate::UnwindAndFindHandler() {
int return_offset = static_cast<int>(frame->pc() - instruction_start);
int handler_offset = table.LookupReturn(return_offset);
DCHECK_NE(-1, handler_offset);
// Compute the stack pointer from the frame pointer. This ensures that
// argument slots on the stack are dropped as returning would.
Address return_sp = frame->fp() +
StandardFrameConstants::kFixedFrameSizeAboveFp -
code.stack_slots() * kSystemPointerSize;
return FoundHandler(Context(), instruction_start, handler_offset,
code.constant_pool(), frame->sp(), frame->fp());
code.constant_pool(), return_sp, frame->fp());
}

case StackFrame::WASM_COMPILED: {
Expand Down
26 changes: 26 additions & 0 deletions deps/v8/test/mjsunit/regress/wasm/regress-crbug-1007608.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Bug is in the C-to-Wasm entry, used e.g. by the Wasm interpreter.
// Flags: --wasm-interpret-all

load("test/mjsunit/wasm/wasm-module-builder.js");

let argc = 7;
let builder = new WasmModuleBuilder();
let types = new Array(argc).fill(kWasmI32);
let sig = makeSig(types, []);
let body = [];
for (let i = 0; i < argc; ++i) {
body.push(kExprGetLocal, i);
}
body.push(kExprCallFunction, 0);
builder.addImport('', 'f', sig);
builder.addFunction("main", sig).addBody(body).exportAs('main');
let instance = builder.instantiate({
'': {
'f': function() { throw "don't crash"; }
}
});
assertThrows(instance.exports.main);
8 changes: 8 additions & 0 deletions deps/v8/tools/testrunner/base_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ def __init__(self, flags, timeout_scalefactor, status_mode, execution_mode):

PROGRESS_INDICATORS = {
'verbose': progress.VerboseProgressIndicator,
'ci': progress.CIProgressIndicator,
'dots': progress.DotsProgressIndicator,
'color': progress.ColorProgressIndicator,
'mono': progress.MonochromeProgressIndicator,
Expand Down Expand Up @@ -355,6 +356,10 @@ def _add_parser_default_options(self, parser):
parser.add_option("--exit-after-n-failures", type="int", default=100,
help="Exit after the first N failures instead of "
"running all tests. Pass 0 to disable this feature.")
parser.add_option("--ci-test-completion",
help="Path to a file for logging test completion in the "
"context of CI progress indicator. Ignored if "
"progress indicator is other than 'ci'.")

# Rerun
parser.add_option("--rerun-failures-count", default=0, type=int,
Expand Down Expand Up @@ -804,6 +809,9 @@ def _create_progress_indicators(self, test_count, options):
self.build_config.arch,
self.mode_options.execution_mode))

for proc in procs:
proc.configure(options)

for proc in procs:
try:
proc.set_test_count(test_count)
Expand Down
25 changes: 21 additions & 4 deletions deps/v8/tools/testrunner/testproc/progress.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,16 @@ def _on_result_for(self, test, result):


class ProgressIndicator(base.TestProcObserver):
def __init__(self):
super(base.TestProcObserver, self).__init__()
self.options = None

def finished(self):
pass

def configure(self, options):
self.options = options


class SimpleProgressIndicator(ProgressIndicator):
def __init__(self):
Expand Down Expand Up @@ -114,8 +121,7 @@ def _print(self, text):
sys.stdout.flush()
self._last_printed_time = time.time()

def _on_result_for(self, test, result):
super(VerboseProgressIndicator, self)._on_result_for(test, result)
def _message(self, test, result):
# TODO(majeski): Support for dummy/grouped results
if result.has_unexpected_output:
if result.output.HasCrashed():
Expand All @@ -124,9 +130,12 @@ def _on_result_for(self, test, result):
outcome = 'FAIL'
else:
outcome = 'pass'
return 'Done running %s %s: %s' % (
test, test.variant or 'default', outcome)

self._print('Done running %s %s: %s' % (
test, test.variant or 'default', outcome))
def _on_result_for(self, test, result):
super(VerboseProgressIndicator, self)._on_result_for(test, result)
self._print(self._message(test, result))

# TODO(machenbach): Remove this platform specific hack and implement a proper
# feedback channel from the workers, providing which tests are currently run.
Expand Down Expand Up @@ -155,6 +164,14 @@ def _on_event(self, event):
self._print_processes_linux()


class CIProgressIndicator(VerboseProgressIndicator):
def _on_result_for(self, test, result):
super(VerboseProgressIndicator, self)._on_result_for(test, result)
if self.options.ci_test_completion:
with open(self.options.ci_test_completion, "a") as f:
f.write(self._message(test, result) + "\n")


class DotsProgressIndicator(SimpleProgressIndicator):
def __init__(self):
super(DotsProgressIndicator, self).__init__()
Expand Down

0 comments on commit 7de5a55

Please sign in to comment.