Index: src/apinatives.js |
diff --git a/src/apinatives.js b/src/apinatives.js |
index 193863f5c2f9f99cccb42432b0b6902b47898aff..c00195d831198c81577ebac39ff932da8bc116d7 100644 |
--- a/src/apinatives.js |
+++ b/src/apinatives.js |
@@ -73,14 +73,10 @@ function InstantiateFunction(data, name) { |
if (name) %FunctionSetName(fun, name); |
cache[serialNumber] = fun; |
var prototype = %GetTemplateField(data, kApiPrototypeTemplateOffset); |
- var attributes = %GetTemplateField(data, kApiPrototypeAttributesOffset); |
- if (attributes != NONE) { |
- %IgnoreAttributesAndSetProperty( |
- fun, "prototype", |
- prototype ? Instantiate(prototype) : {}, |
- attributes); |
- } else { |
- fun.prototype = prototype ? Instantiate(prototype) : {}; |
+ var flags = %GetTemplateField(data, kApiFlagOffset); |
+ fun.prototype = prototype ? Instantiate(prototype) : {}; |
+ if (flags & (1 << kReadOnlyPrototypeBit)) { |
+ %FunctionSetReadOnlyPrototype(fun); |
} |
%SetProperty(fun.prototype, "constructor", fun, DONT_ENUM); |
var parent = %GetTemplateField(data, kApiParentTemplateOffset); |