From 0edab09baf897d10de08ba97b70a29040d146ba7 Mon Sep 17 00:00:00 2001 From: "chris.double" Date: Sun, 17 Dec 2006 03:47:38 +0000 Subject: [PATCH] fjsc: added alien-property --- apps/furnace-fjsc/resources/bootstrap.factor | 9 +++++++++ apps/furnace-fjsc/resources/bootstrap.js | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/apps/furnace-fjsc/resources/bootstrap.factor b/apps/furnace-fjsc/resources/bootstrap.factor index 6b60cce604..a10449ec9a 100644 --- a/apps/furnace-fjsc/resources/bootstrap.factor +++ b/apps/furnace-fjsc/resources/bootstrap.factor @@ -2,4 +2,13 @@ #! Display the string in an alert box window { } "" "alert" { "string" } alien-invoke ; +"browser-dom" in + +: get-element ( id -- element ) + document { "element" } "" "getElementById" { "string" } alien-invoke ; + +: property ( name element -- value ) + alien-property ; + +"scratchpad" in "Bootstrap code loaded" alert \ No newline at end of file diff --git a/apps/furnace-fjsc/resources/bootstrap.js b/apps/furnace-fjsc/resources/bootstrap.js index 3612382c7f..bab1e361b3 100644 --- a/apps/furnace-fjsc/resources/bootstrap.js +++ b/apps/furnace-fjsc/resources/bootstrap.js @@ -384,6 +384,15 @@ factor.add_word("alien", "alien-invoke", "primitive", function(next) { factor.call_next(next); }); +factor.add_word("alien", "alien-property", "primitive", function(next) { + var stack = factor.cont.data_stack; + var obj = stack.pop(); + var property_name = stack.pop(); + var v = obj[property_name]; + stack.push(v); + factor.call_next(next); +}); + factor.add_word("words", "vocabs", "primitive", function(next) { var stack = factor.cont.data_stack; var result = [];