summaryrefslogtreecommitdiff
path: root/src/node_javascript.cc
diff options
context:
space:
mode:
authorTom Hughes <tom.hughes@palm.com>2011-03-08 00:00:51 -0600
committerRyan Dahl <ry@tinyclouds.org>2011-03-08 13:56:41 -0800
commit74954ce7d8b4b734302d295d0c816f04a694254e (patch)
tree75b61a90a05d4950c89e78a1a362cb4df4bf33f5 /src/node_javascript.cc
parent81d3de7e6db6abe36ac907d8f0fa6dfc01f7bbcd (diff)
downloadnode-74954ce7d8b4b734302d295d0c816f04a694254e.tar.gz
Add string class that uses ExternalAsciiStringResource.
Change the natives to use this class instead of creating completely new strings. Reduces memory usage by about 1 MB.
Diffstat (limited to 'src/node_javascript.cc')
-rw-r--r--src/node_javascript.cc11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/node_javascript.cc b/src/node_javascript.cc
index 95005eeb1..e0cc5b5c3 100644
--- a/src/node_javascript.cc
+++ b/src/node_javascript.cc
@@ -1,6 +1,7 @@
#include <v8.h>
#include "node.h"
#include "node_natives.h"
+#include "node_string.h"
#include <string.h>
#include <strings.h>
@@ -8,8 +9,8 @@ using namespace v8;
namespace node {
-const char* MainSource() {
- return node_native;
+Handle<String> MainSource() {
+ return BUILTIN_ASCII_ARRAY(node_native, sizeof(node_native)-1);
}
void DefineJavaScript(v8::Handle<v8::Object> target) {
@@ -18,14 +19,10 @@ void DefineJavaScript(v8::Handle<v8::Object> target) {
for (int i = 0; natives[i].name; i++) {
if (natives[i].source != node_native) {
Local<String> name = String::New(natives[i].name);
- // TODO: Use ExternalAsciiStringResource for source
- // Might need to do some assertions in js2c about chars > 128
- Local<String> source = String::New(natives[i].source);
+ Handle<String> source = BUILTIN_ASCII_ARRAY(natives[i].source, natives[i].source_len);
target->Set(name, source);
}
}
}
-
-
} // namespace node