Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deps: cherry-pick 1f53e42 from v8 upstream (v6.x) #7789

Closed
wants to merge 34 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
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
jaimehrubiks 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
italoacasas 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
4 changes: 2 additions & 2 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ lib/internal/v8_prof_polyfill.js
lib/punycode.js
test/addons/??_*/
test/fixtures
test/**/node_modules
test/disabled
test/tmp*/
tools/doc/node_modules
tools/eslint
node_modules
66 changes: 33 additions & 33 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ env:
rules:
# Possible Errors
# http://eslint.org/docs/rules/#possible-errors
comma-dangle: [2, "only-multiline"]
comma-dangle: [2, only-multiline]
no-control-regex: 2
no-debugger: 2
no-dupe-args: 2
Expand All @@ -14,7 +14,7 @@ rules:
no-empty-character-class: 2
no-ex-assign: 2
no-extra-boolean-cast: 2
no-extra-parens: [2, "functions"]
no-extra-parens: [2, functions]
no-extra-semi: 2
no-func-assign: 2
no-invalid-regexp: 2
Expand All @@ -38,47 +38,47 @@ rules:

# Strict Mode
# http://eslint.org/docs/rules/#strict-mode
strict: [2, "global"]
strict: [2, global]

# Variables
# http://eslint.org/docs/rules/#variables
no-delete-var: 2
no-undef: 2
no-unused-vars: [2, {"args": "none"}]
no-unused-vars: [2, {args: none}]

# Node.js and CommonJS
# http://eslint.org/docs/rules/#nodejs-and-commonjs
no-mixed-requires: 2
no-new-require: 2
no-path-concat: 2
no-restricted-modules: [2, "sys", "_linklist"]
no-restricted-modules: [2, sys, _linklist]

# Stylistic Issues
# http://eslint.org/docs/rules/#stylistic-issues
brace-style: [2, "1tbs", {allowSingleLine: true}]
brace-style: [2, 1tbs, {allowSingleLine: true}]
comma-spacing: 2
eol-last: 2
indent: [2, 2, {SwitchCase: 1}]
key-spacing: [2, {mode: "minimum"}]
key-spacing: [2, {mode: minimum}]
keyword-spacing: 2
linebreak-style: [2, "unix"]
linebreak-style: [2, unix]
max-len: [2, 80, 2]
new-parens: 2
no-mixed-spaces-and-tabs: 2
no-multiple-empty-lines: [2, {max: 2}]
no-trailing-spaces: 2
quotes: [2, "single", "avoid-escape"]
quotes: [2, single, avoid-escape]
semi: 2
space-before-blocks: [2, "always"]
space-before-function-paren: [2, "never"]
space-in-parens: [2, "never"]
space-before-blocks: [2, always]
space-before-function-paren: [2, never]
space-in-parens: [2, never]
space-infix-ops: 2
space-unary-ops: 2

# ECMAScript 6
# http://eslint.org/docs/rules/#ecmascript-6
arrow-parens: [2, "always"]
arrow-spacing: [2, {"before": true, "after": true}]
arrow-parens: [2, always]
arrow-spacing: [2, {before: true, after: true}]
constructor-super: 2
no-class-assign: 2
no-confusing-arrow: 2
Expand All @@ -93,27 +93,27 @@ rules:
align-function-arguments: 2
align-multiline-assignment: 2
assert-fail-single-argument: 2
new-with-error: [2, "Error", "RangeError", "TypeError", "SyntaxError", "ReferenceError"]
new-with-error: [2, Error, RangeError, TypeError, SyntaxError, ReferenceError]
no-deepEqual: 2
no-definegetter-definesetter: 2

