| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent f373d6a commit f2e2301
6 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -7,7 +7,7 @@ const { | |||
| 7 | 7 | const { getOptionValue } = require('internal/options'); | |
| 8 | 8 | const { getValidatedPath } = require('internal/fs/utils'); | |
| 9 | 9 | const fsBindings = internalBinding('fs'); | |
| 10 | - const { fs: fsConstants } = internalBinding('constants'); | ||
| 10 | + const { internal: internalConstants } = internalBinding('constants'); | ||
| 11 | 11 | ||
| 12 | 12 | const experimentalWasmModules = getOptionValue('--experimental-wasm-modules'); | |
| 13 | 13 | const experimentalAddonModules = getOptionValue('--experimental-addon-modules'); | |
@@ -60,7 +60,7 @@ function getFormatOfExtensionlessFile(url) { | |||
| 60 | 60 | if (!experimentalWasmModules) { return 'module'; } | |
| 61 | 61 | const path = getValidatedPath(url); | |
| 62 | 62 | switch (fsBindings.getFormatOfExtensionlessFile(path)) { | |
| 63 | - case fsConstants.EXTENSIONLESS_FORMAT_WASM: | ||
| 63 | + case internalConstants.EXTENSIONLESS_FORMAT_WASM: | ||
| 64 | 64 | return 'wasm'; | |
| 65 | 65 | default: | |
| 66 | 66 | return 'module'; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1041,7 +1041,7 @@ void DefineCryptoConstants(Local<Object> target) { | |||
| 1041 | 1041 | #endif | |
| 1042 | 1042 | } | |
| 1043 | 1043 | ||
| 1044 | - void DefineSystemConstants(Local<Object> target) { | ||
| 1044 | + void DefineFsConstants(Local<Object> target) { | ||
| 1045 | 1045 | NODE_DEFINE_CONSTANT(target, UV_FS_SYMLINK_DIR); | |
| 1046 | 1046 | NODE_DEFINE_CONSTANT(target, UV_FS_SYMLINK_JUNCTION); | |
| 1047 | 1047 | // file access modes | |
@@ -1059,10 +1059,6 @@ void DefineSystemConstants(Local<Object> target) { | |||
| 1059 | 1059 | NODE_DEFINE_CONSTANT(target, UV_DIRENT_CHAR); | |
| 1060 | 1060 | NODE_DEFINE_CONSTANT(target, UV_DIRENT_BLOCK); | |
| 1061 | 1061 | ||
| 1062 | - // Define module specific constants | ||
| 1063 | - NODE_DEFINE_CONSTANT(target, EXTENSIONLESS_FORMAT_JAVASCRIPT); | ||
| 1064 | - NODE_DEFINE_CONSTANT(target, EXTENSIONLESS_FORMAT_WASM); | ||
| 1065 | - | ||
| 1066 | 1062 | NODE_DEFINE_CONSTANT(target, S_IFMT); | |
| 1067 | 1063 | NODE_DEFINE_CONSTANT(target, S_IFREG); | |
| 1068 | 1064 | NODE_DEFINE_CONSTANT(target, S_IFDIR); | |
@@ -1250,6 +1246,12 @@ void DefineDLOpenConstants(Local<Object> target) { | |||
| 1250 | 1246 | #endif | |
| 1251 | 1247 | } | |
| 1252 | 1248 | ||
| 1249 | + void DefineInternalConstants(Local<Object> target) { | ||
| 1250 | + // Define module specific constants | ||
| 1251 | + NODE_DEFINE_CONSTANT(target, EXTENSIONLESS_FORMAT_JAVASCRIPT); | ||
| 1252 | + NODE_DEFINE_CONSTANT(target, EXTENSIONLESS_FORMAT_WASM); | ||
| 1253 | + } | ||
| 1254 | + | ||
| 1253 | 1255 | void DefineTraceConstants(Local<Object> target) { | |
| 1254 | 1256 | NODE_DEFINE_CONSTANT(target, TRACE_EVENT_PHASE_BEGIN); | |
| 1255 | 1257 | NODE_DEFINE_CONSTANT(target, TRACE_EVENT_PHASE_END); | |
@@ -1307,16 +1309,19 @@ void CreatePerContextProperties(Local<Object> target, | |||
| 1307 | 1309 | Object::New(isolate, Null(isolate), nullptr, nullptr, 0); | |
| 1308 | 1310 | Local<Object> trace_constants = | |
| 1309 | 1311 | Object::New(isolate, Null(isolate), nullptr, nullptr, 0); | |
| 1312 | + Local<Object> internal_constants = | ||
| 1313 | + Object::New(isolate, Null(isolate), nullptr, nullptr, 0); | ||
| 1310 | 1314 | ||
| 1311 | 1315 | DefineErrnoConstants(err_constants); | |
| 1312 | 1316 | DefineWindowsErrorConstants(err_constants); | |
| 1313 | 1317 | DefineSignalConstants(sig_constants); | |
| 1314 | 1318 | DefinePriorityConstants(priority_constants); | |
| 1315 | - DefineSystemConstants(fs_constants); | ||
| 1319 | + DefineFsConstants(fs_constants); | ||
| 1316 | 1320 | DefineCryptoConstants(crypto_constants); | |
| 1317 | 1321 | DefineZlibConstants(zlib_constants); | |
| 1318 | 1322 | DefineDLOpenConstants(dlopen_constants); | |
| 1319 | 1323 | DefineTraceConstants(trace_constants); | |
| 1324 | + DefineInternalConstants(internal_constants); | ||
| 1320 | 1325 | ||
| 1321 | 1326 | // Define libuv constants. | |
| 1322 | 1327 | NODE_DEFINE_CONSTANT(os_constants, UV_UDP_REUSEADDR); | |
@@ -1362,6 +1367,11 @@ void CreatePerContextProperties(Local<Object> target, | |||
| 1362 | 1367 | FIXED_ONE_BYTE_STRING(isolate, "trace"), | |
| 1363 | 1368 | trace_constants) | |
| 1364 | 1369 | .Check(); | |
| 1370 | + target | ||
| 1371 | + ->Set(env->context(), | ||
| 1372 | + FIXED_ONE_BYTE_STRING(isolate, "internal"), | ||
| 1373 | + internal_constants) | ||
| 1374 | + .Check(); | ||
| 1365 | 1375 | } | |
| 1366 | 1376 | ||
| 1367 | 1377 | } // namespace constants | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -7,7 +7,7 @@ const constants = internalBinding('constants'); | |||
| 7 | 7 | const assert = require('assert'); | |
| 8 | 8 | ||
| 9 | 9 | assert.deepStrictEqual( | |
| 10 | - Object.keys(constants).sort(), ['crypto', 'fs', 'os', 'trace', 'zlib'] | ||
| 10 | + Object.keys(constants).sort(), ['crypto', 'fs', 'internal', 'os', 'trace', 'zlib'] | ||
| 11 | 11 | ); | |
| 12 | 12 | ||
| 13 | 13 | assert.deepStrictEqual( | |
@@ -28,6 +28,6 @@ function test(obj) { | |||
| 28 | 28 | } | |
| 29 | 29 | ||
| 30 | 30 | [ | |
| 31 | - constants, constants.crypto, constants.fs, constants.os, constants.trace, | ||
| 31 | + constants, constants.crypto, constants.fs, constants.internal, constants.os, constants.trace, | ||
| 32 | 32 | constants.zlib, constants.os.dlopen, constants.os.errno, constants.os.signals, | |
| 33 | 33 | ].forEach(test); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -7,6 +7,75 @@ const assert = require('assert'); | |||
| 7 | 7 | assert.notStrictEqual(fs.constants.S_IRUSR, undefined); | |
| 8 | 8 | assert.notStrictEqual(fs.constants.S_IWUSR, undefined); | |
| 9 | 9 | ||
| 10 | + // Check null prototype. | ||
| 11 | + assert.strictEqual(Object.getPrototypeOf(fs.constants), null); | ||
| 12 | + | ||
| 13 | + const knownFsConstantNames = [ | ||
| 14 | + 'UV_FS_SYMLINK_DIR', | ||
| 15 | + 'UV_FS_SYMLINK_JUNCTION', | ||
| 16 | + 'O_RDONLY', | ||
| 17 | + 'O_WRONLY', | ||
| 18 | + 'O_RDWR', | ||
| 19 | + 'UV_DIRENT_UNKNOWN', | ||
| 20 | + 'UV_DIRENT_FILE', | ||
| 21 | + 'UV_DIRENT_DIR', | ||
| 22 | + 'UV_DIRENT_LINK', | ||
| 23 | + 'UV_DIRENT_FIFO', | ||
| 24 | + 'UV_DIRENT_SOCKET', | ||
| 25 | + 'UV_DIRENT_CHAR', | ||
| 26 | + 'UV_DIRENT_BLOCK', | ||
| 27 | + 'S_IFMT', | ||
| 28 | + 'S_IFREG', | ||
| 29 | + 'S_IFDIR', | ||
| 30 | + 'S_IFCHR', | ||
| 31 | + 'S_IFBLK', | ||
| 32 | + 'S_IFIFO', | ||
| 33 | + 'S_IFLNK', | ||
| 34 | + 'S_IFSOCK', | ||
| 35 | + 'O_CREAT', | ||
| 36 | + 'O_EXCL', | ||
| 37 | + 'UV_FS_O_FILEMAP', | ||
| 38 | + 'O_NOCTTY', | ||
| 39 | + 'O_TRUNC', | ||
| 40 | + 'O_APPEND', | ||
| 41 | + 'O_DIRECTORY', | ||
| 42 | + 'O_EXCL', | ||
| 43 | + 'O_NOATIME', | ||
| 44 | + 'O_NOFOLLOW', | ||
| 45 | + 'O_SYNC', | ||
| 46 | + 'O_DSYNC', | ||
| 47 | + 'O_SYMLINK', | ||
| 48 | + 'O_DIRECT', | ||
| 49 | + 'O_NONBLOCK', | ||
| 50 | + 'S_IRWXU', | ||
| 51 | + 'S_IRUSR', | ||
| 52 | + 'S_IWUSR', | ||
| 53 | + 'S_IXUSR', | ||
| 54 | + 'S_IRWXG', | ||
| 55 | + 'S_IRGRP', | ||
| 56 | + 'S_IWGRP', | ||
| 57 | + 'S_IXGRP', | ||
| 58 | + 'S_IRWXO', | ||
| 59 | + 'S_IROTH', | ||
| 60 | + 'S_IWOTH', | ||
| 61 | + 'S_IXOTH', | ||
| 62 | + 'F_OK', | ||
| 63 | + 'R_OK', | ||
| 64 | + 'W_OK', | ||
| 65 | + 'X_OK', | ||
| 66 | + 'UV_FS_COPYFILE_EXCL', | ||
| 67 | + 'COPYFILE_EXCL', | ||
| 68 | + 'UV_FS_COPYFILE_FICLONE', | ||
| 69 | + 'COPYFILE_FICLONE', | ||
| 70 | + 'UV_FS_COPYFILE_FICLONE_FORCE', | ||
| 71 | + 'COPYFILE_FICLONE_FORCE', | ||
| 72 | + ]; | ||
| 73 | + const fsConstantNames = Object.keys(fs.constants); | ||
| 74 | + const unknownFsConstantNames = fsConstantNames.filter((constant) => { | ||
| 75 | + return !knownFsConstantNames.includes(constant); | ||
| 76 | + }); | ||
| 77 | + assert.deepStrictEqual(unknownFsConstantNames, [], `Unknown fs.constants: ${unknownFsConstantNames.join(', ')}`); | ||
| 78 | + | ||
| 10 | 79 | // Check for runtime deprecation warning, there should be no setter | |
| 11 | 80 | const { F_OK, R_OK, W_OK, X_OK } = fs.constants; | |
| 12 | 81 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -191,8 +191,6 @@ export interface ConstantsBinding { | |||
| 191 | 191 | COPYFILE_FICLONE: 2; | |
| 192 | 192 | UV_FS_COPYFILE_FICLONE_FORCE: 4; | |
| 193 | 193 | COPYFILE_FICLONE_FORCE: 4; | |
| 194 | - EXTENSIONLESS_FORMAT_JAVASCRIPT: 0; | ||
| 195 | - EXTENSIONLESS_FORMAT_WASM: 1; | ||
| 196 | 194 | }; | |
| 197 | 195 | crypto: { | |
| 198 | 196 | OPENSSL_VERSION_NUMBER: 269488319; | |
@@ -389,4 +387,8 @@ export interface ConstantsBinding { | |||
| 389 | 387 | TRACE_EVENT_PHASE_LEAVE_CONTEXT: 41; | |
| 390 | 388 | TRACE_EVENT_PHASE_LINK_IDS: 61; | |
| 391 | 389 | }; | |
| 390 | + internal: { | ||
| 391 | + EXTENSIONLESS_FORMAT_JAVASCRIPT: 0; | ||
| 392 | + EXTENSIONLESS_FORMAT_WASM: 1; | ||
| 393 | + }; | ||
| 392 | 394 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -235,7 +235,7 @@ declare namespace InternalFSBinding { | |||
| 235 | 235 | function writeString(fd: number, value: string, pos: unknown, encoding: unknown, req: undefined, ctx: FSSyncContext): number; | |
| 236 | 236 | function writeString(fd: number, value: string, pos: unknown, encoding: unknown, usePromises: typeof kUsePromises): Promise<number>; | |
| 237 | 237 | ||
| 238 | - function getFormatOfExtensionlessFile(url: string): ConstantsBinding['fs']; | ||
| 238 | + function getFormatOfExtensionlessFile(url: string): ConstantsBinding['internal']; | ||
| 239 | 239 | ||
| 240 | 240 | function writeFileUtf8(path: string, data: string, flag: number, mode: number): void; | |
| 241 | 241 | function writeFileUtf8(fd: number, data: string, flag: number, mode: number): void; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments