Commit 401419e3 authored by Jérémy Lal's avatar Jérémy Lal

Imported Upstream version 4.1.0~dfsg

parent 202fac13
......@@ -3,15 +3,16 @@ env:
# enable ECMAScript features
ecmaFeatures:
blockBindings: true
templateStrings: true
octalLiterals: true
arrowFunctions: true
binaryLiterals: true
generators: true
blockBindings: true
classes: true
forOf: true
objectLiteralShorthandProperties: true
generators: true
objectLiteralShorthandMethods: true
classes: true
objectLiteralShorthandProperties: true
octalLiterals: true
templateStrings: true
rules:
# Possible Errors
......
This diff is collapsed.
......@@ -198,7 +198,7 @@ CoC](http://www.rust-lang.org/conduct.html).
* Please keep unstructured critique to a minimum. If you have solid
ideas you want to experiment with, make a fork and see how it works.
* We will exclude you from interaction if you insult, demean or harass
anyone. That is not welcome behaviour. We interpret the term
anyone. That is not welcome behavior. We interpret the term
"harassment" as including the definition in the [Citizen Code of
Conduct](http://citizencodeofconduct.org/); if you have any lack of
clarity about what might be included in that concept, please read
......@@ -212,7 +212,7 @@ CoC](http://www.rust-lang.org/conduct.html).
a newcomer, we care about making this community a safe place for you
and we've got your back.
* Likewise any spamming, trolling, flaming, baiting or other
attention-stealing behaviour is not welcome.
attention-stealing behavior is not welcome.
* Avoid the use of personal pronouns in code comments or
documentation. There is no need to address persons when explaining
code (e.g. "When the developer")
......@@ -69,6 +69,7 @@ clean:
-rm -rf out/Makefile $(NODE_EXE) $(NODE_G_EXE) out/$(BUILDTYPE)/$(NODE_EXE)
@if [ -d out ]; then find out/ -name '*.o' -o -name '*.a' | xargs rm -rf; fi
-rm -rf node_modules
-rm -f test.tap
distclean:
-rm -rf out
......
......@@ -282,7 +282,7 @@ Instructions:
1. Obtain a copy of openssl-fips-x.x.x.tar.gz.
To comply with the security policy you must ensure the path
through which you get the file complies with the requirements
for a "secure intallation" as described in section 6.6 in
for a "secure installation" as described in section 6.6 in
the [user guide] (https://openssl.org/docs/fips/UserGuide-2.0.pdf).
For evaluation/experimentation you can simply download and verify
`openssl-fips-x.x.x.tar.gz` from https://www.openssl.org/source/
......@@ -337,14 +337,12 @@ information about the governance of the Node.js project, see
* [fishrock123](https://github.com/fishrock123) - **Jeremiah Senkpiel** <fishrock123@rocketmail.com>
* [indutny](https://github.com/indutny) - **Fedor Indutny** <fedor.indutny@gmail.com>
* [jasnell](https://github.com/jasnell) - **James M Snell** <jasnell@gmail.com>
* [mhdawson](https://github.com/mhdawson) - **Michael Dawson** <michael_dawson@ca.ibm.com>
* [misterdjules](https://github.com/misterdjules) - **Julien Gilli** <jgilli@nodejs.org>
* [mscdex](https://github.com/mscdex) - **Brian White** <mscdex@mscdex.net>
* [orangemocha](https://github.com/orangemocha) - **Alexis Campailla** <orangemocha@nodejs.org>
* [piscisaureus](https://github.com/piscisaureus) - **Bert Belder** <bertbelder@gmail.com>
* [rvagg](https://github.com/rvagg) - **Rod Vagg** <rod@vagg.org>
* [shigeki](https://github.com/shigeki) - **Shigeki Ohtsu** <ohtsu@iij.ad.jp>
* [srl295](https://github.com/srl295) - **Steven R Loomis** <srloomis@us.ibm.com>
* [trevnorris](https://github.com/trevnorris) - **Trevor Norris** <trev.norris@gmail.com>
### Collaborators
......@@ -359,6 +357,7 @@ information about the governance of the Node.js project, see
* [joaocgreis](https://github.com/joaocgreis) - **João Reis** <reis@janeasystems.com>
* [julianduque](https://github.com/julianduque) - **Julian Duque** <julianduquej@gmail.com>
* [lxe](https://github.com/lxe) - **Aleksey Smolenchuk** <lxe@lxe.co>
* [mhdawson](https://github.com/mhdawson) - **Michael Dawson** <michael_dawson@ca.ibm.com>
* [micnic](https://github.com/micnic) - **Nicu Micleușanu** <micnic90@gmail.com>
* [mikeal](https://github.com/mikeal) - **Mikeal Rogers** <mikeal.rogers@gmail.com>
* [monsanto](https://github.com/monsanto) - **Christopher Monsanto** <chris@monsan.to>
......@@ -371,11 +370,13 @@ information about the governance of the Node.js project, see
* [sam-github](https://github.com/sam-github) - **Sam Roberts** <vieuxtech@gmail.com>
* [seishun](https://github.com/seishun) - **Nikolai Vavilov** <vvnicholas@gmail.com>
* [silverwind](https://github.com/silverwind) - **Roman Reiss** <me@silverwind.io>
* [srl295](https://github.com/srl295) - **Steven R Loomis** <srloomis@us.ibm.com>
* [targos](https://github.com/targos) - **Michaël Zasso** <mic.besace@gmail.com>
* [tellnes](https://github.com/tellnes) - **Christian Tellnes** <christian@tellnes.no>
* [thefourtheye](https://github.com/thefourtheye) - **Sakthipriyan Vairamani** <thechargingvolcano@gmail.com>
* [thlorenz](https://github.com/thlorenz) - **Thorsten Lorenz** <thlorenz@gmx.de>
* [Trott](https://github.com/Trott) - **Rich Trott** <rtrott@gmail.com>
* [tunniclm](https://github.com/tunniclm) - **Mike Tunnicliffe** <m.j.tunnicliffe@gmail.com>
* [vkurchatkin](https://github.com/vkurchatkin) - **Vladimir Kurchatkin** <vladimir.kurchatkin@gmail.com>
* [yosuke-furukawa](https://github.com/yosuke-furukawa) - **Yosuke Furukawa** <yosuke.furukawa@gmail.com>
......@@ -405,7 +406,7 @@ gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273
```
See the section above on [Verifying Binaries](#verifying-binaries) for
details on what to do with these keys to verify a downloaded file is official.
details on what to do with these keys to verify that a downloaded file is official.
Previous releases of Node.js have been signed with one of the following GPG
keys:
......
......@@ -23,8 +23,8 @@ There are three ways to run benchmark tests:
For example, buffers:
```sh
iojs benchmark/common.js buffers
```bash
node benchmark/common.js buffers
```
The above command will find all scripts under `buffers` directory and require
......@@ -87,8 +87,8 @@ The last number is the rate of operations. Higher is better.
For example, buffer-slice.js:
```sh
iojs benchmark/buffers/buffer-read.js
```bash
node benchmark/buffers/buffer-read.js
```
The output:
```
......@@ -104,8 +104,8 @@ This example will run only the first type of url test, with one iteration.
(Note: benchmarks require __many__ iterations to be statistically accurate.)
```sh
iojs benchmark/url/url-parse.js type=one n=1
```bash
node benchmark/url/url-parse.js type=one n=1
```
Output:
```
......
......@@ -64,6 +64,10 @@
['target_arch=="x64"', {
'msvs_configuration_platform': 'x64',
}],
['OS=="aix"', {
'cflags': [ '-gxcoff' ],
'ldflags': [ '-Wl,-bbigtoc' ],
}],
],
'msvs_settings': {
'VCCLCompilerTool': {
......@@ -217,11 +221,11 @@
'BUILDING_UV_SHARED=1',
],
}],
[ 'OS in "linux freebsd openbsd solaris"', {
[ 'OS in "linux freebsd openbsd solaris aix"', {
'cflags': [ '-pthread', ],
'ldflags': [ '-pthread' ],
}],
[ 'OS in "linux freebsd openbsd solaris android"', {
[ 'OS in "linux freebsd openbsd solaris android aix"', {
'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ],
'cflags_cc': [ '-fno-rtti', '-fno-exceptions', '-std=gnu++0x' ],
'ldflags': [ '-rdynamic' ],
......@@ -243,11 +247,11 @@
'cflags': [ '-m64' ],
'ldflags': [ '-m64' ],
}],
[ 'target_arch=="ppc"', {
[ 'target_arch=="ppc" and OS!="aix"', {
'cflags': [ '-m32' ],
'ldflags': [ '-m32' ],
}],
[ 'target_arch=="ppc64"', {
[ 'target_arch=="ppc64" and OS!="aix"', {
'cflags': [ '-m64', '-mminimal-toc' ],
'ldflags': [ '-m64' ],
}],
......@@ -257,6 +261,18 @@
'cflags!': [ '-pthread' ],
'ldflags!': [ '-pthread' ],
}],
[ 'OS=="aix"', {
'conditions': [
[ 'target_arch=="ppc"', {
'ldflags': [ '-Wl,-bmaxdata:0x60000000/dsa' ],
}],
[ 'target_arch=="ppc64"', {
'cflags': [ '-maix64' ],
'ldflags': [ '-maix64' ],
}],
],
'ldflags!': [ '-rdynamic' ],
}],
],
}],
[ 'OS=="android"', {
......
......@@ -25,7 +25,8 @@ import nodedownload
# parse our options
parser = optparse.OptionParser()
valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux', 'android')
valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux',
'android', 'aix')
valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 'x32',
'x64', 'x86')
valid_arm_float_abi = ('soft', 'softfp', 'hard')
......@@ -492,11 +493,11 @@ def check_compiler(o):
o['variables']['gas_version'] = get_gas_version(CC)
def cc_macros():
"""Checks predefined macros using the CC command."""
def cc_macros(cc=None):
"""Checks predefined macros using the C compiler command."""
try:
p = subprocess.Popen(shlex.split(CC) + ['-dM', '-E', '-'],
p = subprocess.Popen(shlex.split(cc or CC) + ['-dM', '-E', '-'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
......@@ -554,7 +555,12 @@ def is_arm_hard_float_abi():
def host_arch_cc():
"""Host architecture check using the CC command."""
k = cc_macros()
if sys.platform.startswith('aix'):
# we only support gcc at this point and the default on AIX
# would be xlc so hard code gcc
k = cc_macros('gcc')
else:
k = cc_macros()
matchup = {
'__aarch64__' : 'arm64',
......
......@@ -9,6 +9,10 @@
'_GNU_SOURCE'
]
}],
[ 'OS=="aix"', {
'include_dirs': [ 'config/aix' ],
'sources': [ 'config/aix/ares_config.h' ],
}],
['OS=="solaris"', {
'defines': [
'__EXTENSIONS__',
......
......@@ -137,7 +137,7 @@
],
}],
[ 'OS in "linux freebsd openbsd solaris android"', {
[ 'OS in "linux freebsd openbsd solaris android aix"', {
'variables': {
'gcc_version%': '<!(python build/gcc_version.py)>)'
},
......
This diff is collapsed.
......@@ -108,7 +108,7 @@
'DebugBaseCommon': {
'abstract': 1,
'variables': {
'v8_enable_handle_zapping%': 0,
'v8_enable_handle_zapping%': 1,
},
'conditions': [
['v8_enable_handle_zapping==1', {
......@@ -118,7 +118,7 @@
}, # Debug
'Release': {
'variables': {
'v8_enable_handle_zapping%': 1,
'v8_enable_handle_zapping%': 0,
},
'conditions': [
['v8_enable_handle_zapping==1', {
......
CODE_REVIEW_SERVER: https://codereview.chromium.org
CC_LIST: v8-dev@googlegroups.com
CC_LIST: v8-reviews@googlegroups.com
VIEW_VC: https://chromium.googlesource.com/v8/v8/+/
STATUS: http://v8-status.appspot.com/status
TRY_ON_UPLOAD: False
......
......@@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 4
#define V8_MINOR_VERSION 5
#define V8_BUILD_NUMBER 103
#define V8_PATCH_LEVEL 30
#define V8_PATCH_LEVEL 33
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
......
......@@ -100,22 +100,37 @@ bool Accessors::IsJSArrayBufferViewFieldAccessor(Handle<Map> map,
Isolate* isolate = name->GetIsolate();
switch (map->instance_type()) {
case JS_TYPED_ARRAY_TYPE:
// %TypedArray%.prototype is non-configurable, and so are the following
// named properties on %TypedArray%.prototype, so we can directly inline
// the field-load for typed array maps that still use their
// %TypedArray%.prototype.
if (JSFunction::cast(map->GetConstructor())->prototype() !=
map->prototype()) {
case JS_TYPED_ARRAY_TYPE: {
if (!CheckForName(name, isolate->factory()->length_string(),
JSTypedArray::kLengthOffset, object_offset) &&
!CheckForName(name, isolate->factory()->byte_length_string(),
JSTypedArray::kByteLengthOffset, object_offset) &&
!CheckForName(name, isolate->factory()->byte_offset_string(),
JSTypedArray::kByteOffsetOffset, object_offset)) {
return false;
}
return CheckForName(name, isolate->factory()->length_string(),
JSTypedArray::kLengthOffset, object_offset) ||
CheckForName(name, isolate->factory()->byte_length_string(),
JSTypedArray::kByteLengthOffset, object_offset) ||
CheckForName(name, isolate->factory()->byte_offset_string(),
JSTypedArray::kByteOffsetOffset, object_offset);
if (map->is_dictionary_map()) return false;
// Check if the property is overridden on the instance.
DescriptorArray* descriptors = map->instance_descriptors();
int descriptor = descriptors->SearchWithCache(*name, *map);
if (descriptor != DescriptorArray::kNotFound) return false;
Handle<Object> proto = Handle<Object>(map->prototype(), isolate);
if (!proto->IsJSReceiver()) return false;
// Check if the property is defined in the prototype chain.
LookupIterator it(proto, name);
if (!it.IsFound()) return false;
Object* original_proto =
JSFunction::cast(map->GetConstructor())->prototype();
// Property is not configurable. It is enough to verify that
// the holder is the same.
return *it.GetHolder<Object>() == original_proto;
}
case JS_DATA_VIEW_TYPE:
return CheckForName(name, isolate->factory()->byte_length_string(),
JSDataView::kByteLengthOffset, object_offset) ||
......
......@@ -441,6 +441,7 @@ void ObjectLiteral::BuildConstantProperties(Isolate* isolate) {
if (position == boilerplate_properties_ * 2) {
DCHECK(property->is_computed_name());
is_simple = false;
break;
}
DCHECK(!property->is_computed_name());
......
......@@ -2782,6 +2782,28 @@ void MarkCompactCollector::MigrateObjectMixed(HeapObject* dst, HeapObject* src,
Address base_pointer_slot =
dst->address() + FixedTypedArrayBase::kBasePointerOffset;
RecordMigratedSlot(Memory::Object_at(base_pointer_slot), base_pointer_slot);
} else if (src->IsJSArrayBuffer()) {
heap()->MoveBlock(dst->address(), src->address(), size);
// Visit inherited JSObject properties and byte length of ArrayBuffer
Address regular_slot =
dst->address() + JSArrayBuffer::BodyDescriptor::kStartOffset;
Address regular_slots_end =
dst->address() + JSArrayBuffer::kByteLengthOffset + kPointerSize;
while (regular_slot < regular_slots_end) {
RecordMigratedSlot(Memory::Object_at(regular_slot), regular_slot);
regular_slot += kPointerSize;
}
// Skip backing store and visit just internal fields
Address internal_field_slot = dst->address() + JSArrayBuffer::kSize;
Address internal_fields_end =
dst->address() + JSArrayBuffer::kSizeWithInternalFields;
while (internal_field_slot < internal_fields_end) {
RecordMigratedSlot(Memory::Object_at(internal_field_slot),
internal_field_slot);
internal_field_slot += kPointerSize;
}
} else if (FLAG_unbox_double_fields) {
Address dst_addr = dst->address();
Address src_addr = src->address();
......@@ -3206,6 +3228,12 @@ bool MarkCompactCollector::IsSlotInLiveObject(Address slot) {
if (object->IsFixedTypedArrayBase()) {
return static_cast<int>(slot - object->address()) ==
FixedTypedArrayBase::kBasePointerOffset;
} else if (object->IsJSArrayBuffer()) {
int off = static_cast<int>(slot - object->address());
return (off >= JSArrayBuffer::BodyDescriptor::kStartOffset &&
off <= JSArrayBuffer::kByteLengthOffset) ||
(off >= JSArrayBuffer::kSize &&
off < JSArrayBuffer::kSizeWithInternalFields);
} else if (FLAG_unbox_double_fields) {
// Filter out slots that happen to point to unboxed double fields.
LayoutDescriptorHelper helper(object->map());
......
......@@ -81,10 +81,8 @@ int StaticNewSpaceVisitor<StaticVisitor>::VisitJSArrayBuffer(
Map* map, HeapObject* object) {
Heap* heap = map->GetHeap();
VisitPointers(
heap,
HeapObject::RawField(object, JSArrayBuffer::BodyDescriptor::kStartOffset),
HeapObject::RawField(object, JSArrayBuffer::kSizeWithInternalFields));
JSArrayBuffer::JSArrayBufferIterateBody<
StaticNewSpaceVisitor<StaticVisitor> >(heap, object);
if (!JSArrayBuffer::cast(object)->is_external()) {
heap->RegisterLiveArrayBuffer(true,
JSArrayBuffer::cast(object)->backing_store());
......@@ -503,10 +501,7 @@ void StaticMarkingVisitor<StaticVisitor>::VisitJSArrayBuffer(
Map* map, HeapObject* object) {
Heap* heap = map->GetHeap();
StaticVisitor::VisitPointers(
heap,
HeapObject::RawField(object, JSArrayBuffer::BodyDescriptor::kStartOffset),
HeapObject::RawField(object, JSArrayBuffer::kSizeWithInternalFields));
JSArrayBuffer::JSArrayBufferIterateBody<StaticVisitor>(heap, object);
if (!JSArrayBuffer::cast(object)->is_external()) {
heap->RegisterLiveArrayBuffer(false,
JSArrayBuffer::cast(object)->backing_store());
......
......@@ -503,6 +503,17 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback) {
obj_address + FixedTypedArrayBase::kBasePointerOffset,
obj_address + FixedTypedArrayBase::kHeaderSize,
slot_callback);
} else if (heap_object->IsJSArrayBuffer()) {
FindPointersToNewSpaceInRegion(
obj_address +
JSArrayBuffer::BodyDescriptor::kStartOffset,
obj_address + JSArrayBuffer::kByteLengthOffset +
kPointerSize,
slot_callback);
FindPointersToNewSpaceInRegion(
obj_address + JSArrayBuffer::kSize,
obj_address + JSArrayBuffer::kSizeWithInternalFields,
slot_callback);
} else if (FLAG_unbox_double_fields) {
LayoutDescriptorHelper helper(heap_object->map());
DCHECK(!helper.all_fields_tagged());
......
......@@ -1503,6 +1503,8 @@ HeapObjectContents HeapObject::ContentType() {
} else if (type >= FIRST_FIXED_TYPED_ARRAY_TYPE &&
type <= LAST_FIXED_TYPED_ARRAY_TYPE) {
return HeapObjectContents::kMixedValues;
} else if (type == JS_ARRAY_BUFFER_TYPE) {
return HeapObjectContents::kMixedValues;
} else if (type <= LAST_DATA_TYPE) {
// TODO(jochen): Why do we claim that Code and Map contain only raw values?
return HeapObjectContents::kRawValues;
......@@ -6091,6 +6093,32 @@ void JSArrayBuffer::set_is_shared(bool value) {
}
// static
template <typename StaticVisitor>
void JSArrayBuffer::JSArrayBufferIterateBody(Heap* heap, HeapObject* obj) {
StaticVisitor::VisitPointers(
heap,
HeapObject::RawField(obj, JSArrayBuffer::BodyDescriptor::kStartOffset),
HeapObject::RawField(obj,
JSArrayBuffer::kByteLengthOffset + kPointerSize));
StaticVisitor::VisitPointers(
heap, HeapObject::RawField(obj, JSArrayBuffer::kSize),
HeapObject::RawField(obj, JSArrayBuffer::kSizeWithInternalFields));
}
void JSArrayBuffer::JSArrayBufferIterateBody(HeapObject* obj,
ObjectVisitor* v) {
v->VisitPointers(
HeapObject::RawField(obj, JSArrayBuffer::BodyDescriptor::kStartOffset),
HeapObject::RawField(obj,
JSArrayBuffer::kByteLengthOffset + kPointerSize));
v->VisitPointers(
HeapObject::RawField(obj, JSArrayBuffer::kSize),
HeapObject::RawField(obj, JSArrayBuffer::kSizeWithInternalFields));
}
Object* JSArrayBufferView::byte_offset() const {
if (WasNeutered()) return Smi::FromInt(0);
return Object::cast(READ_FIELD(this, kByteOffsetOffset));
......
......@@ -1420,7 +1420,6 @@ void HeapObject::IterateBody(InstanceType type, int object_size,
case JS_VALUE_TYPE:
case JS_DATE_TYPE:
case JS_ARRAY_TYPE:
case JS_ARRAY_BUFFER_TYPE:
case JS_TYPED_ARRAY_TYPE:
case JS_DATA_VIEW_TYPE:
case JS_SET_TYPE:
......@@ -1436,6 +1435,9 @@ void HeapObject::IterateBody(InstanceType type, int object_size,
case JS_MESSAGE_OBJECT_TYPE:
JSObject::BodyDescriptor::IterateBody(this, object_size, v);
break;
case JS_ARRAY_BUFFER_TYPE:
JSArrayBuffer::JSArrayBufferIterateBody(this, v);
break;
case JS_FUNCTION_TYPE:
reinterpret_cast<JSFunction*>(this)
->JSFunctionIterateBody(object_size, v);
......
......@@ -10014,9 +10014,14 @@ class JSArrayBuffer: public JSObject {
DECLARE_PRINTER(JSArrayBuffer)
DECLARE_VERIFIER(JSArrayBuffer)
static const int kBackingStoreOffset = JSObject::kHeaderSize;
static const int kByteLengthOffset = kBackingStoreOffset + kPointerSize;
static const int kBitFieldSlot = kByteLengthOffset + kPointerSize;
static const int kByteLengthOffset = JSObject::kHeaderSize;
// NOTE: GC will visit objects fields:
// 1. From JSObject::BodyDescriptor::kStartOffset to kByteLengthOffset +
// kPointerSize
// 2. From start of the internal fields and up to the end of them
static const int kBackingStoreOffset = kByteLengthOffset + kPointerSize;
static const int kBitFieldSlot = kBackingStoreOffset + kPointerSize;
#if V8_TARGET_LITTLE_ENDIAN || !V8_HOST_ARCH_64_BIT
static const int kBitFieldOffset = kBitFieldSlot;
#else
......@@ -10027,6 +10032,12 @@ class JSArrayBuffer: public JSObject {
static const int kSizeWithInternalFields =
kSize + v8::ArrayBuffer::kInternalFieldCount * kPointerSize;
template <typename StaticVisitor>
static inline void JSArrayBufferIterateBody(Heap* heap, HeapObject* obj);
static inline void JSArrayBufferIterateBody(HeapObject* obj,
ObjectVisitor* v);
class IsExternal : public BitField<bool, 1, 1> {};
class IsNeuterable : public BitField<bool, 2, 1> {};
class WasNeutered : public BitField<bool, 3, 1> {};
......
......@@ -21,7 +21,6 @@ var GlobalFunction = global.Function;
var GlobalNumber = global.Number;
var GlobalObject = global.Object;
var InternalArray = utils.InternalArray;
var SetFunctionName = utils.SetFunctionName;
var MathAbs;
var ProxyDelegateCallAndConstruct;
......@@ -1705,7 +1704,8 @@ function FunctionBind(this_arg) { // Length is 1.
var name = this.name;
var bound_name = IS_STRING(name) ? name : "";
SetFunctionName(result, bound_name, "bound");
%DefineDataPropertyUnchecked(result, "name", "bound " + bound_name,
DONT_ENUM | READ_ONLY);
// We already have caller and arguments properties on functions,
// which are non-configurable. It therefore makes no sence to
......
......@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title> Node.js v4.0.0 Manual &amp; Documentation</title>
<title> Node.js v4.1.0 Manual &amp; Documentation</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic">
<link rel="stylesheet" href="assets/style.css">
<link rel="stylesheet" href="assets/sh.css">
......@@ -61,7 +61,7 @@
<div id="column1" data-id="_toc" class="interior">
<header>
<h1>Node.js v4.0.0 Documentation</h1>
<h1>Node.js v4.1.0 Documentation</h1>
<div id="gtoc">
<p>
<a href="index.html" name="toc">Index</a> |
......
......@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>Addons Node.js v4.0.0 Manual &amp; Documentation</title>
<title>Addons Node.js v4.1.0 Manual &amp; Documentation</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic">
<link rel="stylesheet" href="assets/style.css">
<link rel="stylesheet" href="assets/sh.css">
......@@ -61,7 +61,7 @@
<div id="column1" data-id="addons" class="interior">
<header>
<h1>Node.js v4.0.0 Documentation</h1>
<h1>Node.js v4.1.0 Documentation</h1>
<div id="gtoc">
<p>
<a href="index.html" name="toc">Index</a> |
......
This diff is collapsed.
This diff is collapsed.
......@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>Assert Node.js v4.0.0 Manual &amp; Documentation</title>
<title>Assert Node.js v4.1.0 Manual &amp; Documentation</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic">
<link rel="stylesheet" href="assets/style.css">
<link rel="stylesheet" href="assets/sh.css">
......@@ -61,7 +61,7 @@
<div id="column1" data-id="assert" class="interior">
<header>
<h1>Node.js v4.0.0 Documentation</h1>
<h1>Node.js v4.1.0 Documentation</h1>
<div id="gtoc">
<p>
<a href="index.html" name="toc">Index</a> |
......@@ -106,7 +106,7 @@ access it with <code>require(&#39;assert&#39;)</code>.
</p>
<h2>assert(value[, message]), assert.ok(value[, message])<span><a class="mark" href="#assert_assert_value_message_assert_ok_value_message" id="assert_assert_value_message_assert_ok_value_message">#</a></span></h2>
<p>Tests if value is truthy, it is equivalent to <code>assert.equal(true, !!value, message);</code>
<p>Tests if value is truthy. It is equivalent to <code>assert.equal(true, !!value, message)</code>.
</p>
<h2>assert.equal(actual, expected[, message])<span><a class="mark" href="#assert_assert_equal_actual_expected_message" id="assert_assert_equal_actual_expected_message">#</a></span></h2>
......
......@@ -36,7 +36,7 @@
"textRaw": "assert(value[, message]), assert.ok(value[, message])",
"type": "method",
"name": "ok",
"desc": "<p>Tests if value is truthy, it is equivalent to <code>assert.equal(true, !!value, message);</code>\n\n</p>\n",
"desc": "<p>Tests if value is truthy. It is equivalent to <code>assert.equal(true, !!value, message)</code>.\n\n</p>\n",
"signatures": [
{
"params": [
......
......@@ -11,7 +11,7 @@ Throws an exception that displays the values for `actual` and `expected` separat
## assert(value[, message]), assert.ok(value[, message])
Tests if value is truthy, it is equivalent to `assert.equal(true, !!value, message);`
Tests if value is truthy. It is equivalent to `assert.equal(true, !!value, message)`.
## assert.equal(actual, expected[, message])
......
......@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>Buffer Node.js v4.0.0 Manual &amp; Documentation</title>
<title>Buffer Node.js v4.1.0 Manual &amp; Documentation</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic">
<link rel="stylesheet" href="assets/style.css">
<link rel="stylesheet" href="assets/sh.css">
......@@ -61,7 +61,7 @@
<div id="column1" data-id="buffer" class="interior">
<header>
<h1>Node.js v4.0.0 Documentation</h1>
<h1>Node.js v4.1.0 Documentation</h1>
<div id="gtoc">
<p>
<a href="index.html" name="toc">Index</a> |
......@@ -102,7 +102,7 @@
<li><a href="#buffer_buf_equals_otherbuffer">buf.equals(otherBuffer)</a></li>
<li><a href="#buffer_buf_compare_otherbuffer">buf.compare(otherBuffer)</a></li>
<li><a href="#buffer_buf_copy_targetbuffer_targetstart_sourcestart_sourceend">buf.copy(targetBuffer[, targetStart][, sourceStart][, sourceEnd])</a></li>
<li><a href="#buffer_buf_slice_start_end">buf.slice([start][, end])</a></li>
<li><a href="#buffer_buf_slice_start_end">buf.slice([start[, end]])</a></li>
<li><a href="#buffer_buf_indexof_value_byteoffset">buf.indexOf(value[, byteOffset])</a></li>
<li><a href="#buffer_buf_readuint8_offset_noassert">buf.readUInt8(offset[, noAssert])</a></li>
<li><a href="#buffer_buf_readuint16le_offset_noassert">buf.readUInt16LE(offset[, noAssert])</a></li>
......@@ -418,8 +418,8 @@ may be beyond the end of the buffer. Defaults to <code>false</code>.
</div></ul>
<p>Decodes and returns a string from buffer data encoded using the specified
character set encoding. If <code>encoding</code> is <code>undefined</code> or <code>null</code>, then <code>encoding</code>
defaults to <code>&#39;utf8&#39;. The </code>start<code> and </code>end<code> parameters default to </code>0<code> and
</code>buffer.length<code> when </code>undefined`.
defaults to <code>&#39;utf8&#39;</code>. The <code>start</code> and <code>end</code> parameters default to <code>0</code> and
<code>buffer.length</code> when <code>undefined</code>.
</p>
<pre><code>buf = new Buffer(26);
......@@ -537,7 +537,7 @@ buf.copy(buf, 0, 4, 10);
console.log(buf.toString());
// efghijghijklmnopqrstuvwxyz</code></pre>
<h3>buf.slice([start][, end])<span><a class="mark" href="#buffer_buf_slice_start_end" id="buffer_buf_slice_start_end">#</a></span></h3>
<h3>buf.slice([start[, end]])<span><a class="mark" href="#buffer_buf_slice_start_end" id="buffer_buf_slice_start_end">#</a></span></h3>
<div class="signature"><ul>
<li><code>start</code> Number, Optional, Default: 0</li>
<li><code>end</code> Number, Optional, Default: <code>buffer.length</code></li>
......
......@@ -537,7 +537,7 @@
]
}
],
"desc": "<p>Decodes and returns a string from buffer data encoded using the specified\ncharacter set encoding. If <code>encoding</code> is <code>undefined</code> or <code>null</code>, then <code>encoding</code>\ndefaults to <code>&#39;utf8&#39;. The </code>start<code> and </code>end<code> parameters default to </code>0<code> and\n</code>buffer.length<code> when </code>undefined`.\n\n</p>\n<pre><code>buf = new Buffer(26);\nfor (var i = 0 ; i &lt; 26 ; i++) {\n buf[i] = i + 97; // 97 is ASCII a\n}\nbuf.toString(&#39;ascii&#39;); // outputs: abcdefghijklmnopqrstuvwxyz\nbuf.toString(&#39;ascii&#39;,0,5); // outputs: abcde\nbuf.toString(&#39;utf8&#39;,0,5); // outputs: abcde\nbuf.toString(undefined,0,5); // encoding defaults to &#39;utf8&#39;, outputs abcde</code></pre>\n<p>See <code>buffer.write()</code> example, above.\n\n\n</p>\n"
"desc": "<p>Decodes and returns a string from buffer data encoded using the specified\ncharacter set encoding. If <code>encoding</code> is <code>undefined</code> or <code>null</code>, then <code>encoding</code>\ndefaults to <code>&#39;utf8&#39;</code>. The <code>start</code> and <code>end</code> parameters default to <code>0</code> and\n<code>buffer.length</code> when <code>undefined</code>.\n\n</p>\n<pre><code>buf = new Buffer(26);\nfor (var i = 0 ; i &lt; 26 ; i++) {\n buf[i] = i + 97; // 97 is ASCII a\n}\nbuf.toString(&#39;ascii&#39;); // outputs: abcdefghijklmnopqrstuvwxyz\nbuf.toString(&#39;ascii&#39;,0,5); // outputs: abcde\nbuf.toString(&#39;utf8&#39;,0,5); // outputs: abcde\nbuf.toString(undefined,0,5); // encoding defaults to &#39;utf8&#39;, outputs abcde</code></pre>\n<p>See <code>buffer.write()</code> ex