Browse Source

Merge branch 'v0.6.12-release' into v0.6

v0.8.7-release
isaacs 13 years ago
parent
commit
353bfbaf93
  1. 42
      ChangeLog
  2. 2
      deps/v8/src/conversions-inl.h
  3. 2
      deps/v8/src/conversions.h
  4. 80
      deps/v8/src/elements.cc
  5. 4
      deps/v8/src/globals.h
  6. 3
      deps/v8/src/objects.cc
  7. 3
      deps/v8/src/objects.h
  8. 4
      deps/v8/src/v8globals.h
  9. 2
      deps/v8/src/version.cc
  10. 2
      doc/about/index.html
  11. 7
      doc/api_assets/style.css
  12. 2
      doc/community/index.html
  13. 18
      doc/index.html
  14. 2
      doc/logos/index.html
  15. 2
      src/node_version.h

42
ChangeLog

@ -1,4 +1,44 @@
2012.02.17 Version 0.6.11 (stable) 2012.03.02 Version 0.6.12 (stable)
* Upgrade V8 to 3.6.6.24
* dtrace ustack helper improvements (Dave Pacheco)
* API Documentation refactor (isaacs)
* #2827 net: fix race write() before and after connect() (koichik)
* #2554 #2567 throw if fs args for 'start' or 'end' are strings (AJ ONeal)
* punycode: Update to v1.0.0 (Mathias Bynens)
* Make a fat binary for the OS X pkg (isaacs)
* Fix hang on accessing process.stdin (isaacs)
* repl: make tab completion work on non-objects (Nathan Rajlich)
* Fix fs.watch on OS X (Ben Noordhuis)
* Fix #2515 nested setTimeouts cause premature process exit (Ben Noordhuis)
* windows: fix time conversion in stat (Igor Zinkovsky)
* windows: fs: handle EOF in read (Brandon Philips)
* windows: avoid IOCP short-circuit on non-ifs lsps (Igor Zinkovsky)
* Upgrade npm to 1.1.4 (isaacs)
- windows fixes
- Bundle nested bundleDependencies properly
- install: support --save with url install targets
- shrinkwrap: behave properly with url-installed modules
- support installing uncompressed tars or single file modules from urls etc.
- don't run make clean on rebuild
- support HTTPS-over-HTTP proxy tunneling
2012.02.17 Version 0.6.11 (stable), 1eb1fe32250fc88cb5b0a97cddf3e02be02e3f4a
* http: allow multiple WebSocket RFC6455 headers (Einar Otto Stangvik) * http: allow multiple WebSocket RFC6455 headers (Einar Otto Stangvik)

2
deps/v8/src/conversions-inl.h