# Global scoped method and vars
globals:
DTRACE_HTTP_CLIENT_REQUEST : false
LTTNG_HTTP_CLIENT_REQUEST : false
COUNTER_HTTP_CLIENT_REQUEST : false
DTRACE_HTTP_CLIENT_RESPONSE : false
LTTNG_HTTP_CLIENT_RESPONSE : false
COUNTER_HTTP_CLIENT_RESPONSE : false
DTRACE_HTTP_SERVER_REQUEST : false
LTTNG_HTTP_SERVER_REQUEST : false
COUNTER_HTTP_SERVER_REQUEST : false
DTRACE_HTTP_SERVER_RESPONSE : false
LTTNG_HTTP_SERVER_RESPONSE : false
COUNTER_HTTP_SERVER_RESPONSE : false
DTRACE_NET_STREAM_END : false
LTTNG_NET_STREAM_END : false
COUNTER_NET_SERVER_CONNECTION_CLOSE : false
DTRACE_NET_SERVER_CONNECTION : false
LTTNG_NET_SERVER_CONNECTION : false
COUNTER_NET_SERVER_CONNECTION : false
COUNTER_HTTP_CLIENT_REQUEST: false
COUNTER_HTTP_CLIENT_RESPONSE: false
COUNTER_HTTP_SERVER_REQUEST: false
COUNTER_HTTP_SERVER_RESPONSE: false
COUNTER_NET_SERVER_CONNECTION: false
COUNTER_NET_SERVER_CONNECTION_CLOSE: false
DTRACE_HTTP_CLIENT_REQUEST: false
DTRACE_HTTP_CLIENT_RESPONSE: false
DTRACE_HTTP_SERVER_REQUEST: false
DTRACE_HTTP_SERVER_RESPONSE: false
DTRACE_NET_SERVER_CONNECTION: false
DTRACE_NET_STREAM_END: false
LTTNG_HTTP_CLIENT_REQUEST: false
LTTNG_HTTP_CLIENT_RESPONSE: false
LTTNG_HTTP_SERVER_REQUEST: false
LTTNG_HTTP_SERVER_RESPONSE: false
LTTNG_NET_SERVER_CONNECTION: false
LTTNG_NET_STREAM_END: false
45 changes: 19 additions & 26 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

## Core Technical Committee

The Node.js project is jointly governed by a Core Technical Committee (CTC)
which is responsible for high-level guidance of the project.
The Node.js project is governed by a Core Technical Committee (CTC) which is
responsible for high-level guidance of the project.

The CTC has final authority over this project including:

Expand All @@ -14,11 +14,6 @@ The CTC has final authority over this project including:
* Conduct guidelines
* Maintaining the list of additional Collaborators

Initial membership invitations to the CTC were given to individuals who
had been active contributors to Node.js, and who have significant
experience with the management of the Node.js project. Membership is
expected to evolve over time according to the needs of the project.

