Skip to content

Commit f12f26e

Browse files
authored
Merge pull request #6 from nodejs/update-8-9-4
Update to node 8.9.4.
2 parents af3e518 + 3dbdece commit f12f26e

21 files changed

+3291
-666
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# string_decoder
22

3-
***Node-core v7.0.0 string_decoder for userland***
3+
***Node-core v8.9.4 string_decoder for userland***
44

55

66
[![NPM](https://nodei.co/npm/string_decoder.png?downloads=true&downloadRank=true)](https://nodei.co/npm/string_decoder/)
@@ -15,7 +15,7 @@ npm install --save string_decoder
1515

1616
This package is a mirror of the string_decoder implementation in Node-core.
1717

18-
Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v7.8.0/docs/api/).
18+
Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.9.4/docs/api/).
1919

2020
As of version 1.0.0 **string_decoder** uses semantic versioning.
2121

build/build.js

Lines changed: 43 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const hyperquest = require('hyperquest')
1616
, nodeVersionRegexString = '\\d+\\.\\d+\\.\\d+'
1717
, usageVersionRegex = RegExp('^' + nodeVersionRegexString + '$')
1818
, readmeVersionRegex =
19-
RegExp('((?:Node-core )|(?:https\:\/\/nodejs\.org\/dist\/)v)' + nodeVersionRegexString, 'g')
19+
RegExp('((?:(?:Node-core )|(?:https\:\/\/nodejs\.org\/dist\/))v)' + nodeVersionRegexString, 'g')
2020

