From 1cf889e24d15eb9fa4be970d7ef8a88fdeef2a74 Mon Sep 17 00:00:00 2001 From: "herhut@google.com" Date: Fri, 13 Mar 2015 13:07:24 +0000 Subject: [PATCH] Disable the use of __proto__ in incremental mode. BUG= TBR=floitsch@google.com Review URL: https://codereview.chromium.org//1004183002 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44460 260f80e4-7a28-3924-810f-c04153c831b5 --- .../src/js_emitter/old_emitter/emitter.dart | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart index e6caedfe3f6..5ec8552bb67 100644 --- a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart +++ b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart @@ -1193,15 +1193,23 @@ class OldEmitter implements Emitter { } void emitSupportsDirectProtoAccess(CodeOutput output) { - jsAst.Statement supportsDirectProtoAccess = js.statement(r''' - var supportsDirectProtoAccess = (function () { - var cls = function () {}; - cls.prototype = {'p': {}}; - var object = new cls(); - return object.__proto__ && - object.__proto__.p === cls.prototype.p; - })(); - '''); + jsAst.Statement supportsDirectProtoAccess; + + if (compiler.hasIncrementalSupport) { + supportsDirectProtoAccess = js.statement(r''' + var supportsDirectProtoAccess = false; + '''); + } else { + supportsDirectProtoAccess = js.statement(r''' + var supportsDirectProtoAccess = (function () { + var cls = function () {}; + cls.prototype = {'p': {}}; + var object = new cls(); + return object.__proto__ && + object.__proto__.p === cls.prototype.p; + })(); + '''); + } output.addBuffer(jsAst.prettyPrint(supportsDirectProtoAccess, compiler)); output.add(N);