For the current list of CTC members, see the project
[README.md](./README.md#current-project-team-members).

Expand Down Expand Up @@ -46,8 +41,8 @@ responsibility for the change. In the case of pull requests proposed
by an existing Collaborator, an additional Collaborator is required
for sign-off. Consensus should be sought if additional Collaborators
participate and there is disagreement around a particular
modification. See [Consensus Seeking Process](#consensus-seeking-process) below for further detail
on the consensus model used for governance.
modification. See [Consensus Seeking Process](#consensus-seeking-process) below
for further detail on the consensus model used for governance.

Collaborators may opt to elevate significant or controversial
modifications, or modifications that have not found consensus to the
Expand Down Expand Up @@ -87,9 +82,8 @@ members affiliated with the over-represented employer(s).

## CTC Meetings

The CTC meets weekly on a Google Hangout On Air. The meeting is run by
a designated moderator approved by the CTC. Each meeting should be
published to YouTube.
The CTC meets weekly in a voice conference call. The meeting is run by a
designated moderator approved by the CTC. Each meeting is streamed on YouTube.

Items are added to the CTC agenda which are considered contentious or
are modifications of governance, contribution policy, CTC membership,
Expand All @@ -100,32 +94,31 @@ That should happen continuously on GitHub and be handled by the larger
group of Collaborators.

Any community member or contributor can ask that something be added to
the next meeting's agenda by logging a GitHub Issue. Any Collaborator,
the next meeting's agenda by logging a GitHub issue. Any Collaborator,
CTC member or the moderator can add the item to the agenda by adding
the ***ctc-agenda*** tag to the issue.

Prior to each CTC meeting, the moderator will share the Agenda with
members of the CTC. CTC members can add any items they like to the
agenda at the beginning of each meeting. The moderator and the CTC
cannot veto or remove items.
Prior to each CTC meeting, the moderator will share the agenda with
members of the CTC. CTC members can also add items to the agenda at the
beginning of each meeting. The moderator and the CTC cannot veto or remove
items.

The CTC may invite persons or representatives from certain projects to
participate in a non-voting capacity.

The moderator is responsible for summarizing the discussion of each
agenda item and sending it as a pull request after the meeting.
The moderator is responsible for summarizing the discussion of each agenda item
and sending it as a pull request after the meeting.

## Consensus Seeking Process

The CTC follows a
[Consensus Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making)
decision making model.

When an agenda item has appeared to reach a consensus, the moderator
will ask "Does anyone object?" as a final call for dissent from the
consensus.
When an agenda item has appeared to reach a consensus, the moderator will ask
"Does anyone object?" as a final call for dissent from the consensus.

If an agenda item cannot reach a consensus, a CTC member can call for
either a closing vote or a vote to table the issue to the next
meeting. The call for a vote must be approved by a majority of the CTC
or else the discussion will continue. Simple majority wins.
If an agenda item cannot reach a consensus, a CTC member can call for either a
closing vote or a vote to table the issue to the next meeting. The call for a
vote must be approved by a simple majority of the CTC or else the discussion
will continue.
6 changes: 2 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -678,13 +678,11 @@ bench-idle:
$(NODE) benchmark/idle_clients.js &

jslint:
$(NODE) tools/jslint.js -J benchmark lib src test tools/doc \
tools/eslint-rules tools/jslint.js
$(NODE) tools/jslint.js -J benchmark lib src test tools

jslint-ci:
$(NODE) tools/jslint.js $(PARALLEL_ARGS) -f tap -o test-eslint.tap \
benchmark lib src test tools/doc \
tools/eslint-rules tools/jslint.js
benchmark lib src test tools

CPPLINT_EXCLUDE ?=
CPPLINT_EXCLUDE += src/node_root_certs.h
Expand Down
26 changes: 26 additions & 0 deletions benchmark/buffers/buffer-hex.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
'use strict';

const common = require('../common.js');

const bench = common.createBenchmark(main, {
len: [0, 1, 64, 1024],
n: [1e7]
});

function main(conf) {
const len = conf.len | 0;
const n = conf.n | 0;
const buf = Buffer.alloc(len);

for (let i = 0; i < buf.length; i++)
buf[i] = i & 0xff;

const hex = buf.toString('hex');

bench.start();

for (let i = 0; i < n; i += 1)
Buffer.from(hex, 'hex');

bench.end(n);
}
8 changes: 5 additions & 3 deletions deps/openssl/openssl.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -121,15 +121,17 @@
}], # end of conditions of openssl_no_asm
['OS=="win"', {
'defines' : ['<@(openssl_defines_all_win)'],
}, {
'defines' : ['<@(openssl_defines_all_non_win)']
}],
['target_arch=="ia32" and OS=="win"', {
'msvs_settings': {
'MASM': {
# Use /safeseh, see commit: 01fa5ee
'UseSafeExceptionHandlers': 'true',
},
},
}, {
'defines' : ['<@(openssl_defines_all_non_win)']
}]
}],
],
'include_dirs': ['<@(openssl_include_dirs)'],
'direct_dependent_settings': {
Expand Down
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 54
#define V8_PATCH_LEVEL 56

// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
Expand Down
53 changes: 14 additions & 39 deletions deps/v8/src/crankshaft/hydrogen.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6044,60 +6044,34 @@ void HOptimizedGraphBuilder::VisitArrayLiteral(ArrayLiteral* expr) {
Handle<AllocationSite> site;
Handle<LiteralsArray> literals(environment()->closure()->literals(),
isolate());
bool uninitialized = false;
Handle<Object> literals_cell(literals->literal(expr->literal_index()),
isolate());
Handle<JSObject> boilerplate_object;
if (literals_cell->IsUndefined()) {
uninitialized = true;
Handle<Object> raw_boilerplate;
ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate(), raw_boilerplate,
Runtime::CreateArrayLiteralBoilerplate(
isolate(), literals, expr->constant_elements(),
is_strong(function_language_mode())),
Bailout(kArrayBoilerplateCreationFailed));

boilerplate_object = Handle<JSObject>::cast(raw_boilerplate);
AllocationSiteCreationContext creation_context(isolate());
site = creation_context.EnterNewScope();
if (JSObject::DeepWalk(boilerplate_object, &creation_context).is_null()) {
return Bailout(kArrayBoilerplateCreationFailed);
}
creation_context.ExitScope(site, boilerplate_object);
literals->set_literal(expr->literal_index(), *site);

if (boilerplate_object->elements()->map() ==
isolate()->heap()->fixed_cow_array_map()) {
isolate()->counters()->cow_arrays_created_runtime()->Increment();
}
} else {
if (!literals_cell->IsUndefined()) {
DCHECK(literals_cell->IsAllocationSite());
site = Handle<AllocationSite>::cast(literals_cell);
boilerplate_object = Handle<JSObject>(
JSObject::cast(site->transition_info()), isolate());
}

DCHECK(!boilerplate_object.is_null());
DCHECK(site->SitePointsToLiteral());

ElementsKind boilerplate_elements_kind =
boilerplate_object->GetElementsKind();
ElementsKind boilerplate_elements_kind = expr->constant_elements_kind();
if (!boilerplate_object.is_null()) {
boilerplate_elements_kind = boilerplate_object->GetElementsKind();
}

// Check whether to use fast or slow deep-copying for boilerplate.
int max_properties = kMaxFastLiteralProperties;
if (IsFastLiteral(boilerplate_object,
kMaxFastLiteralDepth,
if (!boilerplate_object.is_null() &&
IsFastLiteral(boilerplate_object, kMaxFastLiteralDepth,
&max_properties)) {
DCHECK(site->SitePointsToLiteral());
AllocationSiteUsageContext site_context(isolate(), site, false);
site_context.EnterNewScope();
literal = BuildFastLiteral(boilerplate_object, &site_context);
site_context.ExitScope(site, boilerplate_object);
} else {
NoObservableSideEffectsScope no_effects(this);
// Boilerplate already exists and constant elements are never accessed,
// pass an empty fixed array to the runtime function instead.
Handle<FixedArray> constants = isolate()->factory()->empty_fixed_array();
Handle<FixedArray> constants = expr->constant_elements();
int literal_index = expr->literal_index();
int flags = expr->ComputeFlags(true);

Expand All @@ -6108,7 +6082,9 @@ void HOptimizedGraphBuilder::VisitArrayLiteral(ArrayLiteral* expr) {
literal = Add<HCallRuntime>(Runtime::FunctionForId(function_id), 4);

// Register to deopt if the boilerplate ElementsKind changes.
top_info()->dependencies()->AssumeTransitionStable(site);
if (!site.is_null()) {
top_info()->dependencies()->AssumeTransitionStable(site);
}
}

// The array is expected in the bailout environment during computation
Expand Down Expand Up @@ -6140,9 +6116,8 @@ void HOptimizedGraphBuilder::VisitArrayLiteral(ArrayLiteral* expr) {
case FAST_HOLEY_ELEMENTS:
case FAST_DOUBLE_ELEMENTS:
case FAST_HOLEY_DOUBLE_ELEMENTS: {
HStoreKeyed* instr = Add<HStoreKeyed>(elements, key, value, nullptr,
boilerplate_elements_kind);
instr->SetUninitialized(uninitialized);
Add<HStoreKeyed>(elements, key, value, nullptr,
boilerplate_elements_kind);
break;
}
default:
Expand Down
Loading