Skip to content

Commit 248dd43

Browse files
author
machenbach@chromium.org
committed
Version 3.28.6 (based on bleeding_edge revision r22068)
Unbreak "os" stuff in shared d8 builds (issue 3407). Performance and stability improvements on all platforms. git-svn-id: https://v8.googlecode.com/svn/trunk@22071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
1 parent 17aac87 commit 248dd43

143 files changed

Lines changed: 2158 additions & 1719 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.DEPS.git

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ deps = {
1414
'v8/build/gyp':
1515
Var('git_url') + '/external/gyp.git@a3e2a5caf24a1e0a45401e09ad131210bf16b852',
1616
'v8/buildtools':
17-
Var('git_url') + '/chromium/buildtools.git@5d89977ce55240995d1596fe420b818468f5ec37',
17+
Var('git_url') + '/chromium/buildtools.git@fb782d4369d5ae04f17a2fceef7de5a63e50f07b',
1818
'v8/third_party/icu':
1919
Var('git_url') + '/chromium/deps/icu46.git@7a1ec88f69e25b3efcf76196d07f7815255db025',
2020
}
@@ -30,14 +30,67 @@ deps_os = {
3030
}
3131

3232
include_rules = [
33-
33+
'+include',
34+
'+unicode'
3435
]
3536

3637
skip_child_includes = [
37-
38+
'build',
39+
'third_party'
3840
]
3941