2121
, readmePath = path.join(__dirname, '..', 'README.md')
2222
, files = require('./files')
@@ -49,21 +49,37 @@ function processFile (inputLoc, out, replacements) {
4949
var arg2 = replacement[1]
5050
if (typeof arg2 === 'function')
5151
arg2 = arg2.bind(data)
52+
if (arg2 === undefined) {
53+
console.error('missing second arg for file', inputLoc, replacement)
54+
throw new Error('missing second arg in replacement')
55+
}
5256
data = data.replace(regexp, arg2)
5357
})
5458
if (inputLoc.slice(-3) === '.js') {
55-
const transformed = babel.transform(data, {
56-
plugins: [
57-
'transform-es2015-parameters',
58-
'transform-es2015-arrow-functions',
59-
'transform-es2015-block-scoping',
60-
'transform-es2015-template-literals',
61-
'transform-es2015-shorthand-properties',
62-
'transform-es2015-for-of',
63-
'transform-es2015-destructuring'
64-
]
65-
})
66-
data = transformed.code
59+
try {
60+
const transformed = babel.transform(data, {
61+
plugins: [
62+
'transform-es2015-parameters',
63+
'transform-es2015-arrow-functions',
64+
'transform-es2015-block-scoping',
65+
'transform-es2015-template-literals',
66+
'transform-es2015-shorthand-properties',
67+
'transform-es2015-for-of',
68+
['transform-es2015-classes', { loose: true }],
69+
'transform-es2015-destructuring',
70+
'transform-es2015-computed-properties',
71+
'transform-es2015-spread'
72+
]
73+
})
74+
data = transformed.code
75+
} catch (err) {
76+
fs.writeFile(out + '.errored.js', data, encoding, function () {
77+
console.log('Wrote errored', out)
78+
79+
throw err
80+
})
81+
return
82+
}
6783
}
6884
fs.writeFile(out, data, encoding, function (err) {
6985
if (err) throw err
@@ -112,7 +128,6 @@ pump(
112128
throw err
113129
}
114130

115-
116131
//--------------------------------------------------------------------
117132
// Grab & process files in ../lib/
118133

@@ -137,15 +152,23 @@ pump(
137152
//--------------------------------------------------------------------
138153
// Grab the nodejs/node test/common.js
139154

140-
processFile(
141-
testsrcurl.replace(/parallel\/$/, 'common.js')
142-
, path.join(testourroot, '../common.js')
143-
, testReplace['common.js']
144-
)
155+
glob(path.join(src, 'test/common/*'), function (err, list) {
156+
if (err) {
157+
throw err
158+
}
159+
160+
list.forEach(function (file) {
161+
file = path.basename(file)
162+
processFile(
163+
path.join(testsrcurl.replace(/parallel\/$/, 'common/'), file)
164+
, path.join(testourroot.replace('parallel', 'common'), file)
165+
, testReplace['common.js']
166+
)
167+
})
168+
})
145169

146170
//--------------------------------------------------------------------
147171
// Update Node version in README
148-
149172
processFile(readmePath, readmePath, [
150173
[readmeVersionRegex, "$1" + nodeVersion]
151174
])

build/common-replacements.js

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
module.exports.altForEachImplReplacement = [
2+
/$/
3+
, '\nfunction forEach (xs, f) {\n'
4+
+ ' for (var i = 0, l = xs.length; i < l; i++) {\n'
5+
+ ' f(xs[i], i);\n'
6+
+ ' }\n'
7+
+ '}\n'
8+
]
9+
10+
module.exports.altForEachUseReplacement = [
11+
/(\W)([\w\.\(\),\[\] ']+)(\.forEach\()/gm
12+
, '$1forEach($2, '
13+
]
14+
15+
module.exports.specialForEachReplacment = [
16+
/(\W)(\[(?:\d\,\s)+\d\])(\.forEach\()/gm
17+
, '$1forEach($2, '
18+
]
19+
20+
module.exports.altIndexOfImplReplacement = [
21+
/$/
22+
, '\nfunction indexOf (xs, x) {\n'
23+
+ ' for (var i = 0, l = xs.length; i < l; i++) {\n'
24+
+ ' if (xs[i] === x) return i;\n'
25+
+ ' }\n'
26+
+ ' return -1;\n'
27+
+ '}\n'
28+
]
29+
30+
module.exports.altIndexOfUseReplacement = [
31+
/(\W)([\w\.\(\),\[\]]+)(\.indexOf\()/gm
32+
, '$1indexOf($2, '
33+
]
34+
module.exports.objectKeysDefine = [
35+
/^('use strict';)$/m
36+
, '$1\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n'
37+
+ ' var keys = [];\n'
38+
+ ' for (var key in obj) keys.push(key);\n'
39+
+ ' return keys;\n'
40+
+ '}\n/*</replacement>*/\n'
41+
]
42+
43+
module.exports.objectKeysReplacement = [
44+
/Object\.keys/g
45+
, 'objectKeys'
46+
]
47+
48+
49+
module.exports.bufferShimFix = [
50+
/^('use strict';)$/m,
51+
`/*<replacement>*/
52+
const bufferShim = require('safe-buffer').Buffer;
53+
/*</replacement>*/`
54+
]
55+
56+
module.exports.bufferStaticMethods = [
57+
/Buffer\.((?:alloc)|(?:allocUnsafe)|(?:from))/g,
58+
`bufferShim.$1`
59+
]

build/files.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@ module.exports['string_decoder.js'] = [
1515
]
1616

1717
, [
18-
/const Buffer = require\('buffer'\).Buffer;/
19-
, 'var Buffer = require(\'safe-buffer\').Buffer;\n'
18+
/(?:var|const) (?:{ )Buffer(?: }) = require\('buffer'\)(?:\.Buffer)?;/,
19+
`/*<replacement>*/
20+
var Buffer = require('safe-buffer').Buffer;
21+
/*</replacement>*/
22+
`
2023
]
2124

2225
// add Buffer.isEncoding where missing

build/package.json

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
{
2-
"name": "string_decoder-build",
2+
"name": "readable-stream-build",
33
"version": "0.0.0",
44
"description": "",
55
"main": "build.js",
66
"dependencies": {
7-
"babel-core": "^6.5.2",
7+
"babel-core": "^6.26.0",
88
"babel-plugin-transform-es2015-arrow-functions": "^6.5.2",
9-
"babel-plugin-transform-es2015-block-scoping": "^6.5.0",
9+
"babel-plugin-transform-es2015-block-scoping": "^6.26.0",
10+
"babel-plugin-transform-es2015-classes": "^6.24.1",
11+
"babel-plugin-transform-es2015-computed-properties": "^6.24.1",
1012
"babel-plugin-transform-es2015-destructuring": "^6.18.0",
1113
"babel-plugin-transform-es2015-for-of": "^6.8.0",
12-
"babel-plugin-transform-es2015-parameters": "^6.11.4",
13-
"babel-plugin-transform-es2015-shorthand-properties": "^6.8.0",
14+
"babel-plugin-transform-es2015-parameters": "^6.24.1",
15+
"babel-plugin-transform-es2015-shorthand-properties": "^6.24.1",
16+
"babel-plugin-transform-es2015-spread": "^6.22.0",
1417
"babel-plugin-transform-es2015-template-literals": "^6.8.0",
15-
"bl": "^1.2.0",
16-
"glob": "^7.1.1",
17-
"gunzip-maybe": "^1.4.0",
18-
"hyperquest": "^2.1.2",
19-
"pump": "^1.0.2",
20-
"rimraf": "^2.6.1",
21-
"tar-fs": "^1.15.1"
18+
"bl": "^1.2.1",
19+
"glob": "^7.1.2",
20+
"gunzip-maybe": "^1.4.1",
21+
"hyperquest": "^2.1.3",
22+
"pump": "^3.0.0",
23+
"rimraf": "^2.6.2",
24+
"tar-fs": "^1.16.0"
2225
}
2326
}

0 commit comments

Comments
 (0)