@ -47,7 +47,7 @@ namespace v8 {
namespace internal { namespace internal {
static inline double JunkStringValue() { static inline double JunkStringValue() {
return std::numeric_limits<double>::quiet_NaN(); return BitCast<double, uint64_t>(kQuietNaNMask);
} }

2
deps/v8/src/conversions.h

@ -28,8 +28,6 @@
#ifndef V8_CONVERSIONS_H_ #ifndef V8_CONVERSIONS_H_
#define V8_CONVERSIONS_H_ #define V8_CONVERSIONS_H_
#include <limits>
#include "utils.h" #include "utils.h"
namespace v8 { namespace v8 {

80
deps/v8/src/elements.cc

@ -77,18 +77,17 @@ class ElementsAccessorBase : public ElementsAccessor {
uint32_t key, uint32_t key,
JSObject* obj, JSObject* obj,
Object* receiver) { Object* receiver) {
return ElementsAccessorSubclass::Get( return ElementsAccessorSubclass::GetImpl(
BackingStoreClass::cast(backing_store), key, obj, receiver); BackingStoreClass::cast(backing_store), key, obj, receiver);
} }
static MaybeObject* Get(BackingStoreClass* backing_store, static MaybeObject* GetImpl(BackingStoreClass* backing_store,
uint32_t key, uint32_t key,
JSObject* obj, JSObject* obj,
Object* receiver) { Object* receiver) {
if (key < ElementsAccessorSubclass::GetCapacity(backing_store)) { return (key < ElementsAccessorSubclass::GetCapacityImpl(backing_store))
return backing_store->get(key); ? backing_store->get(key)
} : backing_store->GetHeap()->the_hole_value();
return backing_store->GetHeap()->the_hole_value();
} }
virtual MaybeObject* Delete(JSObject* obj, virtual MaybeObject* Delete(JSObject* obj,
@ -108,7 +107,7 @@ class ElementsAccessorBase : public ElementsAccessor {
} }
#endif #endif
BackingStoreClass* backing_store = BackingStoreClass::cast(from); BackingStoreClass* backing_store = BackingStoreClass::cast(from);
uint32_t len1 = ElementsAccessorSubclass::GetCapacity(backing_store); uint32_t len1 = ElementsAccessorSubclass::GetCapacityImpl(backing_store);
// Optimize if 'other' is empty. // Optimize if 'other' is empty.
// We cannot optimize if 'this' is empty, as other may have holes. // We cannot optimize if 'this' is empty, as other may have holes.
@ -117,14 +116,13 @@ class ElementsAccessorBase : public ElementsAccessor {
// Compute how many elements are not in other. // Compute how many elements are not in other.
int extra = 0; int extra = 0;
for (uint32_t y = 0; y < len1; y++) { for (uint32_t y = 0; y < len1; y++) {
if (ElementsAccessorSubclass::HasElementAtIndex(backing_store, if (ElementsAccessorSubclass::HasElementAtIndexImpl(
y, backing_store, y, holder, receiver)) {
holder,
receiver)) {
uint32_t key = uint32_t key =
ElementsAccessorSubclass::GetKeyForIndex(backing_store, y); ElementsAccessorSubclass::GetKeyForIndexImpl(backing_store, y);
MaybeObject* maybe_value = MaybeObject* maybe_value =
ElementsAccessorSubclass::Get(backing_store, key, holder, receiver); ElementsAccessorSubclass::GetImpl(backing_store, key,
holder, receiver);
Object* value; Object* value;
if (!maybe_value->ToObject(&value)) return maybe_value; if (!maybe_value->ToObject(&value)) return maybe_value;
ASSERT(!value->IsTheHole()); ASSERT(!value->IsTheHole());
@ -155,14 +153,13 @@ class ElementsAccessorBase : public ElementsAccessor {
// Fill in the extra values. // Fill in the extra values.
int index = 0; int index = 0;
for (uint32_t y = 0; y < len1; y++) { for (uint32_t y = 0; y < len1; y++) {
if (ElementsAccessorSubclass::HasElementAtIndex(backing_store, if (ElementsAccessorSubclass::HasElementAtIndexImpl(
y, backing_store, y, holder, receiver)) {
holder,
receiver)) {
uint32_t key = uint32_t key =
ElementsAccessorSubclass::GetKeyForIndex(backing_store, y); ElementsAccessorSubclass::GetKeyForIndexImpl(backing_store, y);
MaybeObject* maybe_value = MaybeObject* maybe_value =
ElementsAccessorSubclass::Get(backing_store, key, holder, receiver); ElementsAccessorSubclass::GetImpl(backing_store, key,
holder, receiver);
Object* value; Object* value;
if (!maybe_value->ToObject(&value)) return maybe_value; if (!maybe_value->ToObject(&value)) return maybe_value;
if (!value->IsTheHole() && !HasKey(to, value)) { if (!value->IsTheHole() && !HasKey(to, value)) {
@ -176,25 +173,23 @@ class ElementsAccessorBase : public ElementsAccessor {
} }
protected: protected:
static uint32_t GetCapacity(BackingStoreClass* backing_store) { static uint32_t GetCapacityImpl(BackingStoreClass* backing_store) {
return backing_store->length(); return backing_store->length();
} }
virtual uint32_t GetCapacity(FixedArrayBase* backing_store) { virtual uint32_t GetCapacity(FixedArrayBase* backing_store) {
return ElementsAccessorSubclass::GetCapacity( return ElementsAccessorSubclass::GetCapacityImpl(
BackingStoreClass::cast(backing_store)); BackingStoreClass::cast(backing_store));
} }
static bool HasElementAtIndex(BackingStoreClass* backing_store, static bool HasElementAtIndexImpl(BackingStoreClass* backing_store,
uint32_t index, uint32_t index,
JSObject* holder, JSObject* holder,
Object* receiver) { Object* receiver) {
uint32_t key = uint32_t key =
ElementsAccessorSubclass::GetKeyForIndex(backing_store, index); ElementsAccessorSubclass::GetKeyForIndexImpl(backing_store, index);
MaybeObject* element = ElementsAccessorSubclass::Get(backing_store, MaybeObject* element =
key, ElementsAccessorSubclass::GetImpl(backing_store, key, holder, receiver);
holder,
receiver);
return !element->IsTheHole(); return !element->IsTheHole();
} }
@ -202,18 +197,18 @@ class ElementsAccessorBase : public ElementsAccessor {
uint32_t index, uint32_t index,
JSObject* holder, JSObject* holder,
Object* receiver) { Object* receiver) {
return ElementsAccessorSubclass::HasElementAtIndex( return ElementsAccessorSubclass::HasElementAtIndexImpl(
BackingStoreClass::cast(backing_store), index, holder, receiver); BackingStoreClass::cast(backing_store), index, holder, receiver);
} }
static uint32_t GetKeyForIndex(BackingStoreClass* backing_store, static uint32_t GetKeyForIndexImpl(BackingStoreClass* backing_store,
uint32_t index) { uint32_t index) {
return index; return index;
} }
virtual uint32_t GetKeyForIndex(FixedArrayBase* backing_store, virtual uint32_t GetKeyForIndex(FixedArrayBase* backing_store,
uint32_t index) { uint32_t index) {
return ElementsAccessorSubclass::GetKeyForIndex( return ElementsAccessorSubclass::GetKeyForIndexImpl(
BackingStoreClass::cast(backing_store), index); BackingStoreClass::cast(backing_store), index);
} }
@ -297,7 +292,7 @@ class FastDoubleElementsAccessor
return obj->GetHeap()->true_value(); return obj->GetHeap()->true_value();
} }
static bool HasElementAtIndex(FixedDoubleArray* backing_store, static bool HasElementAtIndexImpl(FixedDoubleArray* backing_store,
uint32_t index, uint32_t index,
JSObject* holder, JSObject* holder,
Object* receiver) { Object* receiver) {
@ -316,15 +311,14 @@ class ExternalElementsAccessor
friend class ElementsAccessorBase<ExternalElementsAccessorSubclass, friend class ElementsAccessorBase<ExternalElementsAccessorSubclass,
ExternalArray>; ExternalArray>;
static MaybeObject* Get(ExternalArray* backing_store, static MaybeObject* GetImpl(ExternalArray* backing_store,
uint32_t key, uint32_t key,
JSObject* obj, JSObject* obj,
Object* receiver) { Object* receiver) {
if (key < ExternalElementsAccessorSubclass::GetCapacity(backing_store)) { return
return backing_store->get(key); key < ExternalElementsAccessorSubclass::GetCapacityImpl(backing_store)
} else { ? backing_store->get(key)
return backing_store->GetHeap()->undefined_value(); : backing_store->GetHeap()->undefined_value();
}
} }
virtual MaybeObject* Delete(JSObject* obj, virtual MaybeObject* Delete(JSObject* obj,
@ -449,7 +443,7 @@ class DictionaryElementsAccessor
return DeleteCommon(obj, key, mode); return DeleteCommon(obj, key, mode);
} }
static MaybeObject* Get(SeededNumberDictionary* backing_store, static MaybeObject* GetImpl(SeededNumberDictionary* backing_store,
uint32_t key, uint32_t key,
JSObject* obj, JSObject* obj,
Object* receiver) { Object* receiver) {
@ -469,7 +463,7 @@ class DictionaryElementsAccessor
return obj->GetHeap()->the_hole_value(); return obj->GetHeap()->the_hole_value();
} }
static uint32_t GetKeyForIndex(SeededNumberDictionary* dict, static uint32_t GetKeyForIndexImpl(SeededNumberDictionary* dict,
uint32_t index) { uint32_t index) {
Object* key = dict->KeyAt(index); Object* key = dict->KeyAt(index);
return Smi::cast(key)->value(); return Smi::cast(key)->value();
@ -484,7 +478,7 @@ class NonStrictArgumentsElementsAccessor
friend class ElementsAccessorBase<NonStrictArgumentsElementsAccessor, friend class ElementsAccessorBase<NonStrictArgumentsElementsAccessor,
FixedArray>; FixedArray>;
static MaybeObject* Get(FixedArray* parameter_map, static MaybeObject* GetImpl(FixedArray* parameter_map,
uint32_t key, uint32_t key,
JSObject* obj, JSObject* obj,
Object* receiver) { Object* receiver) {
@ -526,18 +520,18 @@ class NonStrictArgumentsElementsAccessor
return obj->GetHeap()->true_value(); return obj->GetHeap()->true_value();
} }
static uint32_t GetCapacity(FixedArray* parameter_map) { static uint32_t GetCapacityImpl(FixedArray* parameter_map) {
FixedArrayBase* arguments = FixedArrayBase::cast(parameter_map->get(1)); FixedArrayBase* arguments = FixedArrayBase::cast(parameter_map->get(1));
return Max(static_cast<uint32_t>(parameter_map->length() - 2), return Max(static_cast<uint32_t>(parameter_map->length() - 2),
ForArray(arguments)->GetCapacity(arguments)); ForArray(arguments)->GetCapacity(arguments));
} }
static uint32_t GetKeyForIndex(FixedArray* dict, static uint32_t GetKeyForIndexImpl(FixedArray* dict,
uint32_t index) { uint32_t index) {
return index; return index;
} }
static bool HasElementAtIndex(FixedArray* parameter_map, static bool HasElementAtIndexImpl(FixedArray* parameter_map,
uint32_t index, uint32_t index,
JSObject* holder, JSObject* holder,
Object* receiver) { Object* receiver) {

4
deps/v8/src/globals.h

@ -255,6 +255,10 @@ const int kBinary32MinExponent = 0x01;
const int kBinary32MantissaBits = 23; const int kBinary32MantissaBits = 23;
const int kBinary32ExponentShift = 23; const int kBinary32ExponentShift = 23;
// Quiet NaNs have bits 51 to 62 set, possibly the sign bit, and no
// other bits set.
const uint64_t kQuietNaNMask = static_cast<uint64_t>(0xfff) << 51;
// ASCII/UC16 constants // ASCII/UC16 constants
// Code-point values in Unicode 4.0 are 21 bits wide. // Code-point values in Unicode 4.0 are 21 bits wide.
typedef uint16_t uc16; typedef uint16_t uc16;

3
deps/v8/src/objects.cc

@ -10006,6 +10006,9 @@ template MaybeObject* Dictionary<SeededNumberDictionaryShape, uint32_t>::AtPut(
template MaybeObject* Dictionary<UnseededNumberDictionaryShape, uint32_t>:: template MaybeObject* Dictionary<UnseededNumberDictionaryShape, uint32_t>::
AtPut(uint32_t, Object*); AtPut(uint32_t, Object*);
template Object* Dictionary<SeededNumberDictionaryShape, uint32_t>::
SlowReverseLookup(Object* value);
template Object* Dictionary<UnseededNumberDictionaryShape, uint32_t>:: template Object* Dictionary<UnseededNumberDictionaryShape, uint32_t>::
SlowReverseLookup(Object* value); SlowReverseLookup(Object* value);

3
deps/v8/src/objects.h

@ -986,7 +986,8 @@ class Smi: public Object {
void SmiVerify(); void SmiVerify();
#endif #endif
static const int kMinValue = (-1 << (kSmiValueSize - 1)); static const int kMinValue =
(static_cast<unsigned int>(-1)) << (kSmiValueSize - 1);
static const int kMaxValue = -(kMinValue + 1); static const int kMaxValue = -(kMinValue + 1);
private: private:

4
deps/v8/src/v8globals.h

@ -98,10 +98,6 @@ const int kPageSizeBits = 13;
const int kProcessorCacheLineSize = 64; const int kProcessorCacheLineSize = 64;
// Constants relevant to double precision floating point numbers. // Constants relevant to double precision floating point numbers.
// Quiet NaNs have bits 51 to 62 set, possibly the sign bit, and no
// other bits set.
const uint64_t kQuietNaNMask = static_cast<uint64_t>(0xfff) << 51;
// If looking only at the top 32 bits, the QNaN mask is bits 19 to 30. // If looking only at the top 32 bits, the QNaN mask is bits 19 to 30.
const uint32_t kQuietNaNHighBitsMask = 0xfff << (51 - 32); const uint32_t kQuietNaNHighBitsMask = 0xfff << (51 - 32);

2
deps/v8/src/version.cc

@ -35,7 +35,7 @@
#define MAJOR_VERSION 3 #define MAJOR_VERSION 3
#define MINOR_VERSION 6 #define MINOR_VERSION 6
#define BUILD_NUMBER 6 #define BUILD_NUMBER 6
#define PATCH_LEVEL 20 #define PATCH_LEVEL 24
// Use 1 for candidates and 0 otherwise. // Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.) // (Boolean macro values are not supported by all preprocessors.)
#define IS_CANDIDATE_VERSION 0 #define IS_CANDIDATE_VERSION 0

2
doc/about/index.html

@ -130,7 +130,7 @@ console.log('Server running at http://127.0.0.1:1337/');</pre>
<li><a href="http://twitter.com/nodejs" class="twitter">@nodejs</a></li> <li><a href="http://twitter.com/nodejs" class="twitter">@nodejs</a></li>
</ul> </ul>
<p>Copyright 2010 <a href="http://joyent.com">Joyent, Inc</a>, Node.js is a <a href="/trademark-policy.pdf">trademark</a> of Joyent, Inc. View <a href="https://raw.github.com/joyent/node/v0.6.11/LICENSE">license</a>.</p> <p>Copyright 2010 <a href="http://joyent.com">Joyent, Inc</a>, Node.js is a <a href="/trademark-policy.pdf">trademark</a> of Joyent, Inc. View <a href="https://raw.github.com/joyent/node/v0.6.12/LICENSE">license</a>.</p>
</div> </div>

7
doc/api_assets/style.css

@ -75,7 +75,7 @@ p {
text-rendering: optimizeLegibility; text-rendering: optimizeLegibility;
} }
.apidoc p { .apidoc #apicontent p, .apidoc #apicontent li {
font-size: 15px; font-size: 15px;
line-height: 22px; line-height: 22px;
color: #000; color: #000;
@ -280,7 +280,7 @@ hr {
margin: 1em 0 2em; margin: 1em 0 2em;
} }
#toc ul, #api-section-index ul li, #api-section-index ul { #toc ul, #api-section-index #apicontent ul li, #api-section-index #apicontent ul {
font-family: Georgia, FreeSerif, Times, serif; font-family: Georgia, FreeSerif, Times, serif;
color:#666!important; color:#666!important;
} }
@ -422,6 +422,9 @@ a.anchor {
line-height:1em; line-height:1em;
padding: 0 0 0 195px; padding: 0 0 0 195px;
color: #666; color: #666;
}
#footer p, #footer li {
font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Verdana, Tahoma, sans-serif; font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Verdana, Tahoma, sans-serif;
} }

2
doc/community/index.html

@ -180,7 +180,7 @@
<li><a href="http://twitter.com/nodejs" class="twitter">@nodejs</a></li> <li><a href="http://twitter.com/nodejs" class="twitter">@nodejs</a></li>
</ul> </ul>
<p>Copyright 2010 <a href="http://joyent.com">Joyent, Inc</a>, Node.js is a <a href="/trademark-policy.pdf">trademark</a> of Joyent, Inc. View <a href="https://raw.github.com/joyent/node/v0.6.11/LICENSE">license</a>.</p> <p>Copyright 2010 <a href="http://joyent.com">Joyent, Inc</a>, Node.js is a <a href="/trademark-policy.pdf">trademark</a> of Joyent, Inc. View <a href="https://raw.github.com/joyent/node/v0.6.12/LICENSE">license</a>.</p>
</div> </div>
<script> <script>

18
doc/index.html

@ -31,7 +31,7 @@
<a href="#download" class="button" id="downloadbutton">Download</a> <a href="#download" class="button" id="downloadbutton">Download</a>
<a href="http://nodejs.org/docs/latest/api/index.html" class="button" id="docsbutton">Docs</a> <a href="http://nodejs.org/docs/latest/api/index.html" class="button" id="docsbutton">Docs</a>
<p class="version">v0.6.11</p> <p class="version">v0.6.12</p>
</div> </div>
<div id="quotes" class="clearfix"> <div id="quotes" class="clearfix">
<h2>Node.js in the Industry</h2> <h2>Node.js in the Industry</h2>
@ -78,15 +78,15 @@
<a href="#" id="download-close">X</a> <a href="#" id="download-close">X</a>
<img id="download-logo" src="http://nodejs.org/images/download-logo.png" alt="node.js"> <img id="download-logo" src="http://nodejs.org/images/download-logo.png" alt="node.js">
<ul id="installers" class="clearfix"> <ul id="installers" class="clearfix">
<li><a href="http://nodejs.org/dist/v0.6.11/node-v0.6.11.msi">Windows Installer</a><br>node-v0.6.11.msi</li> <li><a href="http://nodejs.org/dist/v0.6.12/node-v0.6.12.msi">Windows Installer</a><br>node-v0.6.12.msi</li>
<li><a href="http://nodejs.org/dist/v0.6.11/node-v0.6.11.pkg">Macintosh Installer</a><br>node-v0.6.11.pkg</li> <li><a href="http://nodejs.org/dist/v0.6.12/node-v0.6.12.pkg">Macintosh Installer</a><br>node-v0.6.12.pkg</li>
<li id="source"><a href="http://nodejs.org/dist/v0.6.11/node-v0.6.11.tar.gz">Source Code</a><br>node-v0.6.11.tar.gz</li> <li id="source"><a href="http://nodejs.org/dist/v0.6.12/node-v0.6.12.tar.gz">Source Code</a><br>node-v0.6.12.tar.gz</li>
</ul> </ul>
<ul id="documentation"> <ul id="documentation">
<li><a href="https://raw.github.com/joyent/node/v0.6.11/ChangeLog">Change Log</a></li> <li><a href="https://raw.github.com/joyent/node/v0.6.12/ChangeLog">Change Log</a></li>
<li><a href="http://nodejs.org/docs/v0.6.11/api/index.html">Documentation</a></li> <li><a href="http://nodejs.org/docs/v0.6.12/api/index.html">Documentation</a></li>
<li><a href="http://nodejs.org/dist/v0.6.11">Other release files</a></li> <li><a href="http://nodejs.org/dist/v0.6.12">Other release files</a></li>
<li><a href="https://raw.github.com/joyent/node/v0.6.11/LICENSE">License</a></li> <li><a href="https://raw.github.com/joyent/node/v0.6.12/LICENSE">License</a></li>
<li><a href="https://github.com/joyent/node">Git Repository</a></li> <li><a href="https://github.com/joyent/node">Git Repository</a></li>
<li><a href="https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager">Installing <li><a href="https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager">Installing
with a Package Manager</a> with a Package Manager</a>
@ -211,7 +211,7 @@ server.listen(1337, '127.0.0.1');</pre>
<!-- <li><a hrfe="http://twitter.com/nodejs" class="twitter">@nodejs</a></li> --> <!-- <li><a hrfe="http://twitter.com/nodejs" class="twitter">@nodejs</a></li> -->
</ul> </ul>
<p>Copyright 2010 <a href="http://joyent.com">Joyent, Inc</a>, Node.js is a <a href="/trademark-policy.pdf">trademark</a> of Joyent, Inc. View <a href="https://raw.github.com/joyent/node/v0.6.11/LICENSE">license</a>.</p> <p>Copyright 2010 <a href="http://joyent.com">Joyent, Inc</a>, Node.js is a <a href="/trademark-policy.pdf">trademark</a> of Joyent, Inc. View <a href="https://raw.github.com/joyent/node/v0.6.12/LICENSE">license</a>.</p>
</div> </div>

2
doc/logos/index.html

@ -82,7 +82,7 @@
<li><a href="http://twitter.com/nodejs" class="twitter">@nodejs</a></li> <li><a href="http://twitter.com/nodejs" class="twitter">@nodejs</a></li>
</ul> </ul>
<p>Copyright <a href="http://joyent.com">Joyent, Inc</a>., Node.js is a <a href="/trademark-policy.pdf">trademark of Joyent, Inc</a>., <a href="https://raw.github.com/joyent/node/v0.6.11/LICENSE">View License</a></p> <p>Copyright <a href="http://joyent.com">Joyent, Inc</a>., Node.js is a <a href="/trademark-policy.pdf">trademark of Joyent, Inc</a>., <a href="https://raw.github.com/joyent/node/v0.6.12/LICENSE">View License</a></p>
</div> </div>
<script> <script>

2
src/node_version.h

@ -29,7 +29,7 @@
#define NODE_MAJOR_VERSION 0 #define NODE_MAJOR_VERSION 0
#define NODE_MINOR_VERSION 6 #define NODE_MINOR_VERSION 6
#define NODE_PATCH_VERSION 12 #define NODE_PATCH_VERSION 12
#define NODE_VERSION_IS_RELEASE 0 #define NODE_VERSION_IS_RELEASE 1
#ifndef NODE_STRINGIFY #ifndef NODE_STRINGIFY
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n) #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)

Loading…
Cancel
Save