Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
f25c7ce
win,msi: Added Italian translation
mcollina Jan 12, 2016
9db861b
tools: increase lint coverage
Trott Jul 10, 2016
25b3ff4
test,doc: clarify `buf.indexOf(num)` input range
addaleax Jul 8, 2016
45a8fce
doc: fix typo in the CHANGELOG_V6
vsemozhetbyt Jul 6, 2016
8bbb3eb
tools: consistent .eslintrc formatting
silverwind Jul 12, 2016
e1e477e
win,msi: add zh-CN translations for the installer
pmq20 Jul 14, 2016
43b5bf4
inspector: Unify event queues
Jun 1, 2016
ccd4983
test: add common.rootDir
cjihrig Jul 12, 2016
f003465
fs: rename event to eventType in fs.watch listener
claudiorodriguez Jul 1, 2016
1af8c03
test: cleanup IIFE tests
cjihrig Jul 12, 2016
d224b47
test: improve error message in test-tick-processor
Trott Jul 12, 2016
f0d9610
doc: removed old git conflict markers from fs.md
jjhidalgar Jul 7, 2016
3b767b8
buffer: fix creating from zero-length ArrayBuffer
RReverser Jun 6, 2016
c10ade9
deps: back-port d721121 from v8 upstream
bnoordhuis Jul 9, 2016
a855b30
cluster: remove bind() and self
cjihrig Jul 13, 2016
46b9ef6
doc: fix typo in stream doc
Jul 14, 2016
c726ffb
doc: Warn against `uncaughtException` dependency.
lance Apr 25, 2016
9d9bd3c
timers: fix processing of nested timers
whitlockjc Jul 24, 2015
669af6e
doc: fix inconsistencies in code style
saadq Jul 15, 2016
17591c3
test: s/assert.fail/common.fail as appropriate
cjihrig Jul 14, 2016
3bd40ff
deps: no /safeseh for ml64.exe
indutny Jul 16, 2016
60c459c
util: inspect boxed symbols like other primitives
addaleax Jul 9, 2016
ba6ab7c
buffer: optimize hex_decode
chjj Jul 7, 2016
aa045cd
test: fix flaky test-http-server-consumed-timeout
Trott Jul 13, 2016
f7d3af6
doc: add `added:` information for stream
Jun 13, 2016
06bfb9e
src: fix handle leak in Buffer::New()
bnoordhuis Jul 13, 2016
978362d
src: fix handle leak in BuildStatsObject()
bnoordhuis Jul 13, 2016
e46efd9
src: fix handle leak in UDPWrap::Instantiate()
bnoordhuis Jul 13, 2016
61d88d9
src: remove unnecessary HandleScopes
bnoordhuis Jul 13, 2016
62a3ff2
doc: correct sample output of buf.compare
khalsah Jul 17, 2016
9d59b7d
test: avoid usage of mixed IPV6 addresses
gireeshpunathil Jul 13, 2016
059a721
doc: update CTC governance information
Trott Jul 13, 2016
f3182f6
deps: v8_inspector no longer depends on wtf
ofrobots Jul 15, 2016
bb187bb
deps: cherry-pick 1f53e42 from v8 upstream
bnoordhuis Jul 7, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
deps: cherry-pick 1f53e42 from v8 upstream
Original commit message:

    Handle symbols in FrameMirror#invocationText().

    Fix a TypeError when putting together the invocationText for a
    symbol method's stack frame.

    See #7536.

    Review-Url: https://codereview.chromium.org/2122793003
    Cr-Commit-Position: refs/heads/master@{#37597}

Fixes: #7536
PR-URL: #7612
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
  • Loading branch information
bnoordhuis committed Jul 19, 2016
commit bb187bb9b0ab44fe734b217fd579b69c2be36cdd
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 5
#define V8_MINOR_VERSION 0
#define V8_BUILD_NUMBER 71
#define V8_PATCH_LEVEL 55
#define V8_PATCH_LEVEL 56

// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
Expand Down
10 changes: 8 additions & 2 deletions deps/v8/src/debug/mirrors.js
Original file line number Diff line number Diff line change
Expand Up @@ -1494,6 +1494,12 @@ PropertyMirror.prototype.name = function() {
};


PropertyMirror.prototype.toText = function() {
if (IS_SYMBOL(this.name_)) return %SymbolDescriptiveString(this.name_);
return this.name_;
};


PropertyMirror.prototype.isIndexed = function() {
for (var i = 0; i < this.name_.length; i++) {
if (this.name_[i] < '0' || '9' < this.name_[i]) {
Expand Down Expand Up @@ -2054,10 +2060,10 @@ FrameMirror.prototype.invocationText = function() {
if (display_receiver) {
result += '.';
}
result += property.name();
result += property.toText();
} else {
result += '[';
result += property.name();
result += property.toText();
result += ']';
}
// Also known as - if the name in the function doesn't match the name
Expand Down
80 changes: 54 additions & 26 deletions deps/v8/test/mjsunit/debug-backtrace-text.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ function Point(x, y) {

Point.prototype.distanceTo = function(p) {
debugger;
return Math.sqrt(Math.pow(Math.abs(this.x - p.x), 2) + Math.pow(Math.abs(this.y - p.y), 2))
return Math.sqrt(Math.pow(Math.abs(this.x - p.x), 2) +
Math.pow(Math.abs(this.y - p.y), 2))
}

p1 = new Point(1,1);
Expand All @@ -58,7 +59,7 @@ a=[1,2,distance];
// Get the Debug object exposed from the debug context global object.
Debug = debug.Debug

testConstructor = false; // Flag to control which part of the test is run.
what = 'constructor'; // Flag to control which part of the test is run.
listenerCalled = false;
exception = false;

Expand All @@ -72,30 +73,47 @@ function safeEval(code) {

function listener(event, exec_state, event_data, data) {
try {
if (event == Debug.DebugEvent.Break)
{
if (!testConstructor) {
// The expected backtrace is
// 0: Call distance on Point where distance is a property on the prototype
// 1: Call distance on Point where distance is a direct property
// 2: Call on function an array element 2
// 3: [anonymous]
assertEquals("#<Point>.distanceTo(p=#<Point>)", exec_state.frame(0).invocationText());
assertEquals("#<Point>.distanceTo(p=#<Point>)", exec_state.frame(1).invocationText());
assertEquals("#<Array>[2](aka distance)(p=#<Point>, q=#<Point>)", exec_state.frame(2).invocationText());
assertEquals("[anonymous]()", exec_state.frame(3).invocationText());
listenerCalled = true;
} else {
// The expected backtrace is
// 0: Call Point constructor
// 1: Call on global function createPoint
// 2: [anonymous]
assertEquals("new Point(x=0, y=0)", exec_state.frame(0).invocationText());
assertEquals("createPoint(x=0, y=0)", exec_state.frame(1).invocationText());
assertEquals("[anonymous]()", exec_state.frame(2).invocationText());
listenerCalled = true;
if (event == Debug.DebugEvent.Break) {
if (what == 'constructor') {
// The expected backtrace is
// 0: Call distance on Point where distance is a prototype property
// 1: Call distance on Point where distance is a direct property
// 2: Call on function an array element 2
// 3: [anonymous]
assertEquals("#<Point>.distanceTo(p=#<Point>)",
exec_state.frame(0).invocationText());
assertEquals("#<Point>.distanceTo(p=#<Point>)",
exec_state.frame(1).invocationText());
assertEquals("#<Array>[2](aka distance)(p=#<Point>, q=#<Point>)",
exec_state.frame(2).invocationText());
assertEquals("[anonymous]()", exec_state.frame(3).invocationText());
listenerCalled = true;
} else if (what == 'breakpoint') {
// The expected backtrace is
// 0: Call Point constructor
// 1: Call on global function createPoint
// 2: [anonymous]
assertEquals("new Point(x=0, y=0)",
exec_state.frame(0).invocationText());
assertEquals("createPoint(x=0, y=0)",
exec_state.frame(1).invocationText());
assertEquals("[anonymous]()", exec_state.frame(2).invocationText());
listenerCalled = true;
} else if (what == 'symbol') {
// The expected backtrace is
// 0: Call Point constructor
// 1: Call on symbol method
// 2: [anonymous]
assertEquals("new Point(x=0, y=0)",
exec_state.frame(0).invocationText());
assertEquals("#<Object>[Symbol(Das Symbol)](x=0, y=0)",
exec_state.frame(1).invocationText());
assertEquals("[anonymous]()", exec_state.frame(2).invocationText());
listenerCalled = true;
} else {
assertUnreachable();
}
}
}
} catch (e) {
exception = e
};
Expand All @@ -112,11 +130,21 @@ assertTrue(listenerCalled);
assertFalse(exception, "exception in listener")

// Set a break point and call to invoke the debug event listener.
what = 'breakpoint';
listenerCalled = false;
testConstructor = true;
Debug.setBreakPoint(Point, 0, 0);
createPoint(0, 0);

// Make sure that the debug event listener vas invoked (again).
assertTrue(listenerCalled);
assertFalse(exception, "exception in listener")

what = 'symbol';
listenerCalled = false;
var S = Symbol('Das Symbol');
var o = { [S](x, y) { return new Point(x, y); } };
Debug.setBreakPoint(Point, 0, 0);
o[S](0, 0);

assertTrue(listenerCalled);
assertFalse(exception, "exception in listener")