4042
hooks = [
43+
{
44+
'action':
45+
[
46+
'download_from_google_storage',
47+
'--no_resume',
48+
'--platform=win32',
49+
'--no_auth',
50+
'--bucket',
51+
'chromium-clang-format',
52+
'-s',
53+
'v8/buildtools/win/clang-format.exe.sha1'
54+
],
55+
'pattern':
56+
'.',
57+
'name':
58+
'clang_format_win'
59+
},
60+
{
61+
'action':
62+
[
63+
'download_from_google_storage',
64+
'--no_resume',
65+
'--platform=darwin',
66+
'--no_auth',
67+
'--bucket',
68+
'chromium-clang-format',
69+
'-s',
70+
'v8/buildtools/mac/clang-format.sha1'
71+
],
72+
'pattern':
73+
'.',
74+
'name':
75+
'clang_format_mac'
76+
},
77+
{
78+
'action':
79+
[
80+
'download_from_google_storage',
81+
'--no_resume',
82+
'--platform=linux*',
83+
'--no_auth',
84+
'--bucket',
85+
'chromium-clang-format',
86+
'-s',
87+
'v8/buildtools/linux64/clang-format.sha1'
88+
],
89+
'pattern':
90+
'.',
91+
'name':
92+
'clang_format_linux'
93+
},
4194
{
4295
'action':
4396
[

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
.cpplint-cache
2424
.cproject
2525
.d8_history
26+
.gclient_entries
2627
.project
2728
.pydevproject
2829
.settings

BUILD.gn

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,8 +674,10 @@ source_set("v8_base") {
674674
"src/objects-visiting.h",
675675
"src/objects.cc",
676676
"src/objects.h",
677-
"src/optimizing-compiler-thread.h",
678677
"src/optimizing-compiler-thread.cc",
678+
"src/optimizing-compiler-thread.h",
679+
"src/ostreams.cc",
680+
"src/ostreams.h",
679681
"src/parser.cc",
680682
"src/parser.h",
681683
"src/platform/elapsed-timer.h",

ChangeLog

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
2014-06-30: Version 3.28.6
2+
3+
Unbreak "os" stuff in shared d8 builds (issue 3407).
4+
5+
Performance and stability improvements on all platforms.
6+
7+
18
2014-06-26: Version 3.28.4
29

310
Compile optimized code with active debugger but no break points

DEPS

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
vars = {
66
"chromium_trunk": "https://src.chromium.org/svn/trunk",
77

8-
"buildtools_revision": "5d89977ce55240995d1596fe420b818468f5ec37",
8+
"buildtools_revision": "fb782d4369d5ae04f17a2fceef7de5a63e50f07b",
99
}
1010

1111
deps = {
@@ -44,6 +44,40 @@ skip_child_includes = [
4444
]
4545

4646
hooks = [
47+
# Pull clang-format binaries using checked-in hashes.
48+
{
49+
"name": "clang_format_win",
50+
"pattern": ".",
51+
"action": [ "download_from_google_storage",
52+
"--no_resume",
53+
"--platform=win32",
54+
"--no_auth",
55+
"--bucket", "chromium-clang-format",
56+
"-s", "v8/buildtools/win/clang-format.exe.sha1",
57+
],
58+
},
59+
{
60+
"name": "clang_format_mac",
61+
"pattern": ".",
62+
"action": [ "download_from_google_storage",
63+
"--no_resume",
64+
"--platform=darwin",
65+
"--no_auth",
66+
"--bucket", "chromium-clang-format",
67+
"-s", "v8/buildtools/mac/clang-format.sha1",
68+
],
69+
},
70+
{
71+
"name": "clang_format_linux",
72+
"pattern": ".",
73+
"action": [ "download_from_google_storage",
74+
"--no_resume",
75+
"--platform=linux*",
76+
"--no_auth",
77+
"--bucket", "chromium-clang-format",
78+
"-s", "v8/buildtools/linux64/clang-format.sha1",
79+
],
80+
},
4781
{
4882
# A change to a .gyp, .gypi, or to GYP itself should run the generator.
4983
"pattern": ".",

Makefile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -469,8 +469,5 @@ dependencies:
469469
svn checkout --force \
470470
https://src.chromium.org/chrome/trunk/deps/third_party/icu46 \
471471
third_party/icu --revision 258359
472-
( test -d buildtools || \
473-
git clone https://chromium.googlesource.com/chromium/buildtools.git; \
474-
cd buildtools; \
475-
git fetch origin; \
476-
git checkout 5d89977ce55240995d1596fe420b818468f5ec37 )
472+
# The spec is a copy of the hooks in v8's DEPS file.
473+
gclient sync -r fb782d4369d5ae04f17a2fceef7de5a63e50f07b --spec="solutions = [{u'managed': False, u'name': u'buildtools', u'url': u'https://chromium.googlesource.com/chromium/buildtools.git', u'custom_deps': {}, u'custom_hooks': [{u'name': u'clang_format_win',u'pattern': u'.',u'action': [u'download_from_google_storage',u'--no_resume',u'--platform=win32',u'--no_auth',u'--bucket',u'chromium-clang-format',u'-s',u'buildtools/win/clang-format.exe.sha1']},{u'name': u'clang_format_mac',u'pattern': u'.',u'action': [u'download_from_google_storage',u'--no_resume',u'--platform=darwin',u'--no_auth',u'--bucket',u'chromium-clang-format',u'-s',u'buildtools/mac/clang-format.sha1']},{u'name': u'clang_format_linux',u'pattern': u'.',u'action': [u'download_from_google_storage',u'--no_resume',u'--platform=linux*',u'--no_auth',u'--bucket',u'chromium-clang-format',u'-s',u'buildtools/linux64/clang-format.sha1']}],u'deps_file': u'.DEPS.git', u'safesync_url': u''}]"

build/standalone.gypi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,8 @@
189189
or OS=="netbsd"', {
190190
'target_defaults': {
191191
'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter',
192-
'-pthread', '-fno-exceptions', '-pedantic' ],
192+
'-Wno-long-long', '-pthread', '-fno-exceptions',
193+
'-pedantic' ],
193194
'cflags_cc': [ '-Wnon-virtual-dtor', '-fno-rtti' ],
194195
'ldflags': [ '-pthread', ],
195196
'conditions': [

include/v8-debug.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ enum DebugEvent {
1919
NewFunction = 3,
2020
BeforeCompile = 4,
2121
AfterCompile = 5,
22-
ScriptCollected = 6,
22+
CompileError = 6,
2323
BreakForCommand = 7
2424
};
2525

src/api.cc

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3030,6 +3030,9 @@ uint32_t Value::Uint32Value() const {
30303030
}
30313031

30323032

3033+
// TODO(verwaest): Remove the attribs argument, since it doesn't make sense for
3034+
// existing properties. Use ForceSet instead to define or redefine properties
3035+
// with specific attributes.
30333036
bool v8::Object::Set(v8::Handle<Value> key, v8::Handle<Value> value,
30343037
v8::PropertyAttribute attribs) {
30353038
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
@@ -3041,12 +3044,8 @@ bool v8::Object::Set(v8::Handle<Value> key, v8::Handle<Value> value,
30413044
i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
30423045
EXCEPTION_PREAMBLE(isolate);
30433046
has_pending_exception = i::Runtime::SetObjectProperty(
3044-
isolate,
3045-
self,
3046-
key_obj,
3047-
value_obj,
3048-
static_cast<PropertyAttributes>(attribs),
3049-
i::SLOPPY).is_null();
3047+
isolate, self, key_obj, value_obj, i::SLOPPY,
3048+
static_cast<PropertyAttributes>(attribs)).is_null();
30503049
EXCEPTION_BAILOUT_CHECK(isolate, false);
30513050
return true;
30523051
}
@@ -3078,7 +3077,7 @@ bool v8::Object::ForceSet(v8::Handle<Value> key,
30783077
i::Handle<i::Object> key_obj = Utils::OpenHandle(*key);
30793078
i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
30803079
EXCEPTION_PREAMBLE(isolate);
3081-
has_pending_exception = i::Runtime::ForceSetObjectProperty(
3080+
has_pending_exception = i::Runtime::DefineObjectProperty(
30823081
self,
30833082
key_obj,
30843083
value_obj,

src/apinatives.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,16 @@ function Instantiate(data, name) {
3030
var Constructor = %GetTemplateField(data, kApiConstructorOffset);
3131
// Note: Do not directly use a function template as a condition, our
3232
// internal ToBoolean doesn't handle that!
33-
var result = typeof Constructor === 'undefined' ?
34-
{} : new (Instantiate(Constructor))();
35-
ConfigureTemplateInstance(result, data);
36-
result = %ToFastProperties(result);
33+
var result;
34+
if (typeof Constructor === 'undefined') {
35+
result = {};
36+
ConfigureTemplateInstance(result, data);
37+
} else {
38+
// ConfigureTemplateInstance is implicitly called before calling the API
39+
// constructor in HandleApiCall.
40+
result = new (Instantiate(Constructor))();
41+
result = %ToFastProperties(result);
42+
}
3743
return result;
3844
default:
3945
throw 'Unknown API tag <' + tag + '>';
@@ -93,15 +99,15 @@ function ConfigureTemplateInstance(obj, data) {
9399
var prop_data = properties[i + 2];
94100
var attributes = properties[i + 3];
95101
var value = Instantiate(prop_data, name);
96-
%SetProperty(obj, name, value, attributes);
102+
%AddProperty(obj, name, value, attributes);
97103
} else if (length == 4 || length == 5) {
98104
// TODO(verwaest): The 5th value used to be access_control. Remove once
99105
// the bindings are updated.
100106
var name = properties[i + 1];
101-
var getter = properties[i + 2];
102-
var setter = properties[i + 3];
107+
var getter = Instantiate(properties[i + 2]);
108+
var setter = Instantiate(properties[i + 3]);
103109
var attribute = properties[i + 4];
104-
%SetAccessorProperty(obj, name, getter, setter, attribute);
110+
%DefineAccessorPropertyUnchecked(obj, name, getter, setter, attribute);
105111
} else {
106112
throw "Bad properties array";
107113
}

0 commit comments

Comments
 (0)