Tag: v8

Node.js – Chrome和Safari中的两个连接?

我正在尝试Node.js中的基本Javascript代码: var count=1; var net = require('http'); net.createServer(function(req,res){ res.writeHead(200,{'Content-Type':'text/plain'}); res.end((count+=1).toString()); }).listen(3000,"127.0.0.1"); 预期结果 :每个浏览器命中增加计数输出1。 实际结果: Firefox增加1(预期)… Safari + Chrome增加2 咦?

我们应该selectasynchronous在Javascript中使用Promise来等待

我知道async await是镇上的新Promise ,这是一种编写asynchronous代码的新方法,我也知道 我们不必写,然后创build一个匿名函数来处理响应 Async/await使得最终可以同时处理同步错误和asynchronous错误 从promise链返回的错误堆栈不知道发生错误的位置。 但是,来自async / await的错误堆栈指向包含该错误的函数 等等… 但在这里我做了一个简单的基准标记https://repl.it/repls/FormalAbandonedChimpanzee 在基准testing中,我已经运行了2百万次。 在第一个循环中,我正在调用另一个函数返回1的函数,我正在调用一个函数,抛出1作为例外。 正在调用正在返回1的函数的第一个循环占用的时间差不多是抛出1的函数的一半。 这表明, throw所花的时间几乎是return所花时间的两倍 node v7.4 linux/amd64 return takes 1.233seconds 1000000 throw takes 2.128seconds 1000000 基准代码如下 function f1() { return 1; } function f2() { throw 1; } function parseHrtimeToSeconds(hrtime) { var seconds = (hrtime[0] + (hrtime[1] / 1e9)).toFixed(3); return seconds; } var […]

Node.JS vm.runInNewContext()vs require()和eval()

vm.runInNewContext是否像eval一样被认为是黑魔法? require和读取文件之间是否存在显着的性能差异,并使用vm来运行它,或者是相同的(如果你实现caching等,只是想添加一些variables的上下文)

Google V8 JavaScript引擎 – 如何将值设置为null?

使用V8引擎,如何将值设置为null ? 基本上我想从一个C ++插件返回一个variables到JavaScript,并且variables需要在特定条件下设置为null 。

是否可以使用CoffeeScript for Node.js来分析我的代码?

我知道我可以使用–prof来运行node myfile.js时进行configuration文件,但是如果我运行coffee myfile.coffee呢? 假设我不能编译成.js,因为文件中有很多依赖关系。 我怎样才能运行一个V8探查器?

使用'let'作为variables名不会在google v8中引发任何错误

我正在写一些随机代码在Chrome开发者控制台。 令我惊讶的是,铬让我使用let作为一个完全错误的variables名,因为let是一个保留关键字。 我需要明白为什么会发生这种情况。 场景: var const = 78 //throws an error as expected var function = 46 //throws an error as expected var let = 56 //didn't throw an error :O let //prints 56, which is wrong because 'let' is a keyword let ab = 90 ab //prints 90 as expected 这个缺陷存在于node 。 但是,当我在Babel REPL中尝试它时,会抛出一个错误。 […]

奇怪的JSON.parse()在node.js错误

我正在通过node.js中的TCP检索一些string化的JSON,并且想要parsing它。 所以我的方法与此相似。 我缩短并简化它,所以你不必知道周围的逻辑。 socket.on("data", function(data) { console.log(data.toString()); // Shows the original stringifyed version console.log(JSON.parse(data.toString())); // Doesn't work }); 完整(美化)的JSON是这样的。 正如你所看到的,没有错误。 { "result": "success", "source": "chat", "success": { "message": "test", "time": 1331770513, "player": "silvinci" } } 但是JSON.parse(data.toString())总是抛出这个愚蠢的错误: {"result":"success","source":"console","success":{"time":1331762264,"line":"20 ^ SyntaxError: Unexpected token { at Object.parse (native) at Socket.<anonymous> (/home/node/api.js:152:35) // irrelevant from here on at Socket.emit […]

从multithreadingC ++插件callbackNodeJS Javascript函数

我有一个multithreading的C ++插件,做了一些后台处理,我需要定期callback一下我在NodeJS服务器上写的Javascript函数。 我明白,这涉及到使用uv_async_send(),因为它需要在主线程中执行,但到目前为止,我还没有能够弄清楚如何做到这一点。 有一个简单的例子,我错过了吗?

在ES2015中切换语句和范围

考虑这个ES2015模块以及在节点v4.4.5中运行时的行为。 'use strict' const outer = 1 switch ('foo') { case 'bar': const heyBar = 'HEY_BAR' break case 'baz': const heyBaz = 'HEY_BAZ' break default: const heyDefault = 'HEY_DEFAULT' } console.log( outer, // 1, makes sense, same top-level scope heyBar, // undefined. huh? I thought switch did NOT create a child scope heyBaz, // undefined. […]

nodejs / V8是否将编译好的机器码存储在磁盘上的任何位置?

编辑 :Node从节点8.3开始使用字节码,在此之前,源直接编译为机器码。 我做了很多Python编码,并且在.pyc文件中总是存在字节码。 我想知道节点是否将其机器代码存储在相似的文件中,例如,将机器代码表示保留​​在磁盘上并在文件源不变时重新使用它是有意义的。 如果是这样,node / v8在哪里存储这个机器代码? 编辑2 :由于@dystroy提到下面这是一个愚蠢的我怎么能看到机器代码生成的